[PATCH -rt 8/8] stop critical timing in idle.

From: Daniel Walker
Date: Tue Aug 28 2007 - 17:39:13 EST


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 <dwalker@xxxxxxxxxx>

---
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/