]> git.baikalelectronics.ru Git - kernel.git/commit
tracing: syscall_regfunc() should not skip kernel threads
authorOleg Nesterov <oleg@redhat.com>
Sun, 13 Apr 2014 18:59:38 +0000 (20:59 +0200)
committerSteven Rostedt <rostedt@goodmis.org>
Sat, 21 Jun 2014 04:15:26 +0000 (00:15 -0400)
commit4deeded85fede8a5874cf6570b705a8ff0cbd7ea
treed1159b8993d462f28d8862e8839f3572d8f66e9a
parentcd007c927f17bdc3dbeb06e1dd37cb37415dc625
tracing: syscall_regfunc() should not skip kernel threads

syscall_regfunc() ignores the kernel threads because "it has no effect",
see 24fa07f1 "Don't trace kernel thread syscalls" which added this check.

However, this means that a user-space task spawned by call_usermodehelper()
will run without TIF_SYSCALL_TRACEPOINT if sys_tracepoint_refcount != 0.

Remove this check. The unnecessary report from ret_from_fork path mentioned
by 24fa07f1 is no longer possible, see See commit 726e2316687b2 "make sure
that kernel_thread() callbacks call do_exit() themselves".

A kernel_thread() callback can only return and take the int_ret_from_sys_call
path after do_execve() succeeds, otherwise the kernel will crash. But in this
case it is no longer a kernel thread and thus is needs TIF_SYSCALL_TRACEPOINT.

Link: http://lkml.kernel.org/p/20140413185938.GD20668@redhat.com
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/tracepoint.c