Re: crash in kmem_cache_init
From: Olaf Hering <hidden>
Date: 2008-01-17 18:12:24
Also in:
linux-mm, lkml
On Thu, Jan 17, Christoph Lameter wrote:
On Thu, 17 Jan 2008, Pekka Enberg wrote:quoted
Looks similar to the one discussed on linux-mm ("[BUG] at mm/slab.c:3320" thread). Christoph?Right. Try the latest version of the patch to fix it:
The patch does not help.
quoted hunk ↗ jump to hunk
Index: linux-2.6/mm/slab.c ===================================================================--- linux-2.6.orig/mm/slab.c 2008-01-03 12:26:42.000000000 -0800 +++ linux-2.6/mm/slab.c 2008-01-09 15:59:49.000000000 -0800@@ -2977,7 +2977,10 @@ retry: } l3 = cachep->nodelists[node]; - BUG_ON(ac->avail > 0 || !l3); + if (!l3) + return NULL; + + BUG_ON(ac->avail > 0); spin_lock(&l3->list_lock); /* See if we can refill from the shared array */
Is this hunk supposed to go into cache_grow()? There is no NULL check for l3. But if I do that, it does not help: freeing bootmem node 1 Memory: 3496632k/3571712k available (6188k kernel code, 75080k reserved, 1324k data, 1220k bss, 304k init) cache_grow(2781) swapper(0):c0,j4294937299 cp c0000000006a4fb8 !l3 Kernel panic - not syncing: kmem_cache_create(): failed to create slab `size-32' Rebooting in 1 seconds..