Re: [PATCH] slub: Disable the lockless allocator

From: Christoph Lameter
Date: Sat Mar 26 2011 - 15:30:43 EST


Indeed I can reproduce it easily.
With a few printk's this shows that alloc_percpu() returns a wrong
address which is the cause of all of this:

logs:

Memory: 1011444k/1048564k available (11622k kernel code, 452k absent,
36668k reserved, 6270k data, 1028k init)
alloc_kmem_cache_cpus kmem_cache_node = ffff88003ffcf000
alloc_kmem_cache_cpus kmem_cache = ffff88003ffcf020

This means that the cpu_slab is not a percpu pointer.

Now the first allocation attempt:

Slab kmem_cache cpu_slab=ffff88003ffcf020 freelist=ffff88003f8020c0
BUG: unable to handle kernel paging request at ffff87ffc1fdc020
IP: [<ffffffff812c3852>] this_cpu_cmpxchg16b_emu+0x2/0x1c

Tejun: Whats going on there? I should be getting offsets into the per cpu
area and not kernel addresses.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/