mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-03 01:36:52 +09:00
sched/numa: Introduce migrate_swap()
Use the new stop_two_cpus() to implement migrate_swap(), a function that flips two tasks between their respective cpus. I'm fairly sure there's a less crude way than employing the stop_two_cpus() method, but everything I tried either got horribly fragile and/or complex. So keep it simple for now. The notable detail is how we 'migrate' tasks that aren't runnable anymore. We'll make it appear like we migrated them before they went to sleep. The sole difference is the previous cpu in the wakeup path, so we override this. Signed-off-by: Peter Zijlstra <peterz@infradead.org> Reviewed-by: Rik van Riel <riel@redhat.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Signed-off-by: Mel Gorman <mgorman@suse.de> Link: http://lkml.kernel.org/r/1381141781-10992-39-git-send-email-mgorman@suse.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
committed by
Ingo Molnar
parent
1be0bd77c5
commit
ac66f54772
@@ -1043,6 +1043,8 @@ struct task_struct {
|
||||
struct task_struct *last_wakee;
|
||||
unsigned long wakee_flips;
|
||||
unsigned long wakee_flip_decay_ts;
|
||||
|
||||
int wake_cpu;
|
||||
#endif
|
||||
int on_rq;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user