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>
This commit is contained in:
Родитель
293d5b4394
Коммит
e50243bbeb
|
@ -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 */
|
||||
|
|
Загрузка…
Ссылка в новой задаче