aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-03-12 12:23:13 -0500
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-29 17:28:13 -0400
commit5da9b3e7aab0755f6ca19738d33e218e02b19a41 (patch)
tree03c91b83dbbe3ab0f1b864465be05664a4eee25b
parent7a4affe47db86075eb36519049d047f6facab378 (diff)
Bugfix: PSN-EDF should log job_completion events
Log task completions in job_completion() for PSN-EDF. This fixes the problem of missing job-completion events for PSN-EDF.
-rw-r--r--litmus/sched_psn_edf.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/litmus/sched_psn_edf.c b/litmus/sched_psn_edf.c
index d37f045768d5..7f71ecfaaaae 100644
--- a/litmus/sched_psn_edf.c
+++ b/litmus/sched_psn_edf.c
@@ -88,9 +88,11 @@ static int psnedf_check_resched(rt_domain_t *edf)
88 return 0; 88 return 0;
89} 89}
90 90
91static void job_completion(struct task_struct* t) 91static void job_completion(struct task_struct* t, int forced)
92{ 92{
93 sched_trace_task_completion(t,forced);
93 TRACE_TASK(t, "job_completion().\n"); 94 TRACE_TASK(t, "job_completion().\n");
95
94 set_rt_flags(t, RT_F_SLEEP); 96 set_rt_flags(t, RT_F_SLEEP);
95 prepare_for_next_period(t); 97 prepare_for_next_period(t);
96} 98}
@@ -168,7 +170,7 @@ static struct task_struct* psnedf_schedule(struct task_struct * prev)
168 * this. 170 * this.
169 */ 171 */
170 if (!np && (out_of_time || sleep) && !blocks) { 172 if (!np && (out_of_time || sleep) && !blocks) {
171 job_completion(pedf->scheduled); 173 job_completion(pedf->scheduled, !sleep);
172 resched = 1; 174 resched = 1;
173 } 175 }
174 176