hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/tools/perf/tests/event-times.c
....@@ -1,20 +1,22 @@
11 // SPDX-License-Identifier: GPL-2.0
22 #include <linux/compiler.h>
3
+#include <linux/string.h>
34 #include <errno.h>
45 #include <inttypes.h>
56 #include <string.h>
67 #include <sys/wait.h>
8
+#include <perf/cpumap.h>
79 #include "tests.h"
810 #include "evlist.h"
911 #include "evsel.h"
10
-#include "util.h"
1112 #include "debug.h"
13
+#include "parse-events.h"
1214 #include "thread_map.h"
1315 #include "target.h"
1416
15
-static int attach__enable_on_exec(struct perf_evlist *evlist)
17
+static int attach__enable_on_exec(struct evlist *evlist)
1618 {
17
- struct perf_evsel *evsel = perf_evlist__last(evlist);
19
+ struct evsel *evsel = evlist__last(evlist);
1820 struct target target = {
1921 .uid = UINT_MAX,
2022 };
....@@ -36,9 +38,9 @@
3638 return err;
3739 }
3840
39
- evsel->attr.enable_on_exec = 1;
41
+ evsel->core.attr.enable_on_exec = 1;
4042
41
- err = perf_evlist__open(evlist);
43
+ err = evlist__open(evlist);
4244 if (err < 0) {
4345 pr_debug("perf_evlist__open: %s\n",
4446 str_error_r(errno, sbuf, sizeof(sbuf)));
....@@ -48,16 +50,16 @@
4850 return perf_evlist__start_workload(evlist) == 1 ? TEST_OK : TEST_FAIL;
4951 }
5052
51
-static int detach__enable_on_exec(struct perf_evlist *evlist)
53
+static int detach__enable_on_exec(struct evlist *evlist)
5254 {
5355 waitpid(evlist->workload.pid, NULL, 0);
5456 return 0;
5557 }
5658
57
-static int attach__current_disabled(struct perf_evlist *evlist)
59
+static int attach__current_disabled(struct evlist *evlist)
5860 {
59
- struct perf_evsel *evsel = perf_evlist__last(evlist);
60
- struct thread_map *threads;
61
+ struct evsel *evsel = evlist__last(evlist);
62
+ struct perf_thread_map *threads;
6163 int err;
6264
6365 pr_debug("attaching to current thread as disabled\n");
....@@ -68,22 +70,22 @@
6870 return -1;
6971 }
7072
71
- evsel->attr.disabled = 1;
73
+ evsel->core.attr.disabled = 1;
7274
73
- err = perf_evsel__open_per_thread(evsel, threads);
75
+ err = evsel__open_per_thread(evsel, threads);
7476 if (err) {
7577 pr_debug("Failed to open event cpu-clock:u\n");
7678 return err;
7779 }
7880
79
- thread_map__put(threads);
80
- return perf_evsel__enable(evsel) == 0 ? TEST_OK : TEST_FAIL;
81
+ perf_thread_map__put(threads);
82
+ return evsel__enable(evsel) == 0 ? TEST_OK : TEST_FAIL;
8183 }
8284
83
-static int attach__current_enabled(struct perf_evlist *evlist)
85
+static int attach__current_enabled(struct evlist *evlist)
8486 {
85
- struct perf_evsel *evsel = perf_evlist__last(evlist);
86
- struct thread_map *threads;
87
+ struct evsel *evsel = evlist__last(evlist);
88
+ struct perf_thread_map *threads;
8789 int err;
8890
8991 pr_debug("attaching to current thread as enabled\n");
....@@ -94,36 +96,36 @@
9496 return -1;
9597 }
9698
97
- err = perf_evsel__open_per_thread(evsel, threads);
99
+ err = evsel__open_per_thread(evsel, threads);
98100
99
- thread_map__put(threads);
101
+ perf_thread_map__put(threads);
100102 return err == 0 ? TEST_OK : TEST_FAIL;
101103 }
102104
103
-static int detach__disable(struct perf_evlist *evlist)
105
+static int detach__disable(struct evlist *evlist)
104106 {
105
- struct perf_evsel *evsel = perf_evlist__last(evlist);
107
+ struct evsel *evsel = evlist__last(evlist);
106108
107
- return perf_evsel__enable(evsel);
109
+ return evsel__enable(evsel);
108110 }
109111
110
-static int attach__cpu_disabled(struct perf_evlist *evlist)
112
+static int attach__cpu_disabled(struct evlist *evlist)
111113 {
112
- struct perf_evsel *evsel = perf_evlist__last(evlist);
113
- struct cpu_map *cpus;
114
+ struct evsel *evsel = evlist__last(evlist);
115
+ struct perf_cpu_map *cpus;
114116 int err;
115117
116118 pr_debug("attaching to CPU 0 as enabled\n");
117119
118
- cpus = cpu_map__new("0");
120
+ cpus = perf_cpu_map__new("0");
119121 if (cpus == NULL) {
120
- pr_debug("failed to call cpu_map__new\n");
122
+ pr_debug("failed to call perf_cpu_map__new\n");
121123 return -1;
122124 }
123125
124
- evsel->attr.disabled = 1;
126
+ evsel->core.attr.disabled = 1;
125127
126
- err = perf_evsel__open_per_cpu(evsel, cpus);
128
+ err = evsel__open_per_cpu(evsel, cpus, -1);
127129 if (err) {
128130 if (err == -EACCES)
129131 return TEST_SKIP;
....@@ -132,41 +134,41 @@
132134 return err;
133135 }
134136
135
- cpu_map__put(cpus);
136
- return perf_evsel__enable(evsel);
137
+ perf_cpu_map__put(cpus);
138
+ return evsel__enable(evsel);
137139 }
138140
139
-static int attach__cpu_enabled(struct perf_evlist *evlist)
141
+static int attach__cpu_enabled(struct evlist *evlist)
140142 {
141
- struct perf_evsel *evsel = perf_evlist__last(evlist);
142
- struct cpu_map *cpus;
143
+ struct evsel *evsel = evlist__last(evlist);
144
+ struct perf_cpu_map *cpus;
143145 int err;
144146
145147 pr_debug("attaching to CPU 0 as enabled\n");
146148
147
- cpus = cpu_map__new("0");
149
+ cpus = perf_cpu_map__new("0");
148150 if (cpus == NULL) {
149
- pr_debug("failed to call cpu_map__new\n");
151
+ pr_debug("failed to call perf_cpu_map__new\n");
150152 return -1;
151153 }
152154
153
- err = perf_evsel__open_per_cpu(evsel, cpus);
155
+ err = evsel__open_per_cpu(evsel, cpus, -1);
154156 if (err == -EACCES)
155157 return TEST_SKIP;
156158
157
- cpu_map__put(cpus);
159
+ perf_cpu_map__put(cpus);
158160 return err ? TEST_FAIL : TEST_OK;
159161 }
160162
161
-static int test_times(int (attach)(struct perf_evlist *),
162
- int (detach)(struct perf_evlist *))
163
+static int test_times(int (attach)(struct evlist *),
164
+ int (detach)(struct evlist *))
163165 {
164166 struct perf_counts_values count;
165
- struct perf_evlist *evlist = NULL;
166
- struct perf_evsel *evsel;
167
+ struct evlist *evlist = NULL;
168
+ struct evsel *evsel;
167169 int err = -1, i;
168170
169
- evlist = perf_evlist__new();
171
+ evlist = evlist__new();
170172 if (!evlist) {
171173 pr_debug("failed to create event list\n");
172174 goto out_err;
....@@ -178,8 +180,8 @@
178180 goto out_err;
179181 }
180182
181
- evsel = perf_evlist__last(evlist);
182
- evsel->attr.read_format |=
183
+ evsel = evlist__last(evlist);
184
+ evsel->core.attr.read_format |=
183185 PERF_FORMAT_TOTAL_TIME_ENABLED |
184186 PERF_FORMAT_TOTAL_TIME_RUNNING;
185187
....@@ -195,7 +197,7 @@
195197
196198 TEST_ASSERT_VAL("failed to detach", !detach(evlist));
197199
198
- perf_evsel__read(evsel, 0, 0, &count);
200
+ perf_evsel__read(&evsel->core, 0, 0, &count);
199201
200202 err = !(count.ena == count.run);
201203
....@@ -204,7 +206,7 @@
204206 count.ena, count.run);
205207
206208 out_err:
207
- perf_evlist__delete(evlist);
209
+ evlist__delete(evlist);
208210 return !err ? TEST_OK : TEST_FAIL;
209211 }
210212