From: Christoph Lameter <[EMAIL PROTECTED]>
Date: Tue, 8 May 2007 12:10:32 -0700 (PDT)

> The new slab allocator SLUB was merged and it seems that we are heading 
> towards replacing SLAB completely by SLUB. This means that we would like 
> to be sure that SLUB runs reliably on all platforms. SLUB is first
> available upstream with 2.6.21-git9.

I found a new difference in SLUB and it prevents sparc64 from
booting currently :-)

What SLAB allows you to do is define LARGE_ALLOCS but not necessarily
set MAX_ORDER large enough for the largest kmalloc SLAB.  SLAB would
ignore the kmalloc cache creation failures for these largest ones that
are over MAX_ORDER.

SLUB instead panic()'s which isn't so nice that early in the boot.

There are a few platforms that will trigger this problem, in
fact pretty much every one that specifies LARGE_ALLOCS currently
based upon a casual scan of platform Kconfig files.

To be honest I don't think I even need LARGE_ALLOCS on sparc64 so I
think I'll just see if I can delete that, but I would suggest one of
two courses of action:

1) Make SLUB ignore kmalloc cache creation failures at least for
   the higher order ones

or

2) Detect the (PAGE_SIZE << MAX_ORDER) < LARGEST_KMALLOC_SIZE
   at compile time so that nobody gets such an early panic.

Take care.
-
To unsubscribe from this list: send the line "unsubscribe linux-arch" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to