diff options
| author | Bjoern Brandenburg <bbb@mpi-sws.org> | 2013-07-01 17:45:08 -0400 |
|---|---|---|
| committer | Namhoon Kim <namhoonk@cs.unc.edu> | 2014-10-21 10:04:30 -0400 |
| commit | d2d9bd3ce3b2af5edb9ac2a5b01fc6db4589c885 (patch) | |
| tree | 87fe522f3c81ac04554a98cee5a317f95e9a8f3b /kernel | |
| parent | 685b84e0e122117b1c38e06bc24378d757967545 (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 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); |
