diff options
author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-07-01 17:45:08 -0400 |
---|---|---|
committer | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-08-07 03:46:58 -0400 |
commit | b2ddb2157bb6d291c317df1de18ad85addf93d8f (patch) | |
tree | f0188a621d7e2ac2a143ffda35a4bada5328e143 | |
parent | fa1584073535113c252b8c62fab819159ef68e4d (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 e91eb050d2fb..90cc4b53cc5f 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -2939,12 +2939,19 @@ pick_next_task(struct rq *rq) | |||
2939 | /* | 2939 | /* |
2940 | * Optimization: we know that if all tasks are in | 2940 | * Optimization: we know that if all tasks are in |
2941 | * the fair class we can call that function directly: | 2941 | * the fair class we can call that function directly: |
2942 | */ | 2942 | |
2943 | * NOT IN LITMUS^RT! | ||
2944 | |||
2945 | * This breaks many assumptions in the plugins. | ||
2946 | * Do not uncomment without thinking long and hard | ||
2947 | * about how this affects global plugins such as GSN-EDF. | ||
2948 | |||
2943 | if (likely(rq->nr_running == rq->cfs.h_nr_running)) { | 2949 | if (likely(rq->nr_running == rq->cfs.h_nr_running)) { |
2944 | p = fair_sched_class.pick_next_task(rq); | 2950 | p = fair_sched_class.pick_next_task(rq); |
2945 | if (likely(p)) | 2951 | if (likely(p)) |
2946 | return p; | 2952 | return p; |
2947 | } | 2953 | } |
2954 | */ | ||
2948 | 2955 | ||
2949 | for_each_class(class) { | 2956 | for_each_class(class) { |
2950 | p = class->pick_next_task(rq); | 2957 | p = class->pick_next_task(rq); |