aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_psn_edf.c
diff options
context:
space:
mode:
authorChristopher Kenna <cjk@cs.unc.edu>2012-10-19 00:29:15 -0400
committerChristopher Kenna <cjk@cs.unc.edu>2012-10-19 00:29:15 -0400
commit2326b2b05adee72ad7fa811e3a766355c732cfda (patch)
tree20abd3f4f192b29739ea11f8aa1d243839430cbf /litmus/sched_psn_edf.c
parent3b286b3c7d25f2abd71ccb7853d1398430a65552 (diff)
Try and debug the queue.wip-mc
Diffstat (limited to 'litmus/sched_psn_edf.c')
-rw-r--r--litmus/sched_psn_edf.c10
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
26typedef struct { 28typedef 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);