Cc: Matt Mackall <mpm@...>, <linux-kernel@...>, <linux-mm@...>, Thomas Graf <tgraf@...>, David Miller <davem@...>, Andrew Morton <akpm@...>, Daniel Phillips <phillips@...>, Pekka Enberg <penberg@...>, Paul Jackson <pj@...>, <npiggin@...>
On Mon, 2007-05-21 at 12:43 -0700, Christoph Lameter wrote:
mempolicy code.
Note that disobeying these constraints is not new behaviour. PF_MEMALLOC
needs a page, and will get a page, no matter what the cost.
Say the slab gets allocated by an allocation from interrupt context; no
cpuset, no policy. This same slab must be valid for whatever allocation
comes next, right? Regardless of whatever policy or GFP_ flags are in
effect for that allocation.
but get_partial() will only be called if the cpu_slab is full, up until
that point you have to do with whatever is there.
No, what I'm saying is that if the slab gets refilled from interrupt
context the next process context alloc will have to work with whatever
the interrupt left behind. Hence there is no hard constraint.
If it finds no partial slabs it goes back to the page allocator; and
when you allocate a page under PF_MEMALLOC and the normal allocations
are exhausted it takes a page from pretty much anywhere.
-