diff options
author | Christopher Kenna <cjk@cs.unc.edu> | 2012-10-19 05:17:08 -0400 |
---|---|---|
committer | Christopher Kenna <cjk@cs.unc.edu> | 2012-10-19 05:17:08 -0400 |
commit | 0faf8c218a8f27c7e10fbbf31c8ed2d7661567a4 (patch) | |
tree | 88f63edccbb5e66efdc57c64580bacd23245d022 | |
parent | fb97680364ea3c7aaa691a819e0668cafb9289ad (diff) | |
parent | 57a160794fb7b1033746fe0d84205d673ea01e6b (diff) |
Merge remote-tracking branch 'litmus-rt/wip-mc' into pandaboard-litmus-mc
-rw-r--r-- | litmus/sched_mc.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/litmus/sched_mc.c b/litmus/sched_mc.c index fb339c8d3e7..c8677f688f7 100644 --- a/litmus/sched_mc.c +++ b/litmus/sched_mc.c | |||
@@ -667,6 +667,7 @@ static void check_partitioned_preempt(struct domain *dom) | |||
667 | return; | 667 | return; |
668 | } | 668 | } |
669 | 669 | ||
670 | entry->signal.preempt = 1; | ||
670 | litmus_reschedule(entry->cpu); | 671 | litmus_reschedule(entry->cpu); |
671 | } | 672 | } |
672 | 673 | ||
@@ -1263,8 +1264,16 @@ static void process_signals(struct cpu_entry *entry) | |||
1263 | /* A higher-priority task may exist */ | 1264 | /* A higher-priority task may exist */ |
1264 | STRACE("Reading preempt signal\n"); | 1265 | STRACE("Reading preempt signal\n"); |
1265 | 1266 | ||
1266 | check_partitioned_preempt(dom); | 1267 | if (mc_preempt_needed(ce->domain, ce->server.linked)) { |
1267 | raw_spin_unlock(dom->lock); | 1268 | preempt_crit(ce->domain, ce); |
1269 | raw_spin_unlock(dom->lock); | ||
1270 | if (!is_ghost(ce->server.linked)) { | ||
1271 | update_crit_levels(entry); | ||
1272 | raw_spin_lock(&entry->lock); | ||
1273 | } | ||
1274 | } else { | ||
1275 | raw_spin_unlock(dom->lock); | ||
1276 | } | ||
1268 | } | 1277 | } |
1269 | 1278 | ||
1270 | if (signal.update) { | 1279 | if (signal.update) { |