|
@@ -409,15 +409,22 @@ static int process_events(struct machine *machine, struct perf_evlist *evlist,
|
|
struct state *state)
|
|
struct state *state)
|
|
{
|
|
{
|
|
union perf_event *event;
|
|
union perf_event *event;
|
|
|
|
+ struct perf_mmap *md;
|
|
|
|
+ u64 end, start;
|
|
int i, ret;
|
|
int i, ret;
|
|
|
|
|
|
for (i = 0; i < evlist->nr_mmaps; i++) {
|
|
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) {
|
|
ret = process_event(machine, evlist, event, state);
|
|
ret = process_event(machine, evlist, event, state);
|
|
- perf_evlist__mmap_consume(evlist, i);
|
|
|
|
|
|
+ perf_mmap__consume(md, false);
|
|
if (ret < 0)
|
|
if (ret < 0)
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
+ perf_mmap__read_done(md);
|
|
}
|
|
}
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|