From: Kan Liang <kan.li...@intel.com>

no functional change

backward-ring-buffer is the test case for backward mode.

The rest of the test cases are forward mode.

Signed-off-by: Kan Liang <kan.li...@intel.com>
---
 tools/perf/arch/x86/tests/perf-time-to-tsc.c |  9 ++++++++-
 tools/perf/tests/backward-ring-buffer.c      | 10 ++++++++--
 tools/perf/tests/bpf.c                       | 10 +++++++++-
 tools/perf/tests/code-reading.c              |  8 +++++++-
 tools/perf/tests/keep-tracking.c             |  8 +++++++-
 tools/perf/tests/mmap-basic.c                |  9 ++++++++-
 tools/perf/tests/openat-syscall-tp-fields.c  |  9 ++++++++-
 tools/perf/tests/perf-record.c               |  9 ++++++++-
 tools/perf/tests/sw-clock.c                  |  8 +++++++-
 tools/perf/tests/switch-tracking.c           |  8 +++++++-
 tools/perf/tests/task-exit.c                 |  8 +++++++-
 11 files changed, 84 insertions(+), 12 deletions(-)

diff --git a/tools/perf/arch/x86/tests/perf-time-to-tsc.c 
b/tools/perf/arch/x86/tests/perf-time-to-tsc.c
index 5dd7efb..e1cdd23 100644
--- a/tools/perf/arch/x86/tests/perf-time-to-tsc.c
+++ b/tools/perf/arch/x86/tests/perf-time-to-tsc.c
@@ -57,6 +57,7 @@ int test__perf_time_to_tsc(struct test *test __maybe_unused, 
int subtest __maybe
        struct perf_tsc_conversion tc;
        struct perf_event_mmap_page *pc;
        union perf_event *event;
+       struct perf_mmap_read read;
        u64 test_tsc, comm1_tsc, comm2_tsc;
        u64 test_time, comm1_time = 0, comm2_time = 0;
 
@@ -108,7 +109,12 @@ int test__perf_time_to_tsc(struct test *test 
__maybe_unused, int subtest __maybe
        perf_evlist__disable(evlist);
 
        for (i = 0; i < evlist->nr_mmaps; i++) {
-               while ((event = perf_evlist__mmap_read(evlist, i)) != NULL) {
+               if (perf_evlist__mmap_read_init(evlist, i, &read, false)) {
+                       pr_err("Can't get mmap information\n");
+                       continue;
+               }
+
+               while ((event = perf_mmap__read_event(&read)) != NULL) {
                        struct perf_sample sample;
 
                        if (event->header.type != PERF_RECORD_COMM ||
@@ -129,6 +135,7 @@ int test__perf_time_to_tsc(struct test *test 
__maybe_unused, int subtest __maybe
 next_event:
                        perf_evlist__mmap_consume(evlist, i);
                }
+               perf_mmap__read_done(&read);
        }
 
        if (!comm1_time || !comm2_time)
diff --git a/tools/perf/tests/backward-ring-buffer.c 
b/tools/perf/tests/backward-ring-buffer.c
index d233ad3..4841b7e 100644
--- a/tools/perf/tests/backward-ring-buffer.c
+++ b/tools/perf/tests/backward-ring-buffer.c
@@ -31,9 +31,14 @@ static int count_samples(struct perf_evlist *evlist, int 
*sample_count,
 
        for (i = 0; i < evlist->nr_mmaps; i++) {
                union perf_event *event;
+               struct perf_mmap_read read;
 
-               perf_mmap__read_catchup(&evlist->backward_mmap[i]);
-               while ((event = 
perf_mmap__read_backward(&evlist->backward_mmap[i])) != NULL) {
+               if (perf_evlist__mmap_read_init(evlist, i, &read, true)) {
+                       pr_err("Can't get mmap information\n");
+                       continue;
+               }
+
+               while ((event = perf_mmap__read_event(&read)) != NULL) {
                        const u32 type = event->header.type;
 
                        switch (type) {
@@ -48,6 +53,7 @@ static int count_samples(struct perf_evlist *evlist, int 
*sample_count,
                                return TEST_FAIL;
                        }
                }
+               perf_mmap__read_done(&read);
        }
        return TEST_OK;
 }
diff --git a/tools/perf/tests/bpf.c b/tools/perf/tests/bpf.c
index 34c22cd..0ab7f8f 100644
--- a/tools/perf/tests/bpf.c
+++ b/tools/perf/tests/bpf.c
@@ -180,13 +180,21 @@ static int do_test(struct bpf_object *obj, int 
(*func)(void),
 
        for (i = 0; i < evlist->nr_mmaps; i++) {
                union perf_event *event;
+               struct perf_mmap_read read;
 
-               while ((event = perf_evlist__mmap_read(evlist, i)) != NULL) {
+               if (perf_evlist__mmap_read_init(evlist, i, &read, false)) {
+                       pr_err("Can't get mmap information\n");
+                       continue;
+               }
+
+               while ((event = perf_mmap__read_event(&read)) != NULL) {
                        const u32 type = event->header.type;
 
                        if (type == PERF_RECORD_SAMPLE)
                                count ++;
+                       perf_evlist__mmap_consume(evlist, i);
                }
+               perf_mmap__read_done(&read);
        }
 
        if (count != expect) {
diff --git a/tools/perf/tests/code-reading.c b/tools/perf/tests/code-reading.c
index 466a462..69cf7fc 100644
--- a/tools/perf/tests/code-reading.c
+++ b/tools/perf/tests/code-reading.c
@@ -408,15 +408,21 @@ static int process_events(struct machine *machine, struct 
perf_evlist *evlist,
                          struct state *state)
 {
        union perf_event *event;
+       struct perf_mmap_read read;
        int i, ret;
 
        for (i = 0; i < evlist->nr_mmaps; i++) {
-               while ((event = perf_evlist__mmap_read(evlist, i)) != NULL) {
+               if (perf_evlist__mmap_read_init(evlist, i, &read, false)) {
+                       pr_err("Can't get mmap information\n");
+                       continue;
+               }
+               while ((event = perf_mmap__read_event(&read)) != NULL) {
                        ret = process_event(machine, evlist, event, state);
                        perf_evlist__mmap_consume(evlist, i);
                        if (ret < 0)
                                return ret;
                }
+               perf_mmap__read_done(&read);
        }
        return 0;
 }
diff --git a/tools/perf/tests/keep-tracking.c b/tools/perf/tests/keep-tracking.c
index 7394286..b2beab0 100644
--- a/tools/perf/tests/keep-tracking.c
+++ b/tools/perf/tests/keep-tracking.c
@@ -26,11 +26,16 @@
 static int find_comm(struct perf_evlist *evlist, const char *comm)
 {
        union perf_event *event;
+       struct perf_mmap_read read;
        int i, found;
 
        found = 0;
        for (i = 0; i < evlist->nr_mmaps; i++) {
-               while ((event = perf_evlist__mmap_read(evlist, i)) != NULL) {
+               if (perf_evlist__mmap_read_init(evlist, i, &read, false)) {
+                       pr_err("Can't get mmap information\n");
+                       continue;
+               }
+               while ((event = perf_mmap__read_event(&read)) != NULL) {
                        if (event->header.type == PERF_RECORD_COMM &&
                            (pid_t)event->comm.pid == getpid() &&
                            (pid_t)event->comm.tid == getpid() &&
@@ -38,6 +43,7 @@ static int find_comm(struct perf_evlist *evlist, const char 
*comm)
                                found += 1;
                        perf_evlist__mmap_consume(evlist, i);
                }
+               perf_mmap__read_done(&read);
        }
        return found;
 }
diff --git a/tools/perf/tests/mmap-basic.c b/tools/perf/tests/mmap-basic.c
index bc8a70e..529c0c7 100644
--- a/tools/perf/tests/mmap-basic.c
+++ b/tools/perf/tests/mmap-basic.c
@@ -37,6 +37,7 @@ int test__basic_mmap(struct test *test __maybe_unused, int 
subtest __maybe_unuse
                     expected_nr_events[nsyscalls], i, j;
        struct perf_evsel *evsels[nsyscalls], *evsel;
        char sbuf[STRERR_BUFSIZE];
+       struct perf_mmap_read read;
 
        threads = thread_map__new(-1, getpid(), UINT_MAX);
        if (threads == NULL) {
@@ -105,7 +106,12 @@ int test__basic_mmap(struct test *test __maybe_unused, int 
subtest __maybe_unuse
                        ++foo;
                }
 
-       while ((event = perf_evlist__mmap_read(evlist, 0)) != NULL) {
+       if (perf_evlist__mmap_read_init(evlist, 0, &read, false)) {
+               pr_err("Can't get mmap information\n");
+               goto out_delete_evlist;
+       }
+
+       while ((event = perf_mmap__read_event(&read)) != NULL) {
                struct perf_sample sample;
 
                if (event->header.type != PERF_RECORD_SAMPLE) {
@@ -130,6 +136,7 @@ int test__basic_mmap(struct test *test __maybe_unused, int 
subtest __maybe_unuse
                nr_events[evsel->idx]++;
                perf_evlist__mmap_consume(evlist, 0);
        }
+       perf_mmap__read_done(&read);
 
        err = 0;
        evlist__for_each_entry(evlist, evsel) {
diff --git a/tools/perf/tests/openat-syscall-tp-fields.c 
b/tools/perf/tests/openat-syscall-tp-fields.c
index b6ee1c4..8431561 100644
--- a/tools/perf/tests/openat-syscall-tp-fields.c
+++ b/tools/perf/tests/openat-syscall-tp-fields.c
@@ -82,8 +82,14 @@ int test__syscall_openat_tp_fields(struct test *test 
__maybe_unused, int subtest
 
                for (i = 0; i < evlist->nr_mmaps; i++) {
                        union perf_event *event;
+                       struct perf_mmap_read read;
 
-                       while ((event = perf_evlist__mmap_read(evlist, i)) != 
NULL) {
+                       if (perf_evlist__mmap_read_init(evlist, i, &read, 
false)) {
+                               pr_err("Can't get mmap information\n");
+                               continue;
+                       }
+
+                       while ((event = perf_mmap__read_event(&read)) != NULL) {
                                const u32 type = event->header.type;
                                int tp_flags;
                                struct perf_sample sample;
@@ -111,6 +117,7 @@ int test__syscall_openat_tp_fields(struct test *test 
__maybe_unused, int subtest
 
                                goto out_ok;
                        }
+                       perf_mmap__read_done(&read);
                }
 
                if (nr_events == before)
diff --git a/tools/perf/tests/perf-record.c b/tools/perf/tests/perf-record.c
index 19b6500..c5e1f08 100644
--- a/tools/perf/tests/perf-record.c
+++ b/tools/perf/tests/perf-record.c
@@ -163,8 +163,14 @@ int test__PERF_RECORD(struct test *test __maybe_unused, 
int subtest __maybe_unus
 
                for (i = 0; i < evlist->nr_mmaps; i++) {
                        union perf_event *event;
+                       struct perf_mmap_read read;
 
-                       while ((event = perf_evlist__mmap_read(evlist, i)) != 
NULL) {
+                       if (perf_evlist__mmap_read_init(evlist, i, &read, 
false)) {
+                               pr_err("Can't get mmap information\n");
+                               continue;
+                       }
+
+                       while ((event = perf_mmap__read_event(&read)) != NULL) {
                                const u32 type = event->header.type;
                                const char *name = perf_event__name(type);
 
@@ -267,6 +273,7 @@ int test__PERF_RECORD(struct test *test __maybe_unused, int 
subtest __maybe_unus
 
                                perf_evlist__mmap_consume(evlist, i);
                        }
+                       perf_mmap__read_done(&read);
                }
 
                /*
diff --git a/tools/perf/tests/sw-clock.c b/tools/perf/tests/sw-clock.c
index d88511f..a5dd3e8 100644
--- a/tools/perf/tests/sw-clock.c
+++ b/tools/perf/tests/sw-clock.c
@@ -38,6 +38,7 @@ static int __test__sw_clock_freq(enum perf_sw_ids clock_id)
        };
        struct cpu_map *cpus;
        struct thread_map *threads;
+       struct perf_mmap_read read;
 
        attr.sample_freq = 500;
 
@@ -92,7 +93,11 @@ static int __test__sw_clock_freq(enum perf_sw_ids clock_id)
 
        perf_evlist__disable(evlist);
 
-       while ((event = perf_evlist__mmap_read(evlist, 0)) != NULL) {
+       if (perf_evlist__mmap_read_init(evlist, 0, &read, false)) {
+               pr_err("Can't get mmap information\n");
+               goto out_delete_evlist;
+       }
+       while ((event = perf_mmap__read_event(&read)) != NULL) {
                struct perf_sample sample;
 
                if (event->header.type != PERF_RECORD_SAMPLE)
@@ -109,6 +114,7 @@ static int __test__sw_clock_freq(enum perf_sw_ids clock_id)
 next_event:
                perf_evlist__mmap_consume(evlist, 0);
        }
+       perf_mmap__read_done(&read);
 
        if ((u64) nr_samples == total_periods) {
                pr_debug("All (%d) samples have period value of 1!\n",
diff --git a/tools/perf/tests/switch-tracking.c 
b/tools/perf/tests/switch-tracking.c
index 2acd785..3b4f2f6 100644
--- a/tools/perf/tests/switch-tracking.c
+++ b/tools/perf/tests/switch-tracking.c
@@ -257,16 +257,22 @@ static int process_events(struct perf_evlist *evlist,
        unsigned pos, cnt = 0;
        LIST_HEAD(events);
        struct event_node *events_array, *node;
+       struct perf_mmap_read read;
        int i, ret;
 
        for (i = 0; i < evlist->nr_mmaps; i++) {
-               while ((event = perf_evlist__mmap_read(evlist, i)) != NULL) {
+               if (perf_evlist__mmap_read_init(evlist, i, &read, false)) {
+                       pr_err("Can't get mmap information\n");
+                       continue;
+               }
+               while ((event = perf_mmap__read_event(&read)) != NULL) {
                        cnt += 1;
                        ret = add_event(evlist, &events, event);
                        perf_evlist__mmap_consume(evlist, i);
                        if (ret < 0)
                                goto out_free_nodes;
                }
+               perf_mmap__read_done(&read);
        }
 
        events_array = calloc(cnt, sizeof(struct event_node));
diff --git a/tools/perf/tests/task-exit.c b/tools/perf/tests/task-exit.c
index f0881d0..2529fba 100644
--- a/tools/perf/tests/task-exit.c
+++ b/tools/perf/tests/task-exit.c
@@ -46,6 +46,7 @@ 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_read read;
 
        signal(SIGCHLD, sig_handler);
 
@@ -105,12 +106,17 @@ 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) {
+       if (perf_evlist__mmap_read_init(evlist, 0, &read, false)) {
+               pr_err("Can't get mmap information\n");
+               goto out_delete_evlist;
+       }
+       while ((event = perf_mmap__read_event(&read)) != NULL) {
                if (event->header.type == PERF_RECORD_EXIT)
                        nr_exit++;
 
                perf_evlist__mmap_consume(evlist, 0);
        }
+       perf_mmap__read_done(&read);
 
        if (!exited || !nr_exit) {
                perf_evlist__poll(evlist, -1);
-- 
2.5.5

Reply via email to