Messages in this thread | | | Date | Wed, 13 Mar 2019 15:37:14 +0100 | From | Jiri Olsa <> | Subject | Re: [PATCH v7 08/12] perf record: implement compression for AIO trace streaming |
| |
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@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
| |