diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-02-12 16:40:43 -0500 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2011-02-12 16:40:43 -0500 |
commit | 4df6011f5e571630cd99cd29b36bc8a701520540 (patch) | |
tree | 2dd96965c2d3ca645ba3ef8f4929ce4c08ba4c36 | |
parent | 579a1c4dbfb27ec7e8030fd6fc20f342780f369c (diff) |
bugfix: release master CPU must signal task was picked
-rw-r--r-- | litmus/sched_cedf.c | 4 | ||||
-rw-r--r-- | litmus/sched_gsn_edf.c | 4 | ||||
-rw-r--r-- | litmus/sched_pfair.c | 4 |
3 files changed, 9 insertions, 3 deletions
diff --git a/litmus/sched_cedf.c b/litmus/sched_cedf.c index cb6a0bd0963c..1838c6b6fb0c 100644 --- a/litmus/sched_cedf.c +++ b/litmus/sched_cedf.c | |||
@@ -382,8 +382,10 @@ static struct task_struct* cedf_schedule(struct task_struct * prev) | |||
382 | /* Bail out early if we are the release master. | 382 | /* Bail out early if we are the release master. |
383 | * The release master never schedules any real-time tasks. | 383 | * The release master never schedules any real-time tasks. |
384 | */ | 384 | */ |
385 | if (cluster->domain.release_master == entry->cpu) | 385 | if (cluster->domain.release_master == entry->cpu) { |
386 | sched_state_task_picked(); | ||
386 | return NULL; | 387 | return NULL; |
388 | } | ||
387 | #endif | 389 | #endif |
388 | 390 | ||
389 | raw_spin_lock(&cluster->lock); | 391 | raw_spin_lock(&cluster->lock); |
diff --git a/litmus/sched_gsn_edf.c b/litmus/sched_gsn_edf.c index bd3b36223428..770004544edd 100644 --- a/litmus/sched_gsn_edf.c +++ b/litmus/sched_gsn_edf.c | |||
@@ -375,8 +375,10 @@ static struct task_struct* gsnedf_schedule(struct task_struct * prev) | |||
375 | /* Bail out early if we are the release master. | 375 | /* Bail out early if we are the release master. |
376 | * The release master never schedules any real-time tasks. | 376 | * The release master never schedules any real-time tasks. |
377 | */ | 377 | */ |
378 | if (gsnedf.release_master == entry->cpu) | 378 | if (gsnedf.release_master == entry->cpu) { |
379 | sched_state_task_picked(); | ||
379 | return NULL; | 380 | return NULL; |
381 | } | ||
380 | #endif | 382 | #endif |
381 | 383 | ||
382 | raw_spin_lock(&gsnedf_lock); | 384 | raw_spin_lock(&gsnedf_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)); |