Re: [PATCH v2 perf,bpf 08/11] perf, bpf: save btf information as headers to perf.data

From: Song Liu
Date: Fri Feb 15 2019 - 12:48:23 EST




> On Feb 15, 2019, at 9:40 AM, Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:
>
> Em Fri, Feb 15, 2019 at 05:25:01PM +0000, Song Liu escreveu:
>>> On Feb 15, 2019, at 6:26 AM, Arnaldo Carvalho de Melo <acme@xxxxxxxxxx> wrote:
>>> Em Thu, Feb 14, 2019 at 04:00:09PM -0800, Song Liu escreveu:
>>>> This patch enables perf-record to save btf information as headers to
>>>> perf.data A new header type HEADER_BTF is introduced for this data.
>
>>> Wouldn't it be better for this HEADER_BTF to be introduced
>>> already as an user space event, Song, see:
>
>>> tools/perf/util/event.h
>
>>> and:
>
>>> tools/perf/util/event.c
>
>>> perf_event__synthesize_cpu_map()
>
>> BTF would be short living for short living BPF programs. I guess
>> saving them as header is easier than merging them with samples.
>
>> What's the benefit of saving them as user space events?
>
> When we work with pipe mode, i.e.:
>
> perf record -o - | perf report -i -
>
> and other combinations (with 'perf script', 'perf inject', etc), we need
> a way to pass the headers to the other side, and the way was via user
> space events.
>
> This is something Stephane and Jiri have been discussing recently,
> probably they have more justifications, Stephane, Jiri?
>
> - Arnaldo

I see. In this case, we will need some synchronization between main
thread and the polling thread, as they are both writing to the same
pipe.

Thanks,
Song