aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrea Bastoni <bastoni@cs.unc.edu>2010-04-26 13:42:00 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2010-05-29 17:35:03 -0400
commit8fe2fb8bb1c1cd0194608bc783d0ce7029e8d869 (patch)
treee01b2774ada53c3152bf87ea2bd919db4fcac78e
parent5da9b3e7aab0755f6ca19738d33e218e02b19a41 (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.c4
-rw-r--r--litmus/rt_domain.c4
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