diff options
author | Paul Mundt <lethal@linux-sh.org> | 2008-11-26 15:22:50 +0900 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-12-22 18:43:49 +0900 |
commit | f74c034d52d0f908d5b929423a680962a2586199 (patch) | |
tree | 0448aa785f65a89882edd2e9e4fc697de8388e68 /arch/sh | |
parent | 75fd24c1073adcd1e8ea43048d946bbfa34dfc64 (diff) | |
download | linux-f74c034d52d0f908d5b929423a680962a2586199.tar.gz linux-f74c034d52d0f908d5b929423a680962a2586199.tar.bz2 linux-f74c034d52d0f908d5b929423a680962a2586199.zip |
sh: do not latency trace idle.
Description snipped from Steven Rostedt's PPC patch:
When idle is called, interrupts are blocked, but the idle
function will still wake up on an interrupt. The problem is
that the interrupt disabled latency tracer will take this call
to idle as a latency.
This patch disables the latency tracing when going into idle.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/kernel/process_32.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/sh/kernel/process_32.c b/arch/sh/kernel/process_32.c index 908731c49afb..e781540bd991 100644 --- a/arch/sh/kernel/process_32.c +++ b/arch/sh/kernel/process_32.c @@ -59,8 +59,12 @@ static void default_idle(void) clear_thread_flag(TIF_POLLING_NRFLAG); smp_mb__after_clear_bit(); set_bl_bit(); + stop_critical_timings(); + while (!need_resched()) cpu_sleep(); + + start_critical_timings(); clear_bl_bit(); set_thread_flag(TIF_POLLING_NRFLAG); } else |