[RFC patch 02/20] LTTng Kernel Trace Thread Flag ARM

Mathieu Desnoyers
2009-05-09T16:51:39Z

[-- Attachment #1: lttng-kernel-trace-thread-flag-arm.patch --]
[-- Type: text/plain, Size: 2263 bytes --]

Add a thread flag to activate system-wide syscall tracing.

folded omap-arm-fix-syscall-exit-trace-flag.patch.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
---
arch/arm/include/asm/thread_info.h | 3 +++
arch/arm/kernel/entry-common.S | 2 ++
2 files changed, 5 insertions(+)

Index: linux-2.6-lttng/arch/arm/include/asm/thread_info.h
===================================================================
--- linux-2.6-lttng.orig/arch/arm/include/asm/thread_info.h 2009-04-23 14:56:15.000000000 -0400
+++ linux-2.6-lttng/arch/arm/include/asm/thread_info.h 2009-04-23 14:56:23.000000000 -0400
@@ -128,6 +128,7 @@ extern void vfp_sync_state(struct thread
/*
* thread information flags:
* TIF_SYSCALL_TRACE - syscall trace active
+ * TIF_KERNEL_TRACE - kernel trace active
* TIF_SIGPENDING - signal pending
* TIF_NEED_RESCHED - rescheduling necessary
* TIF_USEDFPU - FPU was used by this task this quantum (SMP)
@@ -135,6 +136,7 @@ extern void vfp_sync_state(struct thread
*/
#define TIF_SIGPENDING 0
#define TIF_NEED_RESCHED 1
+#define TIF_KERNEL_TRACE 7
#define TIF_SYSCALL_TRACE 8
#define TIF_POLLING_NRFLAG 16
#define TIF_USING_IWMMXT 17
@@ -143,6 +145,7 @@ extern void vfp_sync_state(struct thread

#define _TIF_SIGPENDING (1 << TIF_SIGPENDING)
#define _TIF_NEED_RESCHED (1 << TIF_NEED_RESCHED)
+#define _TIF_KERNEL_TRACE (1 << TIF_KERNEL_TRACE)
#define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
#define _TIF_POLLING_NRFLAG (1 << TIF_POLLING_NRFLAG)
#define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)
Index: linux-2.6-lttng/arch/arm/kernel/entry-common.S
===================================================================
--- linux-2.6-lttng.orig/arch/arm/kernel/entry-common.S 2009-04-23 14:56:15.000000000 -0400
+++ linux-2.6-lttng/arch/arm/kernel/entry-common.S 2009-04-23 14:56:23.000000000 -0400
@@ -47,6 +47,8 @@ ret_fast_syscall:
* Ok, we need to do extra processing, enter the slow path.
*/
fast_work_pending:
+ tst r1, #_TIF_KERNEL_TRACE @ flag can be set asynchronously
+ bne __sys_trace_return
str r0, [sp, #S_R0+S_OFF]! @ returned r0
work_pending:
tst r1, #_TIF_NEED_RESCHED