summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Clark <james.clark@arm.com>2021-10-18 16:48:43 +0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2021-11-07 18:27:38 +0300
commitb3a018fc31fea05ffd034952b4b6e9e1eb0812bc (patch)
treedb80271a8b1d9190e1abfb1c7f3874a4af19a560
parent7cc72553ac03ec20afe2dec91dce4624ccd379b8 (diff)
downloadlinux-b3a018fc31fea05ffd034952b4b6e9e1eb0812bc.tar.xz
perf inject: Add vmlinux and ignore-vmlinux arguments
Other perf tools allow specifying the path to vmlinux. 'perf inject' didn't have this argument which made some auxtrace workflows difficult. Also add --ignore-vmlinux for consistency with other tools. Suggested-by: Denis Nikitin <denik@chromium.org> Signed-off-by: James Clark <james.clark@arm.com> Tested-by: Denis Nikitin <denik@chromium.org> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lore.kernel.org/r/20211018134844.2627174-4-james.clark@arm.com [ Added the perf-inject man page entries for these options, as noted by Denis ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/Documentation/perf-inject.txt7
-rw-r--r--tools/perf/builtin-inject.c7
2 files changed, 14 insertions, 0 deletions
diff --git a/tools/perf/Documentation/perf-inject.txt b/tools/perf/Documentation/perf-inject.txt
index 91108fe3ad5f..0570a1ccd344 100644
--- a/tools/perf/Documentation/perf-inject.txt
+++ b/tools/perf/Documentation/perf-inject.txt
@@ -45,6 +45,13 @@ OPTIONS
tasks slept. sched_switch contains a callchain where a task slept and
sched_stat contains a timeslice how long a task slept.
+-k::
+--vmlinux=<file>::
+ vmlinux pathname
+
+--ignore-vmlinux::
+ Ignore vmlinux files.
+
--kallsyms=<file>::
kallsyms pathname
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
index ac6c570029e3..bc5259db5fd9 100644
--- a/tools/perf/builtin-inject.c
+++ b/tools/perf/builtin-inject.c
@@ -940,6 +940,10 @@ int cmd_inject(int argc, const char **argv)
#endif
OPT_INCR('v', "verbose", &verbose,
"be more verbose (show build ids, etc)"),
+ OPT_STRING('k', "vmlinux", &symbol_conf.vmlinux_name,
+ "file", "vmlinux pathname"),
+ OPT_BOOLEAN(0, "ignore-vmlinux", &symbol_conf.ignore_vmlinux,
+ "don't load vmlinux even if found"),
OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name, "file",
"kallsyms pathname"),
OPT_BOOLEAN('f', "force", &data.force, "don't complain, do it"),
@@ -974,6 +978,9 @@ int cmd_inject(int argc, const char **argv)
return -1;
}
+ if (symbol__validate_sym_arguments())
+ return -1;
+
if (inject.in_place_update) {
if (!strcmp(inject.input_name, "-")) {
pr_err("Input file name required for in-place updating\n");