Re: [SLUB 0/3] SLUB: The unqueued slab allocator V4

From: Mel Gorman
Date: Fri Mar 09 2007 - 09:00:31 EST


On Thu, 8 Mar 2007, Christoph Lameter wrote:

Note that I am amazed that the kernbench even worked. On small machine

How small? The machines I am testing on aren't "big" but they aren't misterable either.

I
seem to be getting into trouble with order 1 allocations.

That in itself is pretty incredible. From what I see, allocations up to 3 generally work unless they are atomic even with the vanilla kernel. That said, it could be because slab is holding onto the high order pages for itself.

SLAB seems to be
able to avoid the situation by keeping higher order pages on a freelist
and reduce the alloc/frees of higher order pages that the page allocator
has to deal with. Maybe we need per order queues in the page allocator?


I'm not sure what you mean by per-order queues. The buddy allocator already has per-order lists.

There must be something fundamentally wrong in the page allocator if the
SLAB queues fix this issue. I was able to fix the issue in V5 by forcing
SLUB to keep a mininum number of objects around regardless of the fit to
a page order page. Pass through is deadly since the crappy page allocator
cannot handle it.

Higher order page allocation failures can be avoided by using kmalloc.
Yuck! Hopefully your patches fix that fundamental problem.


One way to find out for sure.

--
Mel Gorman
Part-time Phd Student Linux Technology Center
University of Limerick IBM Dublin Software Lab
-
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/