Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754001Ab3GQLBJ (ORCPT ); Wed, 17 Jul 2013 07:01:09 -0400 Received: from merlin.infradead.org ([205.233.59.134]:60678 "EHLO merlin.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753245Ab3GQLBI (ORCPT ); Wed, 17 Jul 2013 07:01:08 -0400 Date: Wed, 17 Jul 2013 13:00:53 +0200 From: Peter Zijlstra To: Mel Gorman Cc: Srikar Dronamraju , Ingo Molnar , Andrea Arcangeli , Johannes Weiner , Linux-MM , LKML Subject: Re: [PATCH 04/18] mm: numa: Do not migrate or account for hinting faults on the zero page Message-ID: <20130717110053.GD17211@twins.programming.kicks-ass.net> References: <1373901620-2021-1-git-send-email-mgorman@suse.de> <1373901620-2021-5-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1373901620-2021-5-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2028 Lines: 56 On Mon, Jul 15, 2013 at 04:20:06PM +0100, Mel Gorman wrote: > The zero page is not replicated between nodes and is often shared > between processes. The data is read-only and likely to be cached in > local CPUs if heavily accessed meaning that the remote memory access > cost is less of a concern. This patch stops accounting for numa hinting > faults on the zero page in both terms of counting faults and scheduling > tasks on nodes. > > Signed-off-by: Mel Gorman > --- > mm/huge_memory.c | 9 +++++++++ > mm/memory.c | 7 ++++++- > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index e4a79fa..ec938ed 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -1302,6 +1302,15 @@ int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma, > > page = pmd_page(pmd); > get_page(page); > + > + /* > + * Do not account for faults against the huge zero page. The read-only > + * data is likely to be read-cached on the local CPUs and it is less > + * useful to know about local versus remote hits on the zero page. > + */ > + if (is_huge_zero_pfn(page_to_pfn(page))) > + goto clear_pmdnuma; > + > src_nid = numa_node_id(); > count_vm_numa_event(NUMA_HINT_FAULTS); > if (src_nid == page_to_nid(page)) And because of: 5918d10 thp: fix huge zero page logic for page with pfn == 0 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -1308,7 +1308,7 @@ int do_huge_pmd_numa_page(struct mm_stru * data is likely to be read-cached on the local CPUs and it is less * useful to know about local versus remote hits on the zero page. */ - if (is_huge_zero_pfn(page_to_pfn(page))) + if (is_huge_zero_page(page)) goto clear_pmdnuma; src_nid = numa_node_id(); -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/