]> 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)
commit2ff0c496e922ddd0ab903c44e439504c4ecc6b5a
treecddf954fff810ca3dd1e03b817e263357d2ee686
parent2205a171ddf8de61bd145f5047118ee1a29b4995
tracing/uprobes: Revert "Support mix of ftrace and perf"

This reverts commit 587a927f76ed80bd935a9b780a00e73e965deecd.

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