Re: [PATCH v2 3/4] perf record: enable runtime trace compression

From: Alexey Budankov
Date: Wed Feb 20 2019 - 10:06:14 EST



On 12.02.2019 16:09, Jiri Olsa wrote:
> On Mon, Feb 11, 2019 at 11:23:40PM +0300, Alexey Budankov wrote:
>>
>> Compression is implemented using simple Zstd API and employs AIO data
>> buffer as the memory to operate on. If the API call fails for some
>> reason compression falls back to memcpy().
>>
>> Data chunks are split and packed into PERF_RECORD_COMPRESSED records
>> by 64KB at max. mmap-flush option value can be used to avoid compression
>> of every single byte of data and increase compression ratio.
>>
>> Signed-off-by: Alexey Budankov <alexey.budankov@xxxxxxxxxxxxxxx>
>> ---
>> Changes in v2:
>> - enabled trace compression for serial trace streaming
>> - moved compression/decompression code to session layer
>>
>> ---
>> tools/perf/builtin-record.c | 67 +++++++++-----
>> tools/perf/util/mmap.c | 173 +++++++++++++++++++++---------------
>> tools/perf/util/mmap.h | 24 +++--
>> tools/perf/util/session.c | 106 ++++++++++++++++++++++
>> tools/perf/util/session.h | 13 +++
>> 5 files changed, 280 insertions(+), 103 deletions(-)
>>
>> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
>> index 227dbbd47d3f..435ff88dfc5e 100644
>> --- a/tools/perf/builtin-record.c
>> +++ b/tools/perf/builtin-record.c
>> @@ -112,8 +112,7 @@ static bool switch_output_time(struct record *rec)
>> trigger_is_ready(&switch_output_trigger);
>> }
>>
>> -static int record__write(struct record *rec, struct perf_mmap *map __maybe_unused,
>> - void *bf, size_t size)
>> +static int record__write(struct record *rec, void *bf, size_t size)
>
> please keep the 'struct perf_mmap *map' in, I'm using it in
> the multiple file storage, where each map holds pointer to
> its data file

Yes, it will be reverted.

Thanks,
Alexey

>
> thanks,
> jirka
>