diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-03-12 12:23:13 -0500 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-29 17:28:13 -0400 |
commit | 5da9b3e7aab0755f6ca19738d33e218e02b19a41 (patch) | |
tree | 03c91b83dbbe3ab0f1b864465be05664a4eee25b /litmus | |
parent | 7a4affe47db86075eb36519049d047f6facab378 (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.
Diffstat (limited to 'litmus')
-rw-r--r-- | litmus/sched_psn_edf.c | 6 |
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 | ||
91 | static void job_completion(struct task_struct* t) | 91 | static 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 | ||