sched/numa: Introduce alternative wakeup bias
Commit-ID: 52a30f1fa3b9f0c0d1270b4e34be865e83b3e31b Gitweb: http://git.kernel.org/tip/52a30f1fa3b9f0c0d1270b4e34be865e83b3e31b Author: Peter Zijlstra <[email protected]> AuthorDate: Fri, 5 Oct 2012 15:57:54 +0200 Committer: Ingo Molnar <[email protected]> CommitDate: Fri, 12 Oct 2012 12:07:16 +0200
sched/numa: Introduce alternative wakeup bias
Rename NUMA_BIAS to NUMA_TTWU_BIAS to clarify what it does.
Also, disable by default, it seems too agressive. Also provide an alternative to play with, instead of altering the prev cpu, alter the waking cpu, maybe that's less agressive.
No clear data either way for the moment.
Signed-off-by Peter Zijlstra <[email protected]>
Signed-off-by Ingo Molnar <[email protected]>
--- kernel/sched/fair.c | 7 +++++-- kernel/sched/features.h | 3 ++- 2 files changed, 7 insertions(+), 3 deletions(-)
kernel/sched/fair.c +5 -2
@@ -3009,7 +3009,7 @@ select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flags) }rcu_read_lock (); -if (sched_feat_numa (NUMA_BIAS ) && node !=-1 ) { +if (sched_feat_numa (NUMA_TTWU_BIAS ) && node !=-1 ) {/* * For fork,exec find the idlest cpu in the home-node. */
@@ -3031,7 +3031,10 @@ select_task_rq_fair(struct task_struct *p, int sd_flag, int wake_flags)if (node_cpu <0 ) goto find_sd; - prev_cpu = node_cpu; +if (sched_feat_numa (NUMA_TTWU_TO )) + cpu = node_cpu; +else + prev_cpu = node_cpu; } }
kernel/sched/features.h +2 -1
@@ -66,7 +66,8 @@ SCHED_FEAT(LB_MIN, false) SCHED_FEAT(NUMA, true) SCHED_FEAT(NUMA_FORCE_BIG, false) SCHED_FEAT(NUMA_HOT, true) -SCHED_FEAT(NUMA_BIAS, true) +SCHED_FEAT(NUMA_TTWU_BIAS, false) +SCHED_FEAT(NUMA_TTWU_TO, false) SCHED_FEAT(NUMA_PULL, true) SCHED_FEAT(NUMA_PULL_BIAS, true)#endif