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.budan...@linux.intel.com> > --- > 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