Re: [BUG] perf: intel_pt won't display kernel function

From: Jiri Olsa
Date: Wed Apr 03 2019 - 14:10:54 EST


On Wed, Apr 03, 2019 at 05:05:02PM +0000, Song Liu wrote:
>
>
> > On Apr 3, 2019, at 7:37 AM, Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
> >
> > hi,
> > perf script --call-trace stop working for me recently,
> > and displays only user space functions
> >
> > I bisected that to:
> > 7b612e291a5a perf tools: Synthesize PERF_RECORD_* for loaded BPF programs
> >
> > data from following comands will display user space functions only:
> > # perf-with-kcore record pt -e intel_pt// -- ls
> > # perf-with-kcore script pt --call-trace
>
> Seems the following are ok (upstream as-is)?
>
> ./perf record -e intel_pt// -- ls
> ./perf script --call-trace

yes, I think it's the --kallsyms otion which is added by
perf-with-kcore that's broken

jirka

>
> Jiri, could you please verify this? (Sorry I am new to perf-with-kcore).
>
> Thanks,
> Song
>
> >
> > when I disable the bpf synthesizing (patch below), kernel functions are back
> >
> > I guess the new events mess up with intel_pt decoder somehow
> >
> >
> > thanks,
> > jirka
> >
> >
> > ---
> > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> > index 4e2d953d4bc5..3daa78bc6549 100644
> > --- a/tools/perf/builtin-record.c
> > +++ b/tools/perf/builtin-record.c
> > @@ -1114,10 +1114,12 @@ static int record__synthesize(struct record *rec, bool tail)
> > return err;
> > }
> >
> > +#if 0
> > err = perf_event__synthesize_bpf_events(session, process_synthesized_event,
> > machine, opts);
> > if (err < 0)
> > pr_warning("Couldn't synthesize bpf events.\n");
> > +#endif
> >
> > err = __machine__synthesize_threads(machine, tool, &opts->target, rec->evlist->threads,
> > process_synthesized_event, opts->sample_address,
>