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 13:32 -0700, Christoph Lameter wrote:
Ah, see below.
No, any kernel alloc.
I'm not seeing how this would interfere; if the alloc can be handled
from a partial slab, that is fine.
OK, that is my understanding too. So this should be good too.
Ah, this is the point I was missing; I assumed each zonelist would
always include all zones, but would just continue/break the loop using
things like cpuset_zone_allwed_*().
This might indeed foil the game.
I could 'fix' this by doing the PF_MEMALLOC allocation from the regular
node zonelist instead of from the one handed down....
/me thinks out loud.. since direct reclaim runs in whatever process
context was handed out we're stuck with whatever policy we started from;
but since the allocations are kernel allocs - not userspace allocs, and
we're in dire straights, it makes sense to violate the tasks restraints
in order to keep the machine up.
memory policies are the only ones with 'short' zonelists, right? CPU
sets are on top of whatever zonelist is handed out, and the normal
zonelists include all nodes - ordered by distance
But you just said that interrupts are not exempt from memory policies,
and policies are the only ones that have 'short' zonelists. /me
confused.
-