diff options
Diffstat (limited to 'arch/x86')
| -rw-r--r-- | arch/x86/Kconfig | 2 | ||||
| -rw-r--r-- | arch/x86/configs/i386_defconfig | 2 | ||||
| -rw-r--r-- | arch/x86/configs/x86_64_defconfig | 2 | ||||
| -rw-r--r-- | arch/x86/include/asm/thread_info.h | 13 | ||||
| -rw-r--r-- | arch/x86/kernel/ptrace.c | 16 |
5 files changed, 17 insertions, 18 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 738bdc6b0f8b..d59cbf758f34 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
| @@ -37,7 +37,7 @@ config X86 | |||
| 37 | select HAVE_FUNCTION_GRAPH_FP_TEST | 37 | select HAVE_FUNCTION_GRAPH_FP_TEST |
| 38 | select HAVE_FUNCTION_TRACE_MCOUNT_TEST | 38 | select HAVE_FUNCTION_TRACE_MCOUNT_TEST |
| 39 | select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE | 39 | select HAVE_FTRACE_NMI_ENTER if DYNAMIC_FTRACE |
| 40 | select HAVE_FTRACE_SYSCALLS | 40 | select HAVE_SYSCALL_TRACEPOINTS |
| 41 | select HAVE_KVM | 41 | select HAVE_KVM |
| 42 | select HAVE_ARCH_KGDB | 42 | select HAVE_ARCH_KGDB |
| 43 | select HAVE_ARCH_TRACEHOOK | 43 | select HAVE_ARCH_TRACEHOOK |
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig index edb992ebef92..d28fad19654a 100644 --- a/arch/x86/configs/i386_defconfig +++ b/arch/x86/configs/i386_defconfig | |||
| @@ -2355,7 +2355,7 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | |||
| 2355 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 2355 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
| 2356 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 2356 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
| 2357 | CONFIG_HAVE_HW_BRANCH_TRACER=y | 2357 | CONFIG_HAVE_HW_BRANCH_TRACER=y |
| 2358 | CONFIG_HAVE_FTRACE_SYSCALLS=y | 2358 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y |
| 2359 | CONFIG_RING_BUFFER=y | 2359 | CONFIG_RING_BUFFER=y |
| 2360 | CONFIG_TRACING=y | 2360 | CONFIG_TRACING=y |
| 2361 | CONFIG_TRACING_SUPPORT=y | 2361 | CONFIG_TRACING_SUPPORT=y |
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig index cee1dd2e69b2..6c86acd847a4 100644 --- a/arch/x86/configs/x86_64_defconfig +++ b/arch/x86/configs/x86_64_defconfig | |||
| @@ -2329,7 +2329,7 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | |||
| 2329 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 2329 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
| 2330 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 2330 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
| 2331 | CONFIG_HAVE_HW_BRANCH_TRACER=y | 2331 | CONFIG_HAVE_HW_BRANCH_TRACER=y |
| 2332 | CONFIG_HAVE_FTRACE_SYSCALLS=y | 2332 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y |
| 2333 | CONFIG_RING_BUFFER=y | 2333 | CONFIG_RING_BUFFER=y |
| 2334 | CONFIG_TRACING=y | 2334 | CONFIG_TRACING=y |
| 2335 | CONFIG_TRACING_SUPPORT=y | 2335 | CONFIG_TRACING_SUPPORT=y |
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h index fad7d40b75f8..6f7786aea4fc 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h | |||
| @@ -95,7 +95,7 @@ struct thread_info { | |||
| 95 | #define TIF_DEBUGCTLMSR 25 /* uses thread_struct.debugctlmsr */ | 95 | #define TIF_DEBUGCTLMSR 25 /* uses thread_struct.debugctlmsr */ |
| 96 | #define TIF_DS_AREA_MSR 26 /* uses thread_struct.ds_area_msr */ | 96 | #define TIF_DS_AREA_MSR 26 /* uses thread_struct.ds_area_msr */ |
| 97 | #define TIF_LAZY_MMU_UPDATES 27 /* task is updating the mmu lazily */ | 97 | #define TIF_LAZY_MMU_UPDATES 27 /* task is updating the mmu lazily */ |
| 98 | #define TIF_SYSCALL_FTRACE 28 /* for ftrace syscall instrumentation */ | 98 | #define TIF_SYSCALL_TRACEPOINT 28 /* syscall tracepoint instrumentation */ |
| 99 | 99 | ||
| 100 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) | 100 | #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE) |
| 101 | #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) | 101 | #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME) |
| @@ -118,17 +118,17 @@ struct thread_info { | |||
| 118 | #define _TIF_DEBUGCTLMSR (1 << TIF_DEBUGCTLMSR) | 118 | #define _TIF_DEBUGCTLMSR (1 << TIF_DEBUGCTLMSR) |
| 119 | #define _TIF_DS_AREA_MSR (1 << TIF_DS_AREA_MSR) | 119 | #define _TIF_DS_AREA_MSR (1 << TIF_DS_AREA_MSR) |
| 120 | #define _TIF_LAZY_MMU_UPDATES (1 << TIF_LAZY_MMU_UPDATES) | 120 | #define _TIF_LAZY_MMU_UPDATES (1 << TIF_LAZY_MMU_UPDATES) |
| 121 | #define _TIF_SYSCALL_FTRACE (1 << TIF_SYSCALL_FTRACE) | 121 | #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT) |
| 122 | 122 | ||
| 123 | /* work to do in syscall_trace_enter() */ | 123 | /* work to do in syscall_trace_enter() */ |
| 124 | #define _TIF_WORK_SYSCALL_ENTRY \ | 124 | #define _TIF_WORK_SYSCALL_ENTRY \ |
| 125 | (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_FTRACE | \ | 125 | (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_AUDIT | \ |
| 126 | _TIF_SYSCALL_AUDIT | _TIF_SECCOMP | _TIF_SINGLESTEP) | 126 | _TIF_SECCOMP | _TIF_SINGLESTEP | _TIF_SYSCALL_TRACEPOINT) |
| 127 | 127 | ||
| 128 | /* work to do in syscall_trace_leave() */ | 128 | /* work to do in syscall_trace_leave() */ |
| 129 | #define _TIF_WORK_SYSCALL_EXIT \ | 129 | #define _TIF_WORK_SYSCALL_EXIT \ |
| 130 | (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP | \ | 130 | (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP | \ |
| 131 | _TIF_SYSCALL_FTRACE) | 131 | _TIF_SYSCALL_TRACEPOINT) |
| 132 | 132 | ||
| 133 | /* work to do on interrupt/exception return */ | 133 | /* work to do on interrupt/exception return */ |
| 134 | #define _TIF_WORK_MASK \ | 134 | #define _TIF_WORK_MASK \ |
| @@ -137,7 +137,8 @@ struct thread_info { | |||
| 137 | _TIF_SINGLESTEP|_TIF_SECCOMP|_TIF_SYSCALL_EMU)) | 137 | _TIF_SINGLESTEP|_TIF_SECCOMP|_TIF_SYSCALL_EMU)) |
| 138 | 138 | ||
| 139 | /* work to do on any return to user space */ | 139 | /* work to do on any return to user space */ |
| 140 | #define _TIF_ALLWORK_MASK ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_FTRACE) | 140 | #define _TIF_ALLWORK_MASK \ |
| 141 | ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT) | ||
| 141 | 142 | ||
| 142 | /* Only used for 64 bit */ | 143 | /* Only used for 64 bit */ |
| 143 | #define _TIF_DO_NOTIFY_MASK \ | 144 | #define _TIF_DO_NOTIFY_MASK \ |
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index 34dd6f15185d..8d7d5c9c1be3 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c | |||
| @@ -35,13 +35,11 @@ | |||
| 35 | #include <asm/proto.h> | 35 | #include <asm/proto.h> |
| 36 | #include <asm/ds.h> | 36 | #include <asm/ds.h> |
| 37 | 37 | ||
| 38 | #include <trace/syscall.h> | ||
| 39 | |||
| 40 | DEFINE_TRACE(syscall_enter); | ||
| 41 | DEFINE_TRACE(syscall_exit); | ||
| 42 | |||
| 43 | #include "tls.h" | 38 | #include "tls.h" |
| 44 | 39 | ||
| 40 | #define CREATE_TRACE_POINTS | ||
| 41 | #include <trace/events/syscalls.h> | ||
| 42 | |||
| 45 | enum x86_regset { | 43 | enum x86_regset { |
| 46 | REGSET_GENERAL, | 44 | REGSET_GENERAL, |
| 47 | REGSET_FP, | 45 | REGSET_FP, |
| @@ -1500,8 +1498,8 @@ asmregparm long syscall_trace_enter(struct pt_regs *regs) | |||
| 1500 | tracehook_report_syscall_entry(regs)) | 1498 | tracehook_report_syscall_entry(regs)) |
| 1501 | ret = -1L; | 1499 | ret = -1L; |
| 1502 | 1500 | ||
| 1503 | if (unlikely(test_thread_flag(TIF_SYSCALL_FTRACE))) | 1501 | if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) |
| 1504 | trace_syscall_enter(regs, regs->orig_ax); | 1502 | trace_sys_enter(regs, regs->orig_ax); |
| 1505 | 1503 | ||
| 1506 | if (unlikely(current->audit_context)) { | 1504 | if (unlikely(current->audit_context)) { |
| 1507 | if (IS_IA32) | 1505 | if (IS_IA32) |
| @@ -1526,8 +1524,8 @@ asmregparm void syscall_trace_leave(struct pt_regs *regs) | |||
| 1526 | if (unlikely(current->audit_context)) | 1524 | if (unlikely(current->audit_context)) |
| 1527 | audit_syscall_exit(AUDITSC_RESULT(regs->ax), regs->ax); | 1525 | audit_syscall_exit(AUDITSC_RESULT(regs->ax), regs->ax); |
| 1528 | 1526 | ||
| 1529 | if (unlikely(test_thread_flag(TIF_SYSCALL_FTRACE))) | 1527 | if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) |
| 1530 | trace_syscall_exit(regs, regs->ax); | 1528 | trace_sys_exit(regs, regs->ax); |
| 1531 | 1529 | ||
| 1532 | if (test_thread_flag(TIF_SYSCALL_TRACE)) | 1530 | if (test_thread_flag(TIF_SYSCALL_TRACE)) |
| 1533 | tracehook_report_syscall_exit(regs, 0); | 1531 | tracehook_report_syscall_exit(regs, 0); |
