kernel BUG in __cache_alloc_node at linux-2.6.git/mm/slab.c:3177!

Christoph Lameter clameter at
Fri Oct 20 03:03:04 EST 2006

I would expect this patch to fix your issues. This will allow fallback 
allocations to occur in the page allocator during slab bootstrap. This 
means your per node queues will be contaminated as they were before. After 
the slab allocator is fully booted then the per node queues will become 
gradually become node clean.

I think it would be better if the PPC arch would fix this issue 
by either making memory  available on node 0 or setting up node 1 as 
the boot node.

Signed-off-by: Christoph Lameter <clameter at>

Index: linux-2.6.19-rc2-mm1/mm/slab.c
--- linux-2.6.19-rc2-mm1.orig/mm/slab.c	2006-10-19 11:54:24.000000000 -0500
+++ linux-2.6.19-rc2-mm1/mm/slab.c	2006-10-19 11:59:24.208194796 -0500
@@ -1589,7 +1589,10 @@ static void *kmem_getpages(struct kmem_c
 	 * the needed fallback ourselves since we want to serve from our
 	 * per node object lists first for other nodes.
-	flags |= cachep->gfpflags | GFP_THISNODE;
+	if (g_cpucache_up != FULL)
+		flags |= cachep->gfpflags;
+	else
+		flags |= cachep->gfpflags | GFP_THISNODE;
 	page = alloc_pages_node(nodeid, flags, cachep->gfporder);
 	if (!page)

More information about the Linuxppc-dev mailing list