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