without this the idle routine still gets traced.. This is done already
for ACPI idle , but it should also be done for other idle routines.
Signed-off-by: Daniel Walker <[email protected]>
---
arch/i386/kernel/process.c | 9 +++++++++
arch/x86_64/kernel/process.c | 10 ++++++++++
2 files changed, 19 insertions(+)
Index: linux-2.6.22/arch/i386/kernel/process.c
===================================================================
--- linux-2.6.22.orig/arch/i386/kernel/process.c
+++ linux-2.6.22/arch/i386/kernel/process.c
@@ -197,8 +197,17 @@ void cpu_idle(void)
if (cpu_is_offline(cpu))
play_dead();
+ /*
+ * We have irqs disabled here, so stop latency tracing
+ * at this point and restart it after we return:
+ */
+ stop_critical_timing();
+
__get_cpu_var(irq_stat).idle_timestamp = jiffies;
idle();
+
+ touch_critical_timing();
+
}
local_irq_disable();
trace_preempt_exit_idle();
Index: linux-2.6.22/arch/x86_64/kernel/process.c
===================================================================
--- linux-2.6.22.orig/arch/x86_64/kernel/process.c
+++ linux-2.6.22/arch/x86_64/kernel/process.c
@@ -223,8 +223,18 @@ void cpu_idle (void)
* Otherwise, idle callbacks can misfire.
*/
local_irq_disable();
+
+ /*
+ * We have irqs disabled here, so stop latency tracing
+ * at this point and restart it after we return:
+ */
+ stop_critical_timing();
+
enter_idle();
idle();
+
+ touch_critical_timing();
+
/* In many cases the interrupt that ended idle
has already called exit_idle. But some idle
loops can be woken up without interrupt. */
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]