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 /kernel | |
| 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.
Diffstat (limited to 'kernel')
| -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); |
