mbind: Restrict nodes to the currently allowed cpuset Currently one can specify an arbitrary node mask to mbind that includes nodes not allowed. If that is done with an interleave policy then we will go around all the nodes. Those outside of the currently allowed cpuset will be redirected to the border nodes. Interleave will then create imbalances at the borders of the cpuset. This patch restricts the nodes to the currently allowed cpuset. Signed-off-by: Christoph Lameter Index: linux-2.6.19-mm1/mm/mempolicy.c =================================================================== --- linux-2.6.19-mm1.orig/mm/mempolicy.c 2006-12-11 19:00:38.224610647 -0800 +++ linux-2.6.19-mm1/mm/mempolicy.c 2006-12-13 11:13:10.175294067 -0800 @@ -882,6 +882,7 @@ asmlinkage long sys_mbind(unsigned long int err; err = get_nodes(&nodes, nmask, maxnode); + nodes_and(nodes, nodes, current->mems_allowed); if (err) return err; return do_mbind(start, len, mode, &nodes, flags);