[PATCH] ARM: Stop irqsoff trace on return to user

Todd Poynor toddpoynor at google.com
Fri Dec 3 22:41:47 EST 2010


If the irqsoff tracer is in use, stop tracing the interrupt disable
interval when returning to userspace.  Tracing userspace execution
time as interrupts disabled time is not useful for kernel
performance analysis purposes, and crowds out more helpful results
with long userspace execution times.  Some other architectures do
something similar.

Only do so if the irqsoff tracer is enabled, to avoid overhead for
lockdep, which doesn't care about userspace execution time with
interrupts disabled.

Signed-off-by: Todd Poynor <toddpoynor at google.com>
---
 arch/arm/kernel/entry-common.S |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 8bfa987..80bf8cd 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -29,6 +29,9 @@ ret_fast_syscall:
 	ldr	r1, [tsk, #TI_FLAGS]
 	tst	r1, #_TIF_WORK_MASK
 	bne	fast_work_pending
+#if defined(CONFIG_IRQSOFF_TRACER)
+	asm_trace_hardirqs_on
+#endif
 
 	/* perform architecture specific actions before user return */
 	arch_ret_to_user r1, lr
@@ -65,6 +68,9 @@ ret_slow_syscall:
 	tst	r1, #_TIF_WORK_MASK
 	bne	work_pending
 no_work_pending:
+#if defined(CONFIG_IRQSOFF_TRACER)
+	asm_trace_hardirqs_on
+#endif
 	/* perform architecture specific actions before user return */
 	arch_ret_to_user r1, lr
 
-- 
1.7.3.1




More information about the linux-arm-kernel mailing list