|
@@ -258,16 +258,23 @@ static int process_events(struct perf_evlist *evlist,
|
|
|
unsigned pos, cnt = 0;
|
|
|
LIST_HEAD(events);
|
|
|
struct event_node *events_array, *node;
|
|
|
+ struct perf_mmap *md;
|
|
|
+ u64 end, start;
|
|
|
int i, ret;
|
|
|
|
|
|
for (i = 0; i < evlist->nr_mmaps; i++) {
|
|
|
- while ((event = perf_evlist__mmap_read(evlist, i)) != NULL) {
|
|
|
+ md = &evlist->mmap[i];
|
|
|
+ if (perf_mmap__read_init(md, false, &start, &end) < 0)
|
|
|
+ continue;
|
|
|
+
|
|
|
+ while ((event = perf_mmap__read_event(md, false, &start, end)) != NULL) {
|
|
|
cnt += 1;
|
|
|
ret = add_event(evlist, &events, event);
|
|
|
- perf_evlist__mmap_consume(evlist, i);
|
|
|
+ perf_mmap__consume(md, false);
|
|
|
if (ret < 0)
|
|
|
goto out_free_nodes;
|
|
|
}
|
|
|
+ perf_mmap__read_done(md);
|
|
|
}
|
|
|
|
|
|
events_array = calloc(cnt, sizeof(struct event_node));
|