lkml.org 
[lkml]   [2015]   [Sep]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 27/31] perf record: Support custom vmlinux path
    From
    Date


    发自我的 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



    \
     
     \ /
      Last update: 2015-09-01 23:21    [W:2.173 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site