OSDN Git Service

tracing/uprobes: Support mix of ftrace and perf
authorNamhyung Kim <namhyung@kernel.org>
Fri, 17 Jan 2014 08:08:40 +0000 (17:08 +0900)
committerSteven Rostedt <rostedt@goodmis.org>
Thu, 20 Feb 2014 17:30:11 +0000 (12:30 -0500)
It seems there's no reason to prevent mixed used of ftrace and perf
for a single uprobe event.  At least the kprobes already support it.

Link: http://lkml.kernel.org/r/1389946120-19610-6-git-send-email-namhyung@kernel.org
Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: zhangwei(Jovi) <jovi.zhangwei@huawei.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace_uprobe.c

index 01fcb0d..e447336 100644 (file)
@@ -882,9 +882,6 @@ probe_event_enable(struct trace_uprobe *tu, struct ftrace_event_file *file,
        int ret;
 
        if (file) {
-               if (tu->tp.flags & TP_FLAG_PROFILE)
-                       return -EINTR;
-
                link = kmalloc(sizeof(*link), GFP_KERNEL);
                if (!link)
                        return -ENOMEM;
@@ -893,12 +890,8 @@ probe_event_enable(struct trace_uprobe *tu, struct ftrace_event_file *file,
                list_add_tail_rcu(&link->list, &tu->tp.files);
 
                tu->tp.flags |= TP_FLAG_TRACE;
-       } else {
-               if (tu->tp.flags & TP_FLAG_TRACE)
-                       return -EINTR;
-
+       } else
                tu->tp.flags |= TP_FLAG_PROFILE;
-       }
 
        ret = uprobe_buffer_enable();
        if (ret < 0)