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

Mel Gorman
2007-03-09T14:00:05Z

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