Re: [patch 2/2] cpusets: add interleave_over_allowed option

David Rientjes
2007-10-26T21:40:18Z

On Fri, 26 Oct 2007, Lee Schermerhorn wrote:

> So, you pass the subset, you don't set the flag to indicate you want
> interleaving over all available. You must be thinking of some other use
> for saving the subset mask that I'm not seeing here. Maybe restoring to
> the exact nodes requested if they're taken away and then re-added to the
> cpuset?
>

Paul's motivation for saving the passed nodemask to set_mempolicy() is so
that the _intent_ of the application is never lost. That's the biggest
advantage that this method has and that I totally agree with. So whenever
the mems_allowed of a cpuset changes, the MPOL_INTERLEAVE nodemask of all
attached tasks becomes their intent (pol->passed_nodemask) AND'd with the
new mems_allowed. That can be done on mpol_rebind_policy() and shouldn't
be an extensive change.

So MPOL_INTERLEAVE, and possibly other, mempolicies will always try to
accomodate the intent of the application but only as far as the task's
cpuset restriction allows them.

David