On 12.02.2019 16:09, Jiri Olsa wrote:
> On Mon, Feb 11, 2019 at 11:23:40PM +0300, Alexey Budankov wrote:
> 
> SNIP
> 
>> +    compress_fn = (record__comp_enabled(rec) ?
>> +            perf_session__zstd_compress : perf_session__zstd_copy);
>> +
>>      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;
>> +                                    }
> 
> I really dont like this.. the non-compression flow needs to stay untouched
> 
> why don't you overload the record__pushfn function for compression
> processing and stash the data in there?

Yes, this becomes complicated and overloading could be an option to simplify it.

Thanks,
Alexey

> 
> thanks,
> jirka
> 

Reply via email to