diff options
author | Christopher Kenna <cjk@cs.unc.edu> | 2011-09-27 14:07:52 -0400 |
---|---|---|
committer | Christopher Kenna <cjk@cs.unc.edu> | 2011-09-27 14:07:52 -0400 |
commit | 609c45f71b7a2405230fd2f8436837d6389ec599 (patch) | |
tree | 65acaac84534301f9e7cbdb1e8a5e491b511c9e1 /litmus/sched_mc_ce.c | |
parent | 46bb1ecb861729ebc3ac1631b6a7f7b131db86ac (diff) |
Debugged ghosts in the MC scheduler for CE tasks.
Diffstat (limited to 'litmus/sched_mc_ce.c')
-rw-r--r-- | litmus/sched_mc_ce.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/litmus/sched_mc_ce.c b/litmus/sched_mc_ce.c index 8cac7ea58f66..ff747005a6ed 100644 --- a/litmus/sched_mc_ce.c +++ b/litmus/sched_mc_ce.c | |||
@@ -128,7 +128,7 @@ static void mc_ce_job_completion(domain_t *dom, struct task_struct *ts) | |||
128 | const struct ce_pid_entry *pid_entry = get_pid_entry(cpu, idx); | 128 | const struct ce_pid_entry *pid_entry = get_pid_entry(cpu, idx); |
129 | unsigned int just_finished; | 129 | unsigned int just_finished; |
130 | 130 | ||
131 | TRACE_TASK(ts, "completed\n"); | 131 | TRACE_TASK(ts, "Completed\n"); |
132 | 132 | ||
133 | sched_trace_task_completion(ts, 0); | 133 | sched_trace_task_completion(ts, 0); |
134 | /* post-increment is important here */ | 134 | /* post-increment is important here */ |
@@ -412,8 +412,6 @@ void mc_ce_task_exit_common(struct task_struct *ts) | |||
412 | const int lvl_a_id = tsk_mc_data(ts)->mc_task.lvl_a_id; | 412 | const int lvl_a_id = tsk_mc_data(ts)->mc_task.lvl_a_id; |
413 | struct ce_pid_table *pid_table = get_pid_table(ce_data->cpu); | 413 | struct ce_pid_table *pid_table = get_pid_table(ce_data->cpu); |
414 | 414 | ||
415 | TRACE_TASK(ts, "exited\n"); | ||
416 | |||
417 | BUG_ON(task_cpu(ts) != get_partition(ts)); | 415 | BUG_ON(task_cpu(ts) != get_partition(ts)); |
418 | BUG_ON(CRIT_LEVEL_A != tsk_mc_crit(ts)); | 416 | BUG_ON(CRIT_LEVEL_A != tsk_mc_crit(ts)); |
419 | BUG_ON(lvl_a_id >= pid_table->num_pid_entries); | 417 | BUG_ON(lvl_a_id >= pid_table->num_pid_entries); |
@@ -568,7 +566,7 @@ static void arm_all_timers(void) | |||
568 | if (0 == pid_table->num_pid_entries) | 566 | if (0 == pid_table->num_pid_entries) |
569 | continue; | 567 | continue; |
570 | for (idx = 0; idx < pid_table->num_pid_entries; idx++) { | 568 | for (idx = 0; idx < pid_table->num_pid_entries; idx++) { |
571 | pid_table->entries[idx].expected_job = 1; | 569 | pid_table->entries[idx].expected_job = 0; |
572 | } | 570 | } |
573 | TRACE("arming timer for CPU %d\n", cpu); | 571 | TRACE("arming timer for CPU %d\n", cpu); |
574 | hrtimer_start_on(cpu, &ce_data->timer_info, &ce_data->timer, | 572 | hrtimer_start_on(cpu, &ce_data->timer_info, &ce_data->timer, |
@@ -649,7 +647,7 @@ static void clear_pid_entries(void) | |||
649 | } | 647 | } |
650 | pid_table->entries[entry].budget = 0; | 648 | pid_table->entries[entry].budget = 0; |
651 | pid_table->entries[entry].acc_time = 0; | 649 | pid_table->entries[entry].acc_time = 0; |
652 | pid_table->entries[entry].expected_job = 1; | 650 | pid_table->entries[entry].expected_job = 0; |
653 | } | 651 | } |
654 | } | 652 | } |
655 | } | 653 | } |