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

From: Song Liu
Date: Wed Apr 03 2019 - 13:05:25 EST




> 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

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,