Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755109AbZDVUYn (ORCPT ); Wed, 22 Apr 2009 16:24:43 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752848AbZDVUYe (ORCPT ); Wed, 22 Apr 2009 16:24:34 -0400 Received: from smtp-out.google.com ([216.239.33.17]:38016 "EHLO smtp-out.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752420AbZDVUYd (ORCPT ); Wed, 22 Apr 2009 16:24:33 -0400 DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=date:from:x-x-sender:to:cc:subject:in-reply-to:message-id: references:user-agent:mime-version:content-type:x-system-of-record; b=Q5icvXSDq7czsqwcNqTsyEEjKp4g3hXw6XmEzwH5yudP5ujQsQhJXnUC7fLub7D8P ElzGM+31ZuL4Zgo7vPnFA== Date: Wed, 22 Apr 2009 13:24:26 -0700 (PDT) From: David Rientjes X-X-Sender: rientjes@chino.kir.corp.google.com To: Mel Gorman cc: Linux Memory Management List , KOSAKI Motohiro , Christoph Lameter , Nick Piggin , Linux Kernel Mailing List , Lin Ming , Zhang Yanmin , Peter Zijlstra , Pekka Enberg , Andrew Morton Subject: Re: [PATCH 16/22] Do not setup zonelist cache when there is only one node In-Reply-To: <1240408407-21848-17-git-send-email-mel@csn.ul.ie> Message-ID: References: <1240408407-21848-1-git-send-email-mel@csn.ul.ie> <1240408407-21848-17-git-send-email-mel@csn.ul.ie> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-System-Of-Record: true Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1871 Lines: 52 On Wed, 22 Apr 2009, Mel Gorman wrote: > There is a zonelist cache which is used to track zones that are not in > the allowed cpuset or found to be recently full. This is to reduce cache > footprint on large machines. On smaller machines, it just incurs cost > for no gain. This patch only uses the zonelist cache when there are NUMA > nodes. > > Signed-off-by: Mel Gorman > Reviewed-by: Christoph Lameter > --- > mm/page_alloc.c | 7 +++++-- > 1 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 7f45de1..e59bb80 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -1467,8 +1467,11 @@ this_zone_full: > if (NUMA_BUILD) > zlc_mark_zone_full(zonelist, z); If zonelist caching is never used for UMA machines, why should they ever call zlc_mark_zone_full()? It will always dereference zonelist->zlcache_ptr and immediately return without doing anything. Wouldn't it better to just add if (num_online_nodes() == 1) continue; right before this call to zlc_mark_zone_full()? This should compile out the remainder of the loop for !CONFIG_NUMA kernels anyway. > try_next_zone: > - if (NUMA_BUILD && !did_zlc_setup) { > - /* we do zlc_setup after the first zone is tried */ > + if (NUMA_BUILD && !did_zlc_setup && num_online_nodes() > 1) { > + /* > + * we do zlc_setup after the first zone is tried but only > + * if there are multiple nodes make it worthwhile > + */ > allowednodes = zlc_setup(zonelist, alloc_flags); > zlc_active = 1; > did_zlc_setup = 1; > -- > 1.5.6.5 -- 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/