diff options
author | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-04-26 13:42:00 -0400 |
---|---|---|
committer | Andrea Bastoni <bastoni@cs.unc.edu> | 2010-05-29 17:35:03 -0400 |
commit | 8fe2fb8bb1c1cd0194608bc783d0ce7029e8d869 (patch) | |
tree | e01b2774ada53c3152bf87ea2bd919db4fcac78e | |
parent | 5da9b3e7aab0755f6ca19738d33e218e02b19a41 (diff) |
Measure timer re-arming in the proper location
hrtimers are properly rearmed during arm_release_timer() and no longer
after rescheduling (with the norqlock mechanism of 2008.3). This commit
accordingly updates the locations where measures are taken.
-rw-r--r-- | kernel/sched.c | 4 | ||||
-rw-r--r-- | litmus/rt_domain.c | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index 1701eaebb79c..adb5e923cc61 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -5520,20 +5520,16 @@ need_resched_nonpreemptible: | |||
5520 | spin_unlock_irq(&rq->lock); | 5520 | spin_unlock_irq(&rq->lock); |
5521 | } | 5521 | } |
5522 | 5522 | ||
5523 | TS_SCHED2_START(current); | ||
5524 | sched_trace_task_switch_to(current); | 5523 | sched_trace_task_switch_to(current); |
5525 | 5524 | ||
5526 | post_schedule(rq); | 5525 | post_schedule(rq); |
5527 | 5526 | ||
5528 | if (unlikely(reacquire_kernel_lock(current) < 0)) { | 5527 | if (unlikely(reacquire_kernel_lock(current) < 0)) { |
5529 | TS_SCHED2_END(current); | ||
5530 | goto need_resched_nonpreemptible; | 5528 | goto need_resched_nonpreemptible; |
5531 | } | 5529 | } |
5532 | 5530 | ||
5533 | preempt_enable_no_resched(); | 5531 | preempt_enable_no_resched(); |
5534 | 5532 | ||
5535 | TS_SCHED2_END(current); | ||
5536 | |||
5537 | if (need_resched()) | 5533 | if (need_resched()) |
5538 | goto need_resched; | 5534 | goto need_resched; |
5539 | 5535 | ||
diff --git a/litmus/rt_domain.c b/litmus/rt_domain.c index 0ed6d5cbbfc5..609ff0f82abb 100644 --- a/litmus/rt_domain.c +++ b/litmus/rt_domain.c | |||
@@ -301,6 +301,10 @@ void __add_release(rt_domain_t* rt, struct task_struct *task) | |||
301 | task->rt_param.domain = rt; | 301 | task->rt_param.domain = rt; |
302 | 302 | ||
303 | /* start release timer */ | 303 | /* start release timer */ |
304 | TS_SCHED2_START(task); | ||
305 | |||
304 | arm_release_timer(rt); | 306 | arm_release_timer(rt); |
307 | |||
308 | TS_SCHED2_END(task); | ||
305 | } | 309 | } |
306 | 310 | ||