summaryrefslogtreecommitdiff
path: root/tools/perf/builtin-probe.c
diff options
context:
space:
mode:
authorMasami Hiramatsu <mhiramat@kernel.org>2016-08-26 23:57:58 +0900
committerArnaldo Carvalho de Melo <acme@redhat.com>2016-09-01 12:42:22 -0300
commite50243bbeb528e92e31e03e560b557737c9def3c (patch)
tree03fb12c524c654d1bc3bf336c5dab71cea443c36 /tools/perf/builtin-probe.c
parent293d5b43948309434568f4dcbb36cce4c3c51bd5 (diff)
downloadlwn-e50243bbeb528e92e31e03e560b557737c9def3c.tar.gz
lwn-e50243bbeb528e92e31e03e560b557737c9def3c.zip
perf probe: Ignore vmlinux Build-id when offline vmlinux given
Ignore vmlinux build-id when user gives offline vmlinux if the command does not affect running kernel. perf-probe has several actions some of them does not change the running kernel, like --lines, --vars, and --funcs. e.g. ----- $ ./perf probe -k ./vmlinux-arm -V do_sys_open:14 Available variables at do_sys_open:14 @<do_sys_open+202> char* filename int dfd int fd int flags struct filename* tmp struct open_flags op umode_t mode ----- Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Link: http://lkml.kernel.org/r/147222347320.5088.2582658035296667520.stgit@devbox Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-probe.c')
-rw-r--r--tools/perf/builtin-probe.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/tools/perf/builtin-probe.c b/tools/perf/builtin-probe.c
index b4220cd4acd8..f87996b0cb29 100644
--- a/tools/perf/builtin-probe.c
+++ b/tools/perf/builtin-probe.c
@@ -611,6 +611,14 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
*/
symbol_conf.try_vmlinux_path = (symbol_conf.vmlinux_name == NULL);
+ /*
+ * Except for --list, --del and --add, other command doesn't depend
+ * nor change running kernel. So if user gives offline vmlinux,
+ * ignore its buildid.
+ */
+ if (!strchr("lda", params.command) && symbol_conf.vmlinux_name)
+ symbol_conf.ignore_vmlinux_buildid = true;
+
switch (params.command) {
case 'l':
if (params.uprobes) {
@@ -655,13 +663,6 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
}
break;
case 'D':
- /*
- * If user gives offline vmlinux, ignore buildid, since
- * --definition doesn't change running kernel.
- */
- if (symbol_conf.vmlinux_name)
- symbol_conf.ignore_vmlinux_buildid = true;
- /* fall through */
case 'a':
/* Ensure the last given target is used */