.. | .. |
---|
5 | 5 | #include <stdlib.h> |
---|
6 | 6 | #include <signal.h> |
---|
7 | 7 | #include <sys/mman.h> |
---|
| 8 | +#include <linux/string.h> |
---|
8 | 9 | |
---|
9 | 10 | #include "tests.h" |
---|
| 11 | +#include "util/debug.h" |
---|
10 | 12 | #include "util/evsel.h" |
---|
11 | 13 | #include "util/evlist.h" |
---|
12 | 14 | #include "util/cpumap.h" |
---|
| 15 | +#include "util/mmap.h" |
---|
13 | 16 | #include "util/thread_map.h" |
---|
| 17 | +#include <perf/evlist.h> |
---|
| 18 | +#include <perf/mmap.h> |
---|
14 | 19 | |
---|
15 | 20 | #define NR_LOOPS 10000000 |
---|
16 | 21 | |
---|
.. | .. |
---|
27 | 32 | int nr_samples = 0; |
---|
28 | 33 | char sbuf[STRERR_BUFSIZE]; |
---|
29 | 34 | union perf_event *event; |
---|
30 | | - struct perf_evsel *evsel; |
---|
31 | | - struct perf_evlist *evlist; |
---|
| 35 | + struct evsel *evsel; |
---|
| 36 | + struct evlist *evlist; |
---|
32 | 37 | struct perf_event_attr attr = { |
---|
33 | 38 | .type = PERF_TYPE_SOFTWARE, |
---|
34 | 39 | .config = clock_id, |
---|
.. | .. |
---|
37 | 42 | .disabled = 1, |
---|
38 | 43 | .freq = 1, |
---|
39 | 44 | }; |
---|
40 | | - struct cpu_map *cpus; |
---|
41 | | - struct thread_map *threads; |
---|
42 | | - struct perf_mmap *md; |
---|
| 45 | + struct perf_cpu_map *cpus; |
---|
| 46 | + struct perf_thread_map *threads; |
---|
| 47 | + struct mmap *md; |
---|
43 | 48 | |
---|
44 | 49 | attr.sample_freq = 500; |
---|
45 | 50 | |
---|
46 | | - evlist = perf_evlist__new(); |
---|
| 51 | + evlist = evlist__new(); |
---|
47 | 52 | if (evlist == NULL) { |
---|
48 | | - pr_debug("perf_evlist__new\n"); |
---|
| 53 | + pr_debug("evlist__new\n"); |
---|
49 | 54 | return -1; |
---|
50 | 55 | } |
---|
51 | 56 | |
---|
52 | | - evsel = perf_evsel__new(&attr); |
---|
| 57 | + evsel = evsel__new(&attr); |
---|
53 | 58 | if (evsel == NULL) { |
---|
54 | | - pr_debug("perf_evsel__new\n"); |
---|
| 59 | + pr_debug("evsel__new\n"); |
---|
55 | 60 | goto out_delete_evlist; |
---|
56 | 61 | } |
---|
57 | | - perf_evlist__add(evlist, evsel); |
---|
| 62 | + evlist__add(evlist, evsel); |
---|
58 | 63 | |
---|
59 | | - cpus = cpu_map__dummy_new(); |
---|
| 64 | + cpus = perf_cpu_map__dummy_new(); |
---|
60 | 65 | threads = thread_map__new_by_tid(getpid()); |
---|
61 | 66 | if (!cpus || !threads) { |
---|
62 | 67 | err = -ENOMEM; |
---|
.. | .. |
---|
64 | 69 | goto out_free_maps; |
---|
65 | 70 | } |
---|
66 | 71 | |
---|
67 | | - perf_evlist__set_maps(evlist, cpus, threads); |
---|
| 72 | + perf_evlist__set_maps(&evlist->core, cpus, threads); |
---|
68 | 73 | |
---|
69 | 74 | cpus = NULL; |
---|
70 | 75 | threads = NULL; |
---|
71 | 76 | |
---|
72 | | - if (perf_evlist__open(evlist)) { |
---|
| 77 | + if (evlist__open(evlist)) { |
---|
73 | 78 | const char *knob = "/proc/sys/kernel/perf_event_max_sample_rate"; |
---|
74 | 79 | |
---|
75 | 80 | err = -errno; |
---|
.. | .. |
---|
79 | 84 | goto out_delete_evlist; |
---|
80 | 85 | } |
---|
81 | 86 | |
---|
82 | | - err = perf_evlist__mmap(evlist, 128); |
---|
| 87 | + err = evlist__mmap(evlist, 128); |
---|
83 | 88 | if (err < 0) { |
---|
84 | 89 | pr_debug("failed to mmap event: %d (%s)\n", errno, |
---|
85 | 90 | str_error_r(errno, sbuf, sizeof(sbuf))); |
---|
86 | 91 | goto out_delete_evlist; |
---|
87 | 92 | } |
---|
88 | 93 | |
---|
89 | | - perf_evlist__enable(evlist); |
---|
| 94 | + evlist__enable(evlist); |
---|
90 | 95 | |
---|
91 | 96 | /* collect samples */ |
---|
92 | 97 | for (i = 0; i < NR_LOOPS; i++) |
---|
93 | 98 | tmp++; |
---|
94 | 99 | |
---|
95 | | - perf_evlist__disable(evlist); |
---|
| 100 | + evlist__disable(evlist); |
---|
96 | 101 | |
---|
97 | 102 | md = &evlist->mmap[0]; |
---|
98 | | - if (perf_mmap__read_init(md) < 0) |
---|
| 103 | + if (perf_mmap__read_init(&md->core) < 0) |
---|
99 | 104 | goto out_init; |
---|
100 | 105 | |
---|
101 | | - while ((event = perf_mmap__read_event(md)) != NULL) { |
---|
| 106 | + while ((event = perf_mmap__read_event(&md->core)) != NULL) { |
---|
102 | 107 | struct perf_sample sample; |
---|
103 | 108 | |
---|
104 | 109 | if (event->header.type != PERF_RECORD_SAMPLE) |
---|
.. | .. |
---|
113 | 118 | total_periods += sample.period; |
---|
114 | 119 | nr_samples++; |
---|
115 | 120 | next_event: |
---|
116 | | - perf_mmap__consume(md); |
---|
| 121 | + perf_mmap__consume(&md->core); |
---|
117 | 122 | } |
---|
118 | | - perf_mmap__read_done(md); |
---|
| 123 | + perf_mmap__read_done(&md->core); |
---|
119 | 124 | |
---|
120 | 125 | out_init: |
---|
121 | 126 | if ((u64) nr_samples == total_periods) { |
---|
.. | .. |
---|
125 | 130 | } |
---|
126 | 131 | |
---|
127 | 132 | out_free_maps: |
---|
128 | | - cpu_map__put(cpus); |
---|
129 | | - thread_map__put(threads); |
---|
| 133 | + perf_cpu_map__put(cpus); |
---|
| 134 | + perf_thread_map__put(threads); |
---|
130 | 135 | out_delete_evlist: |
---|
131 | | - perf_evlist__delete(evlist); |
---|
| 136 | + evlist__delete(evlist); |
---|
132 | 137 | return err; |
---|
133 | 138 | } |
---|
134 | 139 | |
---|