|
@@ -1104,13 +1104,12 @@ static int task_numa_migrate(struct task_struct *p)
|
|
|
imp = task_faults(env.p, env.dst_nid) - faults;
|
|
|
update_numa_stats(&env.dst_stats, env.dst_nid);
|
|
|
|
|
|
- /*
|
|
|
- * If the preferred nid has capacity then use it. Otherwise find an
|
|
|
- * alternative node with relatively better statistics.
|
|
|
- */
|
|
|
- if (env.dst_stats.has_capacity) {
|
|
|
+ /* If the preferred nid has capacity, try to use it. */
|
|
|
+ if (env.dst_stats.has_capacity)
|
|
|
task_numa_find_cpu(&env, imp);
|
|
|
- } else {
|
|
|
+
|
|
|
+ /* No space available on the preferred nid. Look elsewhere. */
|
|
|
+ if (env.best_cpu == -1) {
|
|
|
for_each_online_node(nid) {
|
|
|
if (nid == env.src_nid || nid == p->numa_preferred_nid)
|
|
|
continue;
|