Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756159Ab0HDQPf (ORCPT ); Wed, 4 Aug 2010 12:15:35 -0400 Received: from smtp104.prem.mail.ac4.yahoo.com ([76.13.13.43]:27031 "HELO smtp104.prem.mail.ac4.yahoo.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1752313Ab0HDQPe (ORCPT ); Wed, 4 Aug 2010 12:15:34 -0400 X-Yahoo-SMTP: _Dag8S.swBC1p4FJKLCXbs8NQzyse1SYSgnAbY0- X-YMail-OSG: .8R7gH0VM1mwe1eOZmHH125LdmtHxmRGyACzGAI2xM2MVWf b.LN2DwlIjtpa2i2Ol0mbtTlg2WQX8kne60TlJRLYGDFb.wGkIPNJAM2fz8S oCmLaWCvmxarTFgarRRv6V06ch_OXdPORZ_zC5fP7fEfhqb0IqXcx85C9pC. c.j3wURyCj86sZFLNcjDEfZ8RYWKa.IQNJYLHbEe0FzYB99bLTNAzjFHfP5m e X-Yahoo-Newman-Property: ymail-3 Date: Wed, 4 Aug 2010 11:15:29 -0500 (CDT) From: Christoph Lameter X-X-Sender: cl@router.home To: David Rientjes cc: Pekka Enberg , linux-mm@kvack.org, KAMEZAWA Hiroyuki , linux-kernel@vger.kernel.org, Nick Piggin Subject: Re: [S+Q3 03/23] slub: Use a constant for a unspecified node. In-Reply-To: Message-ID: References: <20100804024514.139976032@linux.com> <20100804024525.562559967@linux.com> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1509 Lines: 41 On Tue, 3 Aug 2010, David Rientjes wrote: > > static struct page *get_partial(struct kmem_cache *s, gfp_t flags, int node) > > { > > struct page *page; > > - int searchnode = (node == -1) ? numa_node_id() : node; > > + int searchnode = (node == NUMA_NO_NODE) ? numa_node_id() : node; > > > > page = get_partial_node(get_node(s, searchnode)); > > if (page || (flags & __GFP_THISNODE) || node != -1) > > This has a merge conflict with 2.6.35 since it has this: > > page = get_partial_node(get_node(s, searchnode)); > if (page || (flags & __GFP_THISNODE)) > return page; > > return get_any_partial(s, flags); > > so what happened to the dropped check for returning get_any_partial() when > node != -1? I added the check for benchmarking. Strange no merge conflict here. Are you sure you use upstream? GFP_THISNODE does not matter too much. If page == NULL then we failed to allocate a page on a specific node and have to either give up (and then extend the slab) or take a page from another node. We always have give up to go to the page allocator if GFP_THIS_NODE was set. The modification to additionally also go to the page allocator if a node was just set even without GFP_THISNODE. So checking for GFP_THISNODE does not make sense anymore. -- 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/