[PATCH 2/3] slub: fallback to node_to_mem_node() node if allocating on memoryless node

Andrew Morton akpm at linux-foundation.org
Wed Sep 10 10:11:25 EST 2014


On Tue, 9 Sep 2014 12:05:14 -0700 Nishanth Aravamudan <nacc at linux.vnet.ibm.com> wrote:

> From: Joonsoo Kim <iamjoonsoo.kim at lge.com>
> 
> Update the SLUB code to search for partial slabs on the nearest node
> with memory in the presence of memoryless nodes. Additionally, do not
> consider it to be an ALLOC_NODE_MISMATCH (and deactivate the slab) when
> a memoryless-node specified allocation goes off-node.
> 
> ...
>
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -1699,7 +1699,12 @@ static void *get_partial(struct kmem_cache *s, gfp_t flags, int node,
>  		struct kmem_cache_cpu *c)
>  {
>  	void *object;
> -	int searchnode = (node == NUMA_NO_NODE) ? numa_mem_id() : node;
> +	int searchnode = node;
> +
> +	if (node == NUMA_NO_NODE)
> +		searchnode = numa_mem_id();
> +	else if (!node_present_pages(node))
> +		searchnode = node_to_mem_node(node);

I expect a call to node_to_mem_node() will always be preceded by a test
of node_present_pages().  Perhaps node_to_mem_node() should just do the
node_present_pages() call itself?




More information about the Linuxppc-dev mailing list