From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
David Ahern <dsahern@gmail.com>,
namhyung@kernel.org, Jiri Olsa <jolsa@redhat.com>,
Ingo Molnar <mingo@kernel.org>
Subject: [PATCH perf/core 2/8] [BUGFIX] perf probe: Remove all probes matches given pattern at once
Date: Tue, 21 Apr 2015 20:42:00 +0900 [thread overview]
Message-ID: <20150421114200.21617.19400.stgit@localhost.localdomain> (raw)
In-Reply-To: <20150421114155.21617.91519.stgit@localhost.localdomain>
Fix perf-probe --del option to delete all matched probes in both
of kprobes and uprobes at once.
When we have 2 or more events on different binaries as below,
----
# ./perf probe -l
probe:vfs_read (on vfs_read@ksrc/linux-3/fs/read_write.c)
probe_libc:malloc (on __libc_malloc@malloc/malloc.c in /usr/lib64/libc-2.17
----
Trying to remove all event with '*' just removes kprobe events at first.
----
# ./perf probe -d \*
Removed event: probe:vfs_read
----
And in 2nd try, it removes all uprobe events.
----
# ./perf probe -d \*
Removed event: probe_libc:malloc
----
This fixes to remove all event at once as below.
----
# ./perf probe -d \*
Removed event: probe:vfs_read
Removed event: probe_libc:malloc
----
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org>
---
tools/perf/util/probe-event.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index d8bb616..cae1fd7 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -2710,7 +2710,7 @@ static int del_trace_probe_event(int fd, const char *buf,
int del_perf_probe_events(struct strlist *dellist)
{
- int ret = -1, ufd = -1, kfd = -1;
+ int ret = -1, ret2, ufd = -1, kfd = -1;
char buf[128];
const char *group, *event;
char *p, *str;
@@ -2731,8 +2731,10 @@ int del_perf_probe_events(struct strlist *dellist)
goto error;
}
- if (namelist == NULL && unamelist == NULL)
+ if (namelist == NULL && unamelist == NULL) {
+ ret = -ENOENT;
goto error;
+ }
strlist__for_each(ent, dellist) {
str = strdup(ent->s);
@@ -2760,14 +2762,17 @@ int del_perf_probe_events(struct strlist *dellist)
pr_debug("Group: %s, Event: %s\n", group, event);
+ ret = ret2 = -ENOENT;
if (namelist)
ret = del_trace_probe_event(kfd, buf, namelist);
- if (unamelist && ret != 0)
- ret = del_trace_probe_event(ufd, buf, unamelist);
+ if (unamelist)
+ ret2 = del_trace_probe_event(ufd, buf, unamelist);
- if (ret != 0)
- pr_info("Info: Event \"%s\" does not exist.\n", buf);
+ /* Since we can remove probes which already removed, no error */
+ if (ret != 0 && ret2 != 0)
+ pr_debug("Event \"%s\" does not exist.\n", buf);
+ ret = 0;
free(str);
}
next prev parent reply other threads:[~2015-04-21 11:44 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-21 11:41 [PATCH perf/core 0/8] perf-probe: Add filtering features Masami Hiramatsu
2015-04-21 11:41 ` [PATCH perf/core 1/8] [BUGFIX] perf probe: Make --funcs option exclusive Masami Hiramatsu
2015-04-21 11:42 ` Masami Hiramatsu [this message]
2015-04-22 7:33 ` [PATCH perf/core 2/8] [BUGFIX] perf probe: Remove all probes matches given pattern at once Namhyung Kim
2015-04-22 12:27 ` Masami Hiramatsu
2015-04-21 11:42 ` [PATCH perf/core 3/8] perf probe: Accept multiple filter options Masami Hiramatsu
2015-04-21 11:42 ` [PATCH perf/core 4/8] perf probe: Accept filter argument for --list Masami Hiramatsu
2015-04-21 11:42 ` [PATCH perf/core 5/8] perf probe: Allow to use filter on --del command Masami Hiramatsu
2015-04-22 13:56 ` Namhyung Kim
2015-04-23 13:10 ` Masami Hiramatsu
2015-04-21 11:42 ` [PATCH perf/core 6/8] perf probe: Accept filter argument for --funcs Masami Hiramatsu
2015-04-21 11:42 ` [PATCH perf/core 7/8] perf probe: Remove redundant cleanup of params.filter Masami Hiramatsu
2015-04-21 11:42 ` [PATCH perf/core 8/8] perf probe: Cleanup and consolidate command parsers 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=20150421114200.21617.19400.stgit@localhost.localdomain \
--to=masami.hiramatsu.pt@hitachi.com \
--cc=acme@kernel.org \
--cc=dsahern@gmail.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
/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.