From: tip-bot for Masami Hiramatsu <mhiramat@redhat.com>
To: linux-tip-commits@vger.kernel.org
Cc: mingo@redhat.com, peterz@infradead.org, fweisbec@gmail.com,
rostedt@goodmis.org, ak@linux.intel.com, jbaron@redhat.com,
tglx@linutronix.de, laijs@cn.fujitsu.com, mhiramat@redhat.com,
linux-kernel@vger.kernel.org, hpa@zytor.com, fche@redhat.com,
jkenisto@us.ibm.com, tzanussi@gmail.com, lizf@cn.fujitsu.com,
hch@infradead.org, ananth@in.ibm.com, srikar@linux.vnet.ibm.com,
mingo@elte.hu, prasad@linux.vnet.ibm.com
Subject: [tip:perf/probes] tracing/kprobes: Fix trace_probe registration order
Date: Sat, 17 Oct 2009 10:00:45 GMT [thread overview]
Message-ID: <tip-2d5e067edc4635ff7515bfa9ab3edb38bc344cab@git.kernel.org> (raw)
In-Reply-To: <20090914204856.18779.52961.stgit@dhcp-100-2-132.bos.redhat.com>
Commit-ID: 2d5e067edc4635ff7515bfa9ab3edb38bc344cab
Gitweb: http://git.kernel.org/tip/2d5e067edc4635ff7515bfa9ab3edb38bc344cab
Author: Masami Hiramatsu <mhiramat@redhat.com>
AuthorDate: Mon, 14 Sep 2009 16:48:56 -0400
Committer: Frederic Weisbecker <fweisbec@gmail.com>
CommitDate: Thu, 17 Sep 2009 04:03:40 +0200
tracing/kprobes: Fix trace_probe registration order
Fix trace_probe registration order. ftrace_event_call and ftrace_event
must be registered before kprobe/kretprobe, because tracing/profiling
handlers dereference the event-id.
Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Cc: Jim Keniston <jkenisto@us.ibm.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Frank Ch. Eigler <fche@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jason Baron <jbaron@redhat.com>
Cc: K.Prasad <prasad@linux.vnet.ibm.com>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <20090914204856.18779.52961.stgit@dhcp-100-2-132.bos.redhat.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
---
kernel/trace/trace_kprobe.c | 42 +++++++++++++++++++-----------------------
1 files changed, 19 insertions(+), 23 deletions(-)
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index cbc0870..ea0db8e 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -347,20 +347,15 @@ static struct trace_probe *find_probe_event(const char *event)
return NULL;
}
-static void __unregister_trace_probe(struct trace_probe *tp)
+/* Unregister a trace_probe and probe_event: call with locking probe_lock */
+static void unregister_trace_probe(struct trace_probe *tp)
{
if (probe_is_return(tp))
unregister_kretprobe(&tp->rp);
else
unregister_kprobe(&tp->rp.kp);
-}
-
-/* Unregister a trace_probe and probe_event: call with locking probe_lock */
-static void unregister_trace_probe(struct trace_probe *tp)
-{
- unregister_probe_event(tp);
- __unregister_trace_probe(tp);
list_del(&tp->list);
+ unregister_probe_event(tp);
}
/* Register a trace_probe and probe_event */
@@ -371,6 +366,19 @@ static int register_trace_probe(struct trace_probe *tp)
mutex_lock(&probe_lock);
+ /* register as an event */
+ old_tp = find_probe_event(tp->call.name);
+ if (old_tp) {
+ /* delete old event */
+ unregister_trace_probe(old_tp);
+ free_trace_probe(old_tp);
+ }
+ ret = register_probe_event(tp);
+ if (ret) {
+ pr_warning("Faild to register probe event(%d)\n", ret);
+ goto end;
+ }
+
if (probe_is_return(tp))
ret = register_kretprobe(&tp->rp);
else
@@ -384,21 +392,9 @@ static int register_trace_probe(struct trace_probe *tp)
tp->rp.kp.addr);
ret = -EINVAL;
}
- goto end;
- }
- /* register as an event */
- old_tp = find_probe_event(tp->call.name);
- if (old_tp) {
- /* delete old event */
- unregister_trace_probe(old_tp);
- free_trace_probe(old_tp);
- }
- ret = register_probe_event(tp);
- if (ret) {
- pr_warning("Faild to register probe event(%d)\n", ret);
- __unregister_trace_probe(tp);
- }
- list_add_tail(&tp->list, &probe_list);
+ unregister_probe_event(tp);
+ } else
+ list_add_tail(&tp->list, &probe_list);
end:
mutex_unlock(&probe_lock);
return ret;
next prev parent reply other threads:[~2009-10-17 10:01 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-14 20:48 [PATCH tracing/kprobes 0/6] tracing/kprobes: kprobe-based event tracer update and perf support Masami Hiramatsu
2009-09-14 20:48 ` [PATCH tracing/kprobes 1/6] tracing/kprobes: Fix trace_probe registration order Masami Hiramatsu
2009-10-17 10:00 ` tip-bot for Masami Hiramatsu [this message]
2009-09-14 20:49 ` [PATCH tracing/kprobes 2/6] ftrace: Fix trace_add_event_call() to initialize list Masami Hiramatsu
2009-09-15 23:51 ` Steven Rostedt
2009-09-16 14:17 ` Masami Hiramatsu
2009-09-16 14:29 ` Steven Rostedt
2009-09-16 15:42 ` [PATCH tracing/kprobes 2/6] ftrace: Fix trace_add_event_call() to initialize list take 2 Masami Hiramatsu
2009-09-16 15:43 ` Steven Rostedt
2009-10-17 10:01 ` [tip:perf/probes] ftrace: Fix trace_add_event_call() to initialize list tip-bot for Masami Hiramatsu
2009-09-14 20:49 ` [PATCH tracing/kprobes 3/6] ftrace: Fix trace_remove_event_call() to lock trace_event_mutex Masami Hiramatsu
2009-09-16 3:17 ` Steven Rostedt
2009-09-16 4:05 ` Frederic Weisbecker
2009-09-16 4:54 ` Ananth N Mavinakayanahalli
2009-09-16 5:33 ` Frederic Weisbecker
2009-09-16 14:31 ` Masami Hiramatsu
2009-10-17 10:01 ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-09-14 20:49 ` [PATCH tracing/kprobes 4/6] tracing/kprobes: Add probe handler dispatcher for support perf and ftrace Masami Hiramatsu
2009-10-17 10:01 ` [tip:perf/probes] tracing/kprobes: Add probe handler dispatcher to support perf and ftrace concurrent use tip-bot for Masami Hiramatsu
2009-09-14 20:49 ` [PATCH tracing/kprobes 5/6] tracing/kprobes: Fix profiling alignment for perf_counter buffer Masami Hiramatsu
2009-10-17 10:01 ` [tip:perf/probes] " tip-bot for Masami Hiramatsu
2009-09-14 20:49 ` [PATCH tracing/kprobes 6/6] tracing/kprobes: Disable kprobe events by default Masami Hiramatsu
2009-10-17 10:01 ` [tip:perf/probes] tracing/kprobes: Disable kprobe events by default after creation tip-bot for Masami Hiramatsu
2009-09-17 2:39 ` [PATCH tracing/kprobes 0/6] tracing/kprobes: kprobe-based event tracer update and perf support Frederic Weisbecker
2009-09-17 17:32 ` Masami Hiramatsu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-2d5e067edc4635ff7515bfa9ab3edb38bc344cab@git.kernel.org \
--to=mhiramat@redhat.com \
--cc=ak@linux.intel.com \
--cc=ananth@in.ibm.com \
--cc=fche@redhat.com \
--cc=fweisbec@gmail.com \
--cc=hch@infradead.org \
--cc=hpa@zytor.com \
--cc=jbaron@redhat.com \
--cc=jkenisto@us.ibm.com \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=lizf@cn.fujitsu.com \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=prasad@linux.vnet.ibm.com \
--cc=rostedt@goodmis.org \
--cc=srikar@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
--cc=tzanussi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.