[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.00.1008040946200.11084@router.home>
Date: Wed, 4 Aug 2010 11:15:29 -0500 (CDT)
From: Christoph Lameter <cl@...ux-foundation.org>
To: David Rientjes <rientjes@...gle.com>
cc: Pekka Enberg <penberg@...helsinki.fi>, linux-mm@...ck.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@...fujitsu.com>,
linux-kernel@...r.kernel.org, Nick Piggin <npiggin@...e.de>
Subject: Re: [S+Q3 03/23] slub: Use a constant for a unspecified node.
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists