Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf record: Add clang options for compiling BPF scripts

Although previous patch allows setting BPF compiler related options in
perfconfig, on some ad-hoc situation it still requires passing options
through cmdline. This patch introduces 2 options to 'perf record' for
this propose: --clang-path and --clang-opt.

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Cc: Brendan Gregg <brendan.d.gregg@gmail.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: David Ahern <dsahern@gmail.com>
Cc: He Kuang <hekuang@huawei.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kaixu Xia <xiakaixu@huawei.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1444826502-49291-9-git-send-email-wangnan0@huawei.com
[ Add the new options to the 'record' man page ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Wang Nan and committed by
Arnaldo Carvalho de Melo
71dc2326 1f45b1d4

+13
+6
tools/perf/Documentation/perf-record.txt
··· 314 314 Record context switch events i.e. events of type PERF_RECORD_SWITCH or 315 315 PERF_RECORD_SWITCH_CPU_WIDE. 316 316 317 + --clang-path:: 318 + Path to clang binary to use for compiling BPF scriptlets. 319 + 320 + --clang-opt:: 321 + Options passed to clang when compiling BPF scriptlets. 322 + 317 323 SEE ALSO 318 324 -------- 319 325 linkperf:perf-stat[1], linkperf:perf-list[1]
+7
tools/perf/builtin-record.c
··· 31 31 #include "util/auxtrace.h" 32 32 #include "util/parse-branch-options.h" 33 33 #include "util/parse-regs-options.h" 34 + #include "util/llvm-utils.h" 34 35 35 36 #include <unistd.h> 36 37 #include <sched.h> ··· 1113 1112 "per thread proc mmap processing timeout in ms"), 1114 1113 OPT_BOOLEAN(0, "switch-events", &record.opts.record_switch_events, 1115 1114 "Record context switch events"), 1115 + #ifdef HAVE_LIBBPF_SUPPORT 1116 + OPT_STRING(0, "clang-path", &llvm_param.clang_path, "clang path", 1117 + "clang binary to use for compiling BPF scriptlets"), 1118 + OPT_STRING(0, "clang-opt", &llvm_param.clang_opt, "clang options", 1119 + "options passed to clang when compiling BPF scriptlets"), 1120 + #endif 1116 1121 OPT_END() 1117 1122 }; 1118 1123