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

Peter Zijlstra
2007-05-16T21:05:46Z

On Wed, 2007-05-16 at 13:59 -0700, Christoph Lameter wrote:
> On Wed, 16 May 2007, Peter Zijlstra wrote:
>
> > > I do not see any distinction between DMA and regular memory. If we need
> > > DMA memory to complete the transaction then this wont work?
> >
> > If network relies on slabs that are cpuset constrained and the page
> > allocator reserves do not match that, then yes, it goes bang.
>
> So if I put a 32 bit network card in a 64 bit system -> bang?

I hope the network stack already uses the appropriate allocator flags.
If the slab was GFP_DMA that doesn't change, the ->reserve_slab will
still be GFP_DMA.

> > > Is there some indicator somewhere that indicates that we are in trouble? I
> > > just see the ranks.
> >
> > Yes, and page->rank will only ever be 0 if the page was allocated with
> > ALLOC_NO_WATERMARKS, and that only ever happens if we're in dire
> > straights and entitled to it.
> >
> > Otherwise it'll be ALLOC_WMARK_MIN or somesuch.
>
> How we know that we are out of trouble? Just try another alloc and see? If
> that is the case then we may be failing allocations after the memory
> situation has cleared up.

No, no, for each regular allocation we retry to populate ->cpu_slab with
a new slab. If that works we're out of the woods and the ->reserve_slab
is cleaned up.