From b5aa4b6a4efc476e3a9b9fafcafd080d9aaa173e Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Wed, 15 Feb 2012 22:13:43 -0500 Subject: [PATCH] syscall tracing: sys_getcpu Signed-off-by: Mathieu Desnoyers --- .../headers/syscalls_pointers_override.h | 22 ++++++++++++++++--- ...-32-syscalls-3.1.0-rc6_pointers_override.h | 2 ++ .../x86-64-syscalls-3.0.4_pointers_override.h | 2 ++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/instrumentation/syscalls/headers/syscalls_pointers_override.h b/instrumentation/syscalls/headers/syscalls_pointers_override.h index f268ce16..a24c4d31 100644 --- a/instrumentation/syscalls/headers/syscalls_pointers_override.h +++ b/instrumentation/syscalls/headers/syscalls_pointers_override.h @@ -18,9 +18,8 @@ SC_TRACE_EVENT(sys_execve, SC_TRACE_EVENT(sys_clone, TP_PROTO(unsigned long clone_flags, unsigned long newsp, void __user *parent_tid, - void __user *child_tid, - struct pt_regs *regs), - TP_ARGS(clone_flags, newsp, parent_tid, child_tid, regs), + void __user *child_tid), + TP_ARGS(clone_flags, newsp, parent_tid, child_tid), TP_STRUCT__entry( __field_hex(unsigned long, clone_flags) __field_hex(unsigned long, newsp) @@ -34,4 +33,21 @@ SC_TRACE_EVENT(sys_clone, TP_printk() ) +/* present in 32, missing in 64 due to old kernel headers */ +#define OVERRIDE_32_sys_getcpu +#define OVERRIDE_64_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned __user *cpup, unsigned __user *nodep, void *tcache), + TP_ARGS(cpup, nodep, tcache), + TP_STRUCT__entry( + __field_hex(unsigned *, cpup) + __field_hex(unsigned *, nodep) + __field_hex(void *, tcache)), + TP_fast_assign( + tp_assign(cpup, cpup) + tp_assign(nodep, nodep) + tp_assign(tcache, tcache)), + TP_printk() +) + #endif /* CREATE_SYSCALL_TABLE */ diff --git a/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers_override.h b/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers_override.h index 9d6d7af8..4ee3ca3d 100644 --- a/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers_override.h +++ b/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers_override.h @@ -25,6 +25,8 @@ TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 11, 3) #define OVERRIDE_TABLE_32_sys_clone TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 120, 5) +#define OVERRIDE_TABLE_32_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 318, 3) #endif /* CREATE_SYSCALL_TABLE */ diff --git a/instrumentation/syscalls/headers/x86-64-syscalls-3.0.4_pointers_override.h b/instrumentation/syscalls/headers/x86-64-syscalls-3.0.4_pointers_override.h index b6b853fd..8aa2abcb 100644 --- a/instrumentation/syscalls/headers/x86-64-syscalls-3.0.4_pointers_override.h +++ b/instrumentation/syscalls/headers/x86-64-syscalls-3.0.4_pointers_override.h @@ -6,5 +6,7 @@ TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 56, 5) #define OVERRIDE_TABLE_64_sys_execve TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 59, 3) +#define OVERRIDE_TABLE_64_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 309, 3) #endif /* CREATE_SYSCALL_TABLE */ -- 2.39.5