diff options
Diffstat (limited to 'litmus/sched_psn_edf.c')
-rw-r--r-- | litmus/sched_psn_edf.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/litmus/sched_psn_edf.c b/litmus/sched_psn_edf.c index 4e117be9546..b26a5ff439c 100644 --- a/litmus/sched_psn_edf.c +++ b/litmus/sched_psn_edf.c | |||
@@ -23,6 +23,8 @@ | |||
23 | #include <litmus/sched_trace.h> | 23 | #include <litmus/sched_trace.h> |
24 | #include <litmus/trace.h> | 24 | #include <litmus/trace.h> |
25 | 25 | ||
26 | #include <litmus/color.h> | ||
27 | |||
26 | typedef struct { | 28 | typedef struct { |
27 | rt_domain_t domain; | 29 | rt_domain_t domain; |
28 | int cpu; | 30 | int cpu; |
@@ -271,6 +273,14 @@ static struct task_struct* psnedf_schedule(struct task_struct * prev) | |||
271 | TRACE("becoming idle at %llu\n", litmus_clock()); | 273 | TRACE("becoming idle at %llu\n", litmus_clock()); |
272 | } | 274 | } |
273 | 275 | ||
276 | if (prev && next != prev && is_realtime(prev) && get_rt_job(prev) > 1) { | ||
277 | color_sched_out_task(prev); | ||
278 | } | ||
279 | |||
280 | if (next && next != prev && is_realtime(next)) { | ||
281 | color_sched_in_task(next); | ||
282 | } | ||
283 | |||
274 | pedf->scheduled = next; | 284 | pedf->scheduled = next; |
275 | sched_state_task_picked(); | 285 | sched_state_task_picked(); |
276 | raw_spin_unlock(&pedf->slock); | 286 | raw_spin_unlock(&pedf->slock); |