[RFC patch 16/20] LTTng Kernel Trace Thread Flag sparc

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

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

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

Folded lttng-kernel-trace-thread-flag-sparc64.patch.

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

Index: linux-2.6-lttng/arch/sparc/include/asm/thread_info_32.h
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/include/asm/thread_info_32.h 2009-03-15 15:57:04.000000000 -0400
+++ linux-2.6-lttng/arch/sparc/include/asm/thread_info_32.h 2009-03-15 15:57:18.000000000 -0400
@@ -130,6 +130,7 @@ BTFIXUPDEF_CALL(void, free_thread_info,
#define TIF_SIGPENDING 2 /* signal pending */
#define TIF_NEED_RESCHED 3 /* rescheduling necessary */
#define TIF_RESTORE_SIGMASK 4 /* restore signal mask in do_signal() */
+#define TIF_KERNEL_TRACE 5 /* kernel trace active */
#define TIF_USEDFPU 8 /* FPU was used by this task
* this quantum (SMP) */
#define TIF_POLLING_NRFLAG 9 /* true if poll_idle() is polling
@@ -139,6 +140,7 @@ BTFIXUPDEF_CALL(void, free_thread_info,

/* as above, but as bit values */
#define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
+#define _TIF_KERNEL_TRACE (1<<TIF_KERNEL_TRACE)
#define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME)
#define _TIF_SIGPENDING (1<<TIF_SIGPENDING)
#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
Index: linux-2.6-lttng/arch/sparc/kernel/entry.S
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/kernel/entry.S 2009-03-15 15:57:04.000000000 -0400
+++ linux-2.6-lttng/arch/sparc/kernel/entry.S 2009-03-15 15:57:18.000000000 -0400
@@ -1118,7 +1118,7 @@ sys_sigreturn:
add %sp, STACKFRAME_SZ, %o0

ld [%curptr + TI_FLAGS], %l5
- andcc %l5, _TIF_SYSCALL_TRACE, %g0
+ andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_KERNEL_TRACE), %g0
be 1f
nop

@@ -1138,7 +1138,7 @@ sys_rt_sigreturn:
add %sp, STACKFRAME_SZ, %o0

ld [%curptr + TI_FLAGS], %l5
- andcc %l5, _TIF_SYSCALL_TRACE, %g0
+ andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_KERNEL_TRACE), %g0
be 1f
nop

@@ -1280,7 +1280,7 @@ syscall_is_too_hard:

ld [%curptr + TI_FLAGS], %l5
mov %i3, %o3
- andcc %l5, _TIF_SYSCALL_TRACE, %g0
+ andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_KERNEL_TRACE), %g0
mov %i4, %o4
bne linux_syscall_trace
mov %i0, %l5
@@ -1297,7 +1297,7 @@ ret_sys_call:
ld [%sp + STACKFRAME_SZ + PT_PSR], %g3
set PSR_C, %g2
bgeu 1f
- andcc %l6, _TIF_SYSCALL_TRACE, %g0
+ andcc %l6, (_TIF_SYSCALL_TRACE|_TIF_KERNEL_TRACE), %g0

/* System call success, clear Carry condition code. */
andn %g3, %g2, %g3
Index: linux-2.6-lttng/arch/sparc/include/asm/thread_info_64.h
===================================================================
--- linux-2.6-lttng.orig/arch/sparc/include/asm/thread_info_64.h 2009-03-15 15:57:04.000000000 -0400
+++ linux-2.6-lttng/arch/sparc/include/asm/thread_info_64.h 2009-03-15 15:57:18.000000000 -0400
@@ -226,7 +226,7 @@ register struct thread_info *current_thr
#define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */
/* flag bit 6 is available */
#define TIF_32BIT 7 /* 32-bit binary */
-/* flag bit 8 is available */
+#define TIF_KERNEL_TRACE 8 /* kernel trace active */
#define TIF_SECCOMP 9 /* secure computing */
#define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */
/* flag bit 11 is available */
@@ -246,6 +246,7 @@ register struct thread_info *current_thr
#define _TIF_PERFCTR (1<<TIF_PERFCTR)
#define _TIF_UNALIGNED (1<<TIF_UNALIGNED)
#define _TIF_32BIT (1<<TIF_32BIT)
+#define _TIF_KERNEL_TRACE (1<<TIF_KERNEL_TRACE)
#define _TIF_SECCOMP (1<<TIF_SECCOMP)
#define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
#define _TIF_ABI_PENDING (1<<TIF_ABI_PENDING)