Cc: Linus Torvalds <torvalds@...>, Andrew Morton <akpm@...>, Matt Mackall <mpm@...>, Rafael J. Wysocki <rjw@...>, LKML <linux-kernel@...>, Christoph Lameter <clameter@...>
Hi Ingo,
On Dec 8, 2007 10:29 PM, Ingo Molnar <mingo@elte.hu> wrote:
I think you did. The difference is explained in Christoph's announcement:
"A particular concern was the complex management of the numerous
object queues in SLAB. SLUB has no such queues. Instead we dedicate a
slab for each allocating CPU and use objects from a slab directly
instead of queueing them up."
Which, I think, is where SLUB gets its name from (the "unqueued" part).
Now, while SLAB code is "pleasant and straightforward code" (thanks,
btw) for UMA, it's really hairy for NUMA plus the "alien caches" eat
tons of memory (which is why Christoph wrote SLUB in the first place,
the current code in SLAB is mostly unfixable due to its *queuing*
nature).
I don't object changing the default to CONFIG_SLAB but it's not really
a long term strategy unless we want to have three kmalloc's in the
kernel: one for embedded, one for UMA, and one NUMA.
Pekka
--