From ce313ac8c1531c11d670fd84fe2526bbb5f32f85 Mon Sep 17 00:00:00 2001 From: Bjoern Brandenburg Date: Thu, 6 Sep 2012 11:15:04 +0200 Subject: Move SCHED2 trace points to post_schedule() Linux's post_schedule() scheduling class hook more closely matches what SCHED2 is supposed to trace, namely any scheduling overhead after the context switch. The prior trace points caught timers being armed from finish_switch(), which is already included in the context switch cost CXS. (This patch essentially reverts 8fe2fb8bb1c1cd0194608bc783d0ce7029e8d869). --- kernel/sched.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'kernel') diff --git a/kernel/sched.c b/kernel/sched.c index 1d7b38a7ff25..c4b6bd5151ff 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -4417,14 +4417,20 @@ litmus_need_resched_nonpreemptible: raw_spin_unlock_irq(&rq->lock); } + TS_SCHED2_START(prev); sched_trace_task_switch_to(current); post_schedule(rq); - if (sched_state_validate_switch()) + if (sched_state_validate_switch()) { + TS_SCHED2_END(prev); goto litmus_need_resched_nonpreemptible; + } preempt_enable_no_resched(); + + TS_SCHED2_END(prev); + if (need_resched()) goto need_resched; -- cgit v1.2.2