Re: [rfc] balance-on-fork NUMA placement

Christoph Lameter
2007-08-03T01:34:04Z

On Fri, 3 Aug 2007, Nick Piggin wrote:

> Yeah it only gets set if the parent is initially using a default policy
> at this stage (and then is restored afterwards of course).

Uggh. Looks like more hackery ahead. I think this cannot be done in the
desired clean way until we have some revving of the memory policy
subsystem that makes policies task context independent so that you can do

alloc_pages(...., memory_policy)

The cleanest solution that I can think of at this point is certainly to
switch to another processor and do the allocation and copying actions from
there. We have the migration process context right? Can that be used to
start the new thread and can the original processor wait on some flag
until that is complete?

Forking off from there not only places the data correctly but it also
warms up the caches for the new process and avoids evicting cacheline on
the original processor.