]> git.baikalelectronics.ru Git - kernel.git/commit
tracing/uprobes: Revert "Support mix of ftrace and perf"
authorOleg Nesterov <oleg@redhat.com>
Fri, 27 Jun 2014 17:01:36 +0000 (19:01 +0200)
committerSteven Rostedt <rostedt@goodmis.org>
Mon, 30 Jun 2014 17:21:58 +0000 (13:21 -0400)
commit1617ad253438a79112d090748a21269831233728
treecddf954fff810ca3dd1e03b817e263357d2ee686
parent6795debd67f3cc74bb042a44cadef695e6bb3575
tracing/uprobes: Revert "Support mix of ftrace and perf"

This reverts commit fb3342b7eb4e12ef983c2266cc5eb51a4e21393d.

This patch is very wrong. Firstly, this change leads to unbalanced
uprobe_unregister(). Just for example,

# perf probe -x /lib/libc.so.6 syscall
# echo 1 >> /sys/kernel/debug/tracing/events/probe_libc/enable
# perf record -e probe_libc:syscall whatever

after that uprobe is dead (unregistered) but the user of ftrace/perf
can't know this, and it looks as if nobody hits this probe.

This would be easy to fix, but there are other reasons why it is not
simple to mix ftrace and perf. If nothing else, they can't share the
same ->consumer.filter. This is fixable too, but probably we need to
fix the poorly designed uprobe_register() interface first. At least
"register" and "apply" should be clearly separated.

Link: http://lkml.kernel.org/p/20140627170136.GA18319@redhat.com
Cc: Tom Zanussi <tom.zanussi@linux.intel.com>
Cc: "zhangwei(Jovi)" <jovi.zhangwei@huawei.com>
Cc: stable@vger.kernel.org # v3.14
Acked-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace_uprobe.c