Re: [PATCH v10 09/12] perf record: implement -z,--compression_level[=<n>] option

From: Alexey Budankov
Date: Wed May 15 2019 - 04:45:23 EST



On 15.05.2019 0:46, Arnaldo Carvalho de Melo wrote:
> Em Tue, May 14, 2019 at 05:20:41PM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Mon, Mar 18, 2019 at 08:44:42PM +0300, Alexey Budankov escreveu:
>>>
>>> Implemented -z,--compression_level[=<n>] option that enables compression
>>> of mmaped kernel data buffers content in runtime during perf record
>>> mode collection. Default option value is 1 (fastest compression).
>
> <SNIP>
>
>> [root@quaco ~]# perf record -z2
>> ^C[ perf record: Woken up 1 times to write data ]
>> 0x1746e0 [0x76]: failed to process type: 81 [Invalid argument]
>> [ perf record: Captured and wrote 1.568 MB perf.data, compressed (original 0.452 MB, ratio is 3.995) ]
>>
>> [root@quaco ~]#
>
> So, its the buildid processing at the end, so we can't do build-id
> processing when using PERF_RECORD_COMPRESSED, otherwise we'd have to
> uncompress at the end to find the PERF_RECORD_FORK/PERF_RECORD_MMAP,
> etc.
>
> [root@quaco ~]# perf record -z2 --no-buildid sleep 1
> [ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.020 MB perf.data, compressed (original 0.001 MB, ratio is 2.153) ]
> [root@quaco ~]# perf report -D | grep PERF_RECORD_COMP
> 0x4f40 [0x195]: failed to process type: 81 [Invalid argument]
> Error:
> failed to process sample
> 0 0x4f40 [0x195]: PERF_RECORD_COMPRESSED
> [root@quaco ~]#
>
> I'll play with it tomorrow.

Applied the whole patch set on top of the current perf/core
and the whole thing functions as expected.

~Alexey

>
> - Arnaldo
>
>> I've pushed what I have to the tmp.perf/core branch, please try to see
>> if I made any mistake in fixing up conflicts with BPF_PROG_INFO and
>> BPF_BTF header features. I'll continue tomorrow with 10-12/12.
>