path: root/tools/perf/builtin-inject.c
diff options
authorYunlong Song <>2015-04-02 21:47:11 +0800
committerArnaldo Carvalho de Melo <>2015-04-02 13:18:45 -0300
commitccaa474c8a0983d26ecb3eac755672b546b997c3 (patch)
treef55eb9912c858dca30304fe60dfb282a3cc0b5bc /tools/perf/builtin-inject.c
parent9e3b6ec17374299516d83c2e36135b958a895aa3 (diff)
perf inject: Support using -f to override file ownership
Enable perf inject to use when it is not owned by current user or root. Example: # perf record ls # chown Yunlong.Song:Yunlong.Song # ls -al -rw------- 1 Yunlong.Song Yunlong.Song 28260 Apr 2 10:37 # id uid=0(root) gid=0(root) groups=0(root),64(pkcs11) Before this patch: # perf inject -v -b -i -o File not owned by current user or root (use -f to override) # perf inject -v -b -i -o -f Error: unknown switch `f' usage: perf inject [<options>] -b, --build-ids Inject build-ids into the output stream -i, --input <file> input file name -o, --output <file> output file name -s, --sched-stat Merge sched-stat and sched-switch for getting events where and how long tasks slept -v, --verbose be more verbose (show build ids, etc) --kallsyms <file> kallsyms pathname As shown above, the -f option does not work at all. After this patch: # perf inject -v -b -i -o File not owned by current user or root (use -f to override) # perf inject -v -b -i -o -f build id event received for [kernel.kallsyms]: f6dcb66d8b98f1c0d9eb87bf043444b69f91d30c symsrc__init: cannot get elf header. Looking at the vmlinux_path (7 entries long) Using /proc/kcore for kernel object code Using /proc/kallsyms for symbols As shown above, the -f option really works now. Signed-off-by: Yunlong Song <> Tested-by: Arnaldo Carvalho de Melo <> Cc: Paul Mackerras <> Cc: Peter Zijlstra <> Cc: Wang Nan <> Link: Signed-off-by: Arnaldo Carvalho de Melo <>
Diffstat (limited to 'tools/perf/builtin-inject.c')
1 files changed, 1 insertions, 0 deletions
diff --git a/tools/perf/builtin-inject.c b/tools/perf/builtin-inject.c
index ea46df25368c..40a33d7334cc 100644
--- a/tools/perf/builtin-inject.c
+++ b/tools/perf/builtin-inject.c
@@ -443,6 +443,7 @@ int cmd_inject(int argc, const char **argv, const char *prefix __maybe_unused)
"be more verbose (show build ids, etc)"),
OPT_STRING(0, "kallsyms", &symbol_conf.kallsyms_name, "file",
"kallsyms pathname"),
+ OPT_BOOLEAN('f', "force", &file.force, "don't complain, do it"),
const char * const inject_usage[] = {