Re: [PATCH 01/03] Cpuset: might sleep checking zones allowed fix

From: Christoph Lameter
Date: Thu May 18 2006 - 21:10:28 EST


I think this is another case demonstrating that alloc_pages() behavior is
way too complex right now. Dave, Nick and I talked about how to fix
this a couple of days ago and what we came up with for a solution was to
implement some sort of layering for alloc_pages(). Vaguely we thought the
following may work:

First have a lower layer that is simply allocating a page from a zone
without regards to the policies and cpuset constraints etc.

Second a middle layer where one must explicitly specify cpuset and policy
constraint.

And thirdly a higher layer that obtains policies and cpuset constraints
from the context.

Allocations can then use the proper layer for their allocations.
F.e. cpusets could use the middle and lower layer without getting into
problems with recursion.

Preferably there would be some 3rd level policy/cpusets engine that can
work on any lower allocator so that we could use this engine to allocate
from unusual allocators huge pages, uncached pages and slab objects
following the proper cpuset/policy constraints.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/