On Wed, Feb 20, 2019 at 05:53:17PM +0300, Alexey Budankov wrote:
> 
> On 12.02.2019 16:08, Jiri Olsa wrote:
> > 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..?
> 
> It bridges AIO without compression case.

so current state then.. why do we need new function for that?

jirka

> 
> Thanks,
> Alexey
> 
> > 
> > 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