Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752529AbdIERV2 (ORCPT ); Tue, 5 Sep 2017 13:21:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:36990 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751863AbdIERVZ (ORCPT ); Tue, 5 Sep 2017 13:21:25 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com AC19892A76 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=jglisse@redhat.com Date: Tue, 5 Sep 2017 13:21:21 -0400 From: Jerome Glisse To: Laurent Dufour Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, John Hubbard , Dan Williams , David Nellans , Balbir Singh , Johannes Weiner , Michal Hocko , Vladimir Davydov , cgroups@vger.kernel.org Subject: Re: [HMM-v25 10/19] mm/memcontrol: support MEMORY_DEVICE_PRIVATE v4 Message-ID: <20170905172120.GB19397@redhat.com> References: <20170817000548.32038-1-jglisse@redhat.com> <20170817000548.32038-11-jglisse@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.8.3 (2017-05-23) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Tue, 05 Sep 2017 17:21:25 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2610 Lines: 71 On Tue, Sep 05, 2017 at 07:13:15PM +0200, Laurent Dufour wrote: > On 17/08/2017 02:05, J?r?me Glisse wrote: > > HMM pages (private or public device pages) are ZONE_DEVICE page and > > thus need special handling when it comes to lru or refcount. This > > patch make sure that memcontrol properly handle those when it face > > them. Those pages are use like regular pages in a process address > > space either as anonymous page or as file back page. So from memcg > > point of view we want to handle them like regular page for now at > > least. > > > > Changed since v3: > > - remove public support and move those chunk to separate patch > > Changed since v2: > > - s/host/public > > Changed since v1: > > - s/public/host > > - add comments explaining how device memory behave and why > > > > Signed-off-by: J?r?me Glisse > > Acked-by: Balbir Singh > > Cc: Johannes Weiner > > Cc: Michal Hocko > > Cc: Vladimir Davydov > > Cc: cgroups@vger.kernel.org > > --- > > kernel/memremap.c | 1 + > > mm/memcontrol.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---- > > 2 files changed, 49 insertions(+), 4 deletions(-) > > > > diff --git a/kernel/memremap.c b/kernel/memremap.c > > index 398630c1fba3..f42d7483e886 100644 > > --- a/kernel/memremap.c > > +++ b/kernel/memremap.c > > @@ -492,6 +492,7 @@ void put_zone_device_private_page(struct page *page) > > __ClearPageWaiters(page); > > > > page->mapping = NULL; > > + mem_cgroup_uncharge(page); > > > > page->pgmap->page_free(page, page->pgmap->data); > > } else if (!count) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > > index 604fb3ca8028..977d1cf3493a 100644 > > --- a/mm/memcontrol.c > > +++ b/mm/memcontrol.c > > @@ -4407,12 +4407,13 @@ enum mc_target_type { > > MC_TARGET_NONE = 0, > > MC_TARGET_PAGE, > > MC_TARGET_SWAP, > > + MC_TARGET_DEVICE, > > }; > > > > static struct page *mc_handle_present_pte(struct vm_area_struct *vma, > > unsigned long addr, pte_t ptent) > > { > > - struct page *page = vm_normal_page(vma, addr, ptent); > > + struct page *page = _vm_normal_page(vma, addr, ptent, true); > > Hi J?r?me, > > As _vm_normal_page() is defined later in the patch 18, so this patch should > break the bisectability. Correct, it seems i miss that when re-org patch order. The vm_normal_page() changes can be move to patch 18 as it would be more logical to change call site with the patch that adds the new special function. Dunno if patch can be edited now ? Cheers, J?r?me