Thread (10 messages) flat view 10 messages, 2 authors, 2014-09-10

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

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2014-09-10 00:11:27
Also in: linux-mm

On Tue, 9 Sep 2014 12:05:14 -0700 Nishanth Aravamudan [off-list ref] wrote:
quoted hunk ↗ jump to hunk
From: Joonsoo Kim <redacted>

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?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help