Re: [PATCH 27/31] perf record: Support custom vmlinux path

From: Arnaldo Carvalho de Melo
Date: Tue Sep 01 2015 - 17:33:41 EST


Em Wed, Sep 02, 2015 at 05:00:39AM +0800, pi3orama escreveu:
> åèæç iPhone
> > å 2015å9æ2æïäå4:21ïArnaldo Carvalho de Melo <acme@xxxxxxxxxx> åéï
> > 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@xxxxxxxxxx>

> >>> 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.

Argh, that is because init_symbol_maps() uses symbol__init() that is
also being used in 'perf record' by now... I.e. it was designed to be
called just once, at tool start :-\

Will have to get my head around how this is being used to try to
untangle this mess...

- Arnaldo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/