diff options
author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-07-01 17:45:08 -0400 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2014-06-07 05:30:57 -0400 |
commit | 721496c96d228ba5d13abd2b383b99e2d8d5196e (patch) | |
tree | 57ef31564e9ce675186141d3a39a4e469e7415be | |
parent | f78fda18215729f3e8589205c5b025a1885d16b7 (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.c | 9 |
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); |