On Tue, Oct 09, 2018 at 11:59:31AM +0300, Alexey Budankov wrote: SNIP
> @@ -709,12 +729,13 @@ static int record__mmap_read_evlist(struct record *rec, > struct perf_evlist *evli > goto out; > } > } else { > + int idx; > /* > * Call record__aio_sync() to wait till > map->data buffer > * becomes available after previous aio write > request. > */ > - record__aio_sync(map); > - if (perf_mmap__aio_push(map, rec, > record__aio_pushfn, &off) != 0) { > + idx = record__aio_sync(map, false); looks like record__aio_sync can return -1, how is it not breaking the perf_mmap__aio_push call below? > + if (perf_mmap__aio_push(map, rec, idx, > record__aio_pushfn, &off) != 0) { > record__aio_set_pos(trace_fd, off); > rc = -1; > goto out; SNIP