diff options
-rw-r--r-- | kernel/sched/fair.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 8fbb0116bb5a..3fa3e1839c86 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c | |||
@@ -1613,11 +1613,13 @@ static void task_numa_placement(struct task_struct *p) | |||
1613 | spin_unlock_irq(group_lock); | 1613 | spin_unlock_irq(group_lock); |
1614 | } | 1614 | } |
1615 | 1615 | ||
1616 | /* Preferred node as the node with the most faults */ | 1616 | if (max_faults) { |
1617 | if (max_faults && max_nid != p->numa_preferred_nid) { | 1617 | /* Set the new preferred node */ |
1618 | /* Update the preferred nid and migrate task if possible */ | 1618 | if (max_nid != p->numa_preferred_nid) |
1619 | sched_setnuma(p, max_nid); | 1619 | sched_setnuma(p, max_nid); |
1620 | numa_migrate_preferred(p); | 1620 | |
1621 | if (task_node(p) != p->numa_preferred_nid) | ||
1622 | numa_migrate_preferred(p); | ||
1621 | } | 1623 | } |
1622 | } | 1624 | } |
1623 | 1625 | ||