aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2011-02-12 16:40:43 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2011-11-02 11:32:01 -0400
commit89174d049ea77b127fb3f8b3bbd8bc2996d0a535 (patch)
treecd53251376fcc9cfb390ef4ccf7dc5279f561720
parentec77ede8baa013138fe03ff45dd57f7bac50e5d4 (diff)
bugfix: release master CPU must signal task was picked
-rw-r--r--litmus/sched_cedf.c4
-rw-r--r--litmus/sched_pfair.c4
2 files changed, 6 insertions, 2 deletions
diff --git a/litmus/sched_cedf.c b/litmus/sched_cedf.c
index 690b94dbd686..4bf61f7dbf3f 100644
--- a/litmus/sched_cedf.c
+++ b/litmus/sched_cedf.c
@@ -421,8 +421,10 @@ static struct task_struct* cedf_schedule(struct task_struct * prev)
421 /* Bail out early if we are the release master. 421 /* Bail out early if we are the release master.
422 * The release master never schedules any real-time tasks. 422 * The release master never schedules any real-time tasks.
423 */ 423 */
424 if (cluster->domain.release_master == entry->cpu) 424 if (cluster->domain.release_master == entry->cpu) {
425 sched_state_task_picked();
425 return NULL; 426 return NULL;
427 }
426#endif 428#endif
427 429
428 raw_spin_lock(&cluster->lock); 430 raw_spin_lock(&cluster->lock);
diff --git a/litmus/sched_pfair.c b/litmus/sched_pfair.c
index e3db82a2bdf8..c95bde87b5d7 100644
--- a/litmus/sched_pfair.c
+++ b/litmus/sched_pfair.c
@@ -607,8 +607,10 @@ static struct task_struct* pfair_schedule(struct task_struct * prev)
607 /* Bail out early if we are the release master. 607 /* Bail out early if we are the release master.
608 * The release master never schedules any real-time tasks. 608 * The release master never schedules any real-time tasks.
609 */ 609 */
610 if (unlikely(cluster->pfair.release_master == cpu_id(state))) 610 if (unlikely(cluster->pfair.release_master == cpu_id(state))) {
611 sched_state_task_picked();
611 return NULL; 612 return NULL;
613 }
612#endif 614#endif
613 615
614 raw_spin_lock(cpu_lock(state)); 616 raw_spin_lock(cpu_lock(state));