X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=kernel%2Fcpuset.c;h=10131fdaff70c36dc9fb181ace777015296891e3;hb=dfd48fbbb4f4cca955d35004f433e321833a73bb;hp=9c9b7545c81078c7ae43253cc1714a73fcb2691e;hpb=95a943c162d74b20d869917bdf5df11293c35b63;p=~andy%2Flinux diff --git a/kernel/cpuset.c b/kernel/cpuset.c index 9c9b7545c81..10131fdaff7 100644 --- a/kernel/cpuset.c +++ b/kernel/cpuset.c @@ -55,7 +55,7 @@ #include #include -#include +#include #include #include #include @@ -2460,11 +2460,19 @@ static int cpuset_spread_node(int *rotor) int cpuset_mem_spread_node(void) { + if (current->cpuset_mem_spread_rotor == NUMA_NO_NODE) + current->cpuset_mem_spread_rotor = + node_random(¤t->mems_allowed); + return cpuset_spread_node(¤t->cpuset_mem_spread_rotor); } int cpuset_slab_spread_node(void) { + if (current->cpuset_slab_spread_rotor == NUMA_NO_NODE) + current->cpuset_slab_spread_rotor = + node_random(¤t->mems_allowed); + return cpuset_spread_node(¤t->cpuset_slab_spread_rotor); }