aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_mc_ce.c
diff options
context:
space:
mode:
authorChristopher Kenna <cjk@cs.unc.edu>2011-09-27 14:07:52 -0400
committerChristopher Kenna <cjk@cs.unc.edu>2011-09-27 14:07:52 -0400
commit609c45f71b7a2405230fd2f8436837d6389ec599 (patch)
tree65acaac84534301f9e7cbdb1e8a5e491b511c9e1 /litmus/sched_mc_ce.c
parent46bb1ecb861729ebc3ac1631b6a7f7b131db86ac (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.c8
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}