Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e50243bb authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Arnaldo Carvalho de Melo
Browse files

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: default avatarMasami 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: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 293d5b43
Loading
Loading
Loading
Loading
+8 −7
Original line number Original line Diff line number Diff line
@@ -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);
	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) {
	switch (params.command) {
	case 'l':
	case 'l':
		if (params.uprobes) {
		if (params.uprobes) {
@@ -655,13 +663,6 @@ __cmd_probe(int argc, const char **argv, const char *prefix __maybe_unused)
		}
		}
		break;
		break;
	case 'D':
	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':
	case 'a':


		/* Ensure the last given target is used */
		/* Ensure the last given target is used */