Messages in this thread | | | Subject | Re: [PATCH 27/31] perf record: Support custom vmlinux path | From | pi3orama <> | Date | Wed, 2 Sep 2015 05:00:39 +0800 |
| |
发自我的 iPhone
> 在 2015年9月2日,上午4:21,Arnaldo Carvalho de Melo <acme@redhat.com> 写道: > > Em Tue, Sep 01, 2015 at 05:19:17PM -0300, Arnaldo Carvalho de Melo escreveu: >> Em Sat, Aug 29, 2015 at 04:22:01AM +0000, Wang Nan escreveu: >>> From: He Kuang <hekuang@huawei.com> >>> >>> Make perf-record command support --vmlinux option if BPF_PROLOGUE is on. >> >> Ok, this should be supported, i.e. letting the user specify a vmlinux >> path to use. >> >> But it shouldn't be _required_, i.e. we have things like vmlinux_path to >> try to find it in well known places. >> >> Right now it will search for it in the process of trying to load its >> symtab, but I think we should have a function that tries to find a >> vmlinux that matches the build-id of the running kernel, for things that >> want to have access directly to the ELF file with debuginfo without >> having to load the symtab in a struct dso, etc. >> >> I'll look at the next patches to check how you make use of this info... > > So, the do it all from 'perf record' is in not yet in this patchkit, > right? At least not in [ N/31 ] with N > 27, can you point me to it? >
It is for patch 8/31, which create kprobe points using add_perf_probe_events().
Before this patch it won't search debug info, prevent us use argument like this:
SEC("lock_page=lock_page page->flags")
or probe at line number, expect it finds a valid vmlinux from the default path.
Thank you.
> - Arnaldo > >> - Arnaldo >> >>> 'perf record' needs vmlinux as the source of DWARF info to generate >>> prologue for BPF programs, so path of vmlinux should be specified. >>> >>> Short name 'k' has been taken by 'clockid'. This patch skips the short >>> option name and use '--vmlinux' for vmlinux path. >>> >>> Signed-off-by: He Kuang <hekuang@huawei.com> >>> 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 >>> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> >>> Link: http://lkml.kernel.org/n/1436445342-1402-38-git-send-email-wangnan0@huawei.com >>> --- >>> tools/perf/builtin-record.c | 4 ++++ >>> 1 file changed, 4 insertions(+) >>> >>> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c >>> index 212718c..8eb39d5 100644 >>> --- a/tools/perf/builtin-record.c >>> +++ b/tools/perf/builtin-record.c >>> @@ -1100,6 +1100,10 @@ struct option __record_options[] = { >>> "clang binary to use for compiling BPF scriptlets"), >>> OPT_STRING(0, "clang-opt", &llvm_param.clang_opt, "clang options", >>> "options passed to clang when compiling BPF scriptlets"), >>> +#ifdef HAVE_BPF_PROLOGUE >>> + OPT_STRING(0, "vmlinux", &symbol_conf.vmlinux_name, >>> + "file", "vmlinux pathname"), >>> +#endif >>> #endif >>> OPT_END() >>> }; >>> -- >>> 2.1.0
| |