|
@@ -47,6 +47,8 @@ int test__task_exit(struct test *test __maybe_unused, int subtest __maybe_unused
|
|
|
char sbuf[STRERR_BUFSIZE];
|
|
|
struct cpu_map *cpus;
|
|
|
struct thread_map *threads;
|
|
|
+ struct perf_mmap *md;
|
|
|
+ u64 end, start;
|
|
|
|
|
|
signal(SIGCHLD, sig_handler);
|
|
|
|
|
@@ -110,13 +112,19 @@ int test__task_exit(struct test *test __maybe_unused, int subtest __maybe_unused
|
|
|
perf_evlist__start_workload(evlist);
|
|
|
|
|
|
retry:
|
|
|
- while ((event = perf_evlist__mmap_read(evlist, 0)) != NULL) {
|
|
|
+ md = &evlist->mmap[0];
|
|
|
+ if (perf_mmap__read_init(md, false, &start, &end) < 0)
|
|
|
+ goto out_init;
|
|
|
+
|
|
|
+ while ((event = perf_mmap__read_event(md, false, &start, end)) != NULL) {
|
|
|
if (event->header.type == PERF_RECORD_EXIT)
|
|
|
nr_exit++;
|
|
|
|
|
|
- perf_evlist__mmap_consume(evlist, 0);
|
|
|
+ perf_mmap__consume(md, false);
|
|
|
}
|
|
|
+ perf_mmap__read_done(md);
|
|
|
|
|
|
+out_init:
|
|
|
if (!exited || !nr_exit) {
|
|
|
perf_evlist__poll(evlist, -1);
|
|
|
goto retry;
|