|
@@ -2180,9 +2180,6 @@ static void task_numa_placement(struct task_struct *p)
|
|
/* Set the new preferred node */
|
|
/* Set the new preferred node */
|
|
if (max_nid != p->numa_preferred_nid)
|
|
if (max_nid != p->numa_preferred_nid)
|
|
sched_setnuma(p, max_nid);
|
|
sched_setnuma(p, max_nid);
|
|
-
|
|
|
|
- if (task_node(p) != p->numa_preferred_nid)
|
|
|
|
- numa_migrate_preferred(p);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
update_task_scan_period(p, fault_types[0], fault_types[1]);
|
|
update_task_scan_period(p, fault_types[0], fault_types[1]);
|
|
@@ -2385,14 +2382,14 @@ void task_numa_fault(int last_cpupid, int mem_node, int pages, int flags)
|
|
numa_is_active_node(mem_node, ng))
|
|
numa_is_active_node(mem_node, ng))
|
|
local = 1;
|
|
local = 1;
|
|
|
|
|
|
- task_numa_placement(p);
|
|
|
|
-
|
|
|
|
/*
|
|
/*
|
|
* Retry task to preferred node migration periodically, in case it
|
|
* Retry task to preferred node migration periodically, in case it
|
|
* case it previously failed, or the scheduler moved us.
|
|
* case it previously failed, or the scheduler moved us.
|
|
*/
|
|
*/
|
|
- if (time_after(jiffies, p->numa_migrate_retry))
|
|
|
|
|
|
+ if (time_after(jiffies, p->numa_migrate_retry)) {
|
|
|
|
+ task_numa_placement(p);
|
|
numa_migrate_preferred(p);
|
|
numa_migrate_preferred(p);
|
|
|
|
+ }
|
|
|
|
|
|
if (migrated)
|
|
if (migrated)
|
|
p->numa_pages_migrated += pages;
|
|
p->numa_pages_migrated += pages;
|