]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
sched/numa: Introduce alternative wakeup bias
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Fri, 5 Oct 2012 13:57:54 +0000 (15:57 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 12 Oct 2012 10:07:16 +0000 (12:07 +0200)
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 <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/n/tip-q93t6n7j1jaz36yh056msb5d@git.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/fair.c
kernel/sched/features.h

index f586f17e12a07a1e6b3fa88cadc2b6ec4d02fa3d..62d77eff8e1c16b857defafe60c407c8d7ffecff 100644 (file)
@@ -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;
                }
        }
 
index 845b838f6f74905231f36a6feaf724ad53ee8332..3293af49ba7aff665ccd6735481502067d1f44c8 100644 (file)
@@ -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