Upon further inspection, perhaps it's better to fallback to local
allocation when the preferred node is not available on rebind and then, if
it becomes available later, prefer it again.
In mpol_rebind_policy():
case MPOL_PREFERRED:
if (!remap) {
int nid = first_node(pol->user_nodemask);
if (node_isset(nid, *newmask))
pol->v.preferred_node = nid;
else {
/*
* Fallback to local allocation since that
* is the behavior in mpol_new(). The
* node may eventually become available.
*/
pol->v.preferred_node = -1;
}
} else
pol->v.preferred_node = node_remap(pol->v.preferred_node,
*mpolmask, *newmask);
break;
What do you think, Lee?
David
--