aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern Brandenburg <bbb@mpi-sws.org>2013-07-01 17:45:08 -0400
committerBjoern Brandenburg <bbb@mpi-sws.org>2014-06-07 05:30:57 -0400
commit721496c96d228ba5d13abd2b383b99e2d8d5196e (patch)
tree57ef31564e9ce675186141d3a39a4e469e7415be
parentf78fda18215729f3e8589205c5b025a1885d16b7 (diff)
Disable cut-to-CFS optimization in Linux scheduler
Global plugins require that the plugin be called even if there currently is no real-time task executing on the local core.
-rw-r--r--kernel/sched/core.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 210d42ddece1..d54b6d6cfc2c 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2942,12 +2942,19 @@ pick_next_task(struct rq *rq)
2942 /* 2942 /*
2943 * Optimization: we know that if all tasks are in 2943 * Optimization: we know that if all tasks are in
2944 * the fair class we can call that function directly: 2944 * the fair class we can call that function directly:
2945 */ 2945
2946 * NOT IN LITMUS^RT!
2947
2948 * This breaks many assumptions in the plugins.
2949 * Do not uncomment without thinking long and hard
2950 * about how this affects global plugins such as GSN-EDF.
2951
2946 if (likely(rq->nr_running == rq->cfs.h_nr_running)) { 2952 if (likely(rq->nr_running == rq->cfs.h_nr_running)) {
2947 p = fair_sched_class.pick_next_task(rq); 2953 p = fair_sched_class.pick_next_task(rq);
2948 if (likely(p)) 2954 if (likely(p))
2949 return p; 2955 return p;
2950 } 2956 }
2957 */
2951 2958
2952 for_each_class(class) { 2959 for_each_class(class) {
2953 p = class->pick_next_task(rq); 2960 p = class->pick_next_task(rq);