On 11.10.2018 16:46, Jiri Olsa wrote: > 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?
Currently -1 may be returned only when calling with sync_all==true i.e. record__aio_sync(, true). Thanks, Alexey > >> + 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 >