Re: [PATCH 0/5] make slab gfp fair

Peter Zijlstra
2007-05-14T17:41:17Z

On Mon, 2007-05-14 at 09:29 -0700, Christoph Lameter wrote:
> On Mon, 14 May 2007, Matt Mackall wrote:
>
> > privileged thread unprivileged greedy process
> > kmem_cache_alloc(...)
> > adds new slab page from lowmem pool
>
> Yes but it returns an object for the privileged thread. Is that not
> enough?

No, because we reserved memory for n objects, and like matt illustrates
most of those that will be eaten by the greedy process.

We could reserve 1 page per object but that rather bloats the reserve.

> > do_io()
> > kmem_cache_alloc(...)
> > kmem_cache_alloc(...)
> > kmem_cache_alloc(...)
> > kmem_cache_alloc(...)
> > kmem_cache_alloc(...)
> > ...
> > eats it all
> > kmem_cache_alloc(...) -> ENOMEM
> > who ate my donuts?!
> >
> > But I think this solution is somehow overkill. If we only care about
> > this issue in the OOM avoidance case, then our rank reduces to a
> > boolean.

I tried to slim it down to a two state affair; but last time I tried
performance runs that actually slowed it down some.