On Wed, 25 Aug 2010, Pekka Enberg wrote: > On 8/25/10 11:18 AM, Tejun Heo wrote: > > Hello, > > > > On 08/24/2010 08:53 PM, Christoph Lameter wrote: > > > > [ 0.000000] Kernel panic - not syncing: Cannot create slab kmem_cache > > > > size=232 realsize=256 order=0 offset=0 flags=42000 > > > > > > alloc per cpu result in kmalloc which fails. > > > > > > Tejon: Is there some way we could get a reserved per cpu area under UP > > > instead of fallback to slab allocations during bootup? > > > > Eh... nasty. Maybe we can create a alloc_percpu_early() function > > which doesn't allow freeing of allocate memory and just redirect to > > bootmem on UP? > > Yeah, I was thinking about that too. Another solution is to allocate an order 1 (compound) page for each early cache. Then resize the kmalloc array after everything is up. kfree() will then redirect to the page allocator. But this is a slab allocator specific solution. We now have the situation that alloc_percpu can only be used on early boot on SMP machines. A general solution would be better I think. If the early alloc_percpu stuff would work consistently then it could also be used to avoid the boot_pageset in the page allocator f.e. Can we just get rid of the special UP case and just run the percpu subsystem even for UP? -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html