Re: [PATCH v7 08/12] perf record: implement compression for AIO trace streaming

From: Jiri Olsa
Date: Wed Mar 13 2019 - 10:37:19 EST


On Tue, Mar 12, 2019 at 08:30:13AM +0300, Alexey Budankov wrote:
>
> Compression is implemented using the functions from zstd.c. As the memory
> to operate on the compression uses mmap->aio.data[] buffers. If Zstd
> streaming compression API fails for some reason the data to be compressed
> are just copied into the memory buffers using plain memcpy().
>
> Compressed trace frame consists of an array of PERF_RECORD_COMPRESSED
> records. Each element of the array is not longer that PERF_SAMPLE_MAX_SIZE
> and consists of perf_event_header followed by the compressed chunk
> that is decompressed on the loading stage.
>
> perf_mmap__aio_push() is replaced by perf_mmap__push() which is now used
> in the both serial and AIO streaming cases. perf_mmap__push() is extended
> with positive return values to signify absence of data ready for processing.
>
> Signed-off-by: Alexey Budankov <alexey.budankov@xxxxxxxxxxxxxxx>
> ---
> tools/perf/builtin-record.c | 110 ++++++++++++++++++++++++++++--------
> tools/perf/util/mmap.c | 76 +------------------------
> tools/perf/util/mmap.h | 12 ----
> 3 files changed, 87 insertions(+), 111 deletions(-)

nice stats for adding new feature ;-)

jirka