From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966181AbdD0Qil (ORCPT ); Thu, 27 Apr 2017 12:38:41 -0400 Received: from mail-yw0-f181.google.com ([209.85.161.181]:33846 "EHLO mail-yw0-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936281AbdD0Qib (ORCPT ); Thu, 27 Apr 2017 12:38:31 -0400 MIME-Version: 1.0 In-Reply-To: References: <20170423233125.nehmgtzldgi25niy@node.shutemov.name> <149325431313.40660.7404075559824162131.stgit@dwillia2-desk3.amr.corp.intel.com> <3e595ba6-2ea1-e25d-e254-6c7edcf23f88@deltatee.com> From: Dan Williams Date: Thu, 27 Apr 2017 09:38:29 -0700 Message-ID: Subject: Re: [PATCH] mm, zone_device: replace {get, put}_zone_device_page() with a single reference To: Logan Gunthorpe Cc: Andrew Morton , Linux MM , =?UTF-8?B?SsOpcsO0bWUgR2xpc3Nl?= , "linux-kernel@vger.kernel.org" , Kirill Shutemov Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 27, 2017 at 9:33 AM, Logan Gunthorpe wrote: > > > On 27/04/17 10:14 AM, Dan Williams wrote: >> You're overlooking that the page reference count 1 after >> arch_add_memory(). So at the end of time we're just dropping the >> arch_add_memory() reference to release the page and related >> dev_pagemap. > > Thanks, that does actually make a lot more sense to me now. However, > there still appears to be an asymmetry in that the pgmap->ref is > incremented once and decremented once per page... > No, this hunk... @@ -379,6 +374,7 @@ void *devm_memremap_pages(struct device *dev, struct resource *res, */ list_del(&page->lru); page->pgmap = pgmap; + percpu_ref_get(ref); } ...is inside a for_each_device_pfn() loop.