aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/include/linux/tracepoint.h
diff options
context:
space:
mode:
authorSteven Rostedt (Red Hat) <rostedt@goodmis.org>2015-01-14 12:53:45 -0500
committerSteven Rostedt <rostedt@goodmis.org>2015-01-15 09:42:50 -0500
commitce1039bd3a89e99e4f624e75fb1777fc92d76eb3 (patch)
tree08c2a1864c745b9f0f9765e6a1279fe55692015d /include/linux/tracepoint.h
parenttracing: Remove extra call to init_ftrace_syscalls() (diff)
downloadwireguard-linux-ce1039bd3a89e99e4f624e75fb1777fc92d76eb3.tar.xz
wireguard-linux-ce1039bd3a89e99e4f624e75fb1777fc92d76eb3.zip
tracing: Fix enabling of syscall events on the command line
Commit 5f893b2639b2 "tracing: Move enabling tracepoints to just after rcu_init()" broke the enabling of system call events from the command line. The reason was that the enabling of command line trace events was moved before PID 1 started, and the syscall tracepoints require that all tasks have the TIF_SYSCALL_TRACEPOINT flag set. But the swapper task (pid 0) is not part of that. Since the swapper task is the only task that is running at this early in boot, no task gets the flag set, and the tracepoint never gets reached. Instead of setting the swapper task flag (there should be no reason to do that), re-enabled trace events again after the init thread (PID 1) has been started. It requires disabling all command line events and re-enabling them, as just enabling them again will not reset the logic to set the TIF_SYSCALL_TRACEPOINT flag, as the syscall tracepoint will be fooled into thinking that it was already set, and wont try setting it again. For this reason, we must first disable it and re-enable it. Link: http://lkml.kernel.org/r/1421188517-18312-1-git-send-email-mpe@ellerman.id.au Link: http://lkml.kernel.org/r/20150115040506.216066449@goodmis.org Reported-by: Michael Ellerman <mpe@ellerman.id.au> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'include/linux/tracepoint.h')
0 files changed, 0 insertions, 0 deletions