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
-