Skip to content

Commit e568573

Browse files
committed
perf record: Use ring buffer consume method to look like other tools
All builtins that consume events from perf's ring buffer now end up calling perf_evlist__mmap_consume(), which will allow unmapping the ring buffer when all the fds gets closed and all events in the buffer consumed. This is in preparation for the patchkit that will notice POLLHUP on perf events file descriptors. Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: David Ahern <dsahern@gmail.com> Cc: Don Zickus <dzickus@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-8vhaeeoq11ppz0713el4xcps@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 664fee3 commit e568573

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

tools/perf/builtin-record.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,9 @@ static int process_synthesized_event(struct perf_tool *tool,
6565
return record__write(rec, event, event->header.size);
6666
}
6767

68-
static int record__mmap_read(struct record *rec, struct perf_mmap *md)
68+
static int record__mmap_read(struct record *rec, int idx)
6969
{
70+
struct perf_mmap *md = &rec->evlist->mmap[idx];
7071
unsigned int head = perf_mmap__read_head(md);
7172
unsigned int old = md->prev;
7273
unsigned char *data = md->base + page_size;
@@ -102,8 +103,7 @@ static int record__mmap_read(struct record *rec, struct perf_mmap *md)
102103
}
103104

104105
md->prev = old;
105-
perf_mmap__write_tail(md, old);
106-
106+
perf_evlist__mmap_consume(rec->evlist, idx);
107107
out:
108108
return rc;
109109
}
@@ -245,7 +245,7 @@ static int record__mmap_read_all(struct record *rec)
245245

246246
for (i = 0; i < rec->evlist->nr_mmaps; i++) {
247247
if (rec->evlist->mmap[i].base) {
248-
if (record__mmap_read(rec, &rec->evlist->mmap[i]) != 0) {
248+
if (record__mmap_read(rec, i) != 0) {
249249
rc = -1;
250250
goto out;
251251
}

0 commit comments

Comments
 (0)