aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2010-11-08 20:26:23 -0800
committerTodd Poynor <toddpoynor@google.com>2010-12-22 17:09:24 -0800
commit4e5206fb786eba459f317b9386d2b3767f0bf50d (patch)
tree28c966834540f74397d8ce1c6c967f9a57c84983
parente2760fa5d1b1318212753147f207696add2177f5 (diff)
downloadqemu-4e5206fb786eba459f317b9386d2b3767f0bf50d.tar.gz
ARM: Stop irqsoff trace on return to user
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 helpful for kernel performance analysis purposes. Only do so if the irqsoff tracer is enabled, to avoid overhead purely for lockdep, which doesn't care. Change-Id: I74cde7dd0c4c3a783af34e76bd4efc1f85315abe Signed-off-by: Todd Poynor <toddpoynor@google.com>
-rw-r--r--arch/arm/kernel/entry-common.S6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 7885722bdf4..c4a7050d878 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