On Mon, Feb 11, 2019 at 11:23:40PM +0300, Alexey Budankov wrote:

SNIP

> @@ -774,6 +775,8 @@ static int record__mmap_read_evlist(struct record *rec, 
> struct perf_evlist *evli
>       struct perf_mmap *maps;
>       int trace_fd = rec->data.file.fd;
>       off_t off;
> +     struct perf_session *session = rec->session;
> +     perf_mmap__compress_fn_t compress_fn;
>  
>       if (!evlist)
>               return 0;
> @@ -785,6 +788,9 @@ static int record__mmap_read_evlist(struct record *rec, 
> struct perf_evlist *evli
>       if (overwrite && evlist->bkw_mmap_state != BKW_MMAP_DATA_PENDING)
>               return 0;
>  
> +     compress_fn = (record__comp_enabled(rec) ?
> +             perf_session__zstd_compress : perf_session__zstd_copy);
> +

I don't follow what's the perf_session__zstd_copy function for..?

for !record__comp_enabled case we seem not to use it
and calling the current perf_mmap__push interface

however I dont see point to have this function at all

jirka


>       if (record__aio_enabled(rec))
>               off = record__aio_get_pos(trace_fd);
>  
> @@ -799,11 +805,21 @@ static int record__mmap_read_evlist(struct record *rec, 
> struct perf_evlist *evli
>                               map->flush = MMAP_FLUSH_DEFAULT;
>                       }
>                       if (!record__aio_enabled(rec)) {
> -                             if (perf_mmap__push(map, rec, record__pushfn) 
> != 0) {
> -                                     if (sync)
> -                                             map->flush = flush;
> -                                     rc = -1;
> -                                     goto out;
> +                             if (!record__comp_enabled(rec)) {
> +                                     if (perf_mmap__push(map, rec, 
> record__pushfn) != 0) {
> +                                             if (sync)
> +                                                     map->flush = flush;
> +                                             rc = -1;
> +                                             goto out;
> +                                     }
> +                             } else {
> +                                     if (perf_mmap__pack(map, rec, 
> record__pushfn,
> +                                                     compress_fn, session) 
> != 0) {
> +                                             if (sync)
> +                                                     map->flush = flush;
> +                                             rc = -1;
> +                                             goto out;
> +                                     }

SNIP

Reply via email to