On Mon, Feb 11, 2019 at 11:23:40PM +0300, Alexey Budankov wrote: SNIP
> diff --git a/tools/perf/util/mmap.c b/tools/perf/util/mmap.c > index 239e9a13c2b7..980784b77fe2 100644 > --- a/tools/perf/util/mmap.c > +++ b/tools/perf/util/mmap.c > @@ -156,6 +156,86 @@ void __weak auxtrace_mmap_params__set_idx(struct > auxtrace_mmap_params *mp __mayb > { > } > > +static ssize_t perf_mmap__capture(struct perf_mmap *md, int idx, > + perf_mmap__compress_fn_t compress, void *where) what's the point of casting perf_session* to void* ? all the way down to the compression, where you cast it back? SNIP > +int perf_session__zstd_fini(struct perf_session *session) > +{ > + if (session->zstd_cstream) { > + ZSTD_freeCStream(session->zstd_cstream); > + session->zstd_cstream = NULL; > + } > + > + return 0; > +} > + > +size_t perf_session__zstd_compress(void *to, void *dst, size_t dst_size, > + void *src, size_t src_size) > +{ > + struct perf_session *session = to; in here... it could be just struct perf_session* no? jirka