Re: [PATCH 00/10] foundations for reserve-based allocation

Peter Zijlstra
2007-08-06T19:39:14Z

On Mon, 2007-08-06 at 12:31 -0700, Daniel Phillips wrote:
> On Monday 06 August 2007 11:17, Peter Zijlstra wrote:
> > And how do we know a page was taken out of the reserves?
>
> Why not return that in the low bit of the page address? This is a
> little more cache efficient, does not leave that odd footprint in the
> page union and forces the caller to examine the
> alloc_pages(...P_MEMALLOC) return, making it harder to overlook the
> fact that it got a page out of reserve and forget to put one back
> later.

This would require auditing all page allocation sites to ensure they
ever happen under PF_MEMALLOC or the like. Because if an allocator ever
fails to check the low bit and assumes its a valid struct page *, stuff
will go *bang*.