hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/tools/perf/builtin-mem.c
....@@ -11,9 +11,13 @@
1111 #include "util/tool.h"
1212 #include "util/session.h"
1313 #include "util/data.h"
14
+#include "util/map_symbol.h"
1415 #include "util/mem-events.h"
1516 #include "util/debug.h"
17
+#include "util/dso.h"
18
+#include "util/map.h"
1619 #include "util/symbol.h"
20
+#include <linux/err.h>
1721
1822 #define MEM_OPERATION_LOAD 0x1
1923 #define MEM_OPERATION_STORE 0x2
....@@ -34,26 +38,16 @@
3438 const char *str, int unset __maybe_unused)
3539 {
3640 struct perf_mem *mem = *(struct perf_mem **)opt->value;
37
- int j;
3841
39
- if (strcmp(str, "list")) {
40
- if (!perf_mem_events__parse(str)) {
41
- mem->operation = 0;
42
- return 0;
43
- }
42
+ if (!strcmp(str, "list")) {
43
+ perf_mem_events__list();
44
+ exit(0);
45
+ }
46
+ if (perf_mem_events__parse(str))
4447 exit(-1);
45
- }
4648
47
- for (j = 0; j < PERF_MEM_EVENTS__MAX; j++) {
48
- struct perf_mem_event *e = &perf_mem_events[j];
49
-
50
- fprintf(stderr, "%-13s%-*s%s\n",
51
- e->tag,
52
- verbose > 0 ? 25 : 0,
53
- verbose > 0 ? perf_mem_events__name(j) : "",
54
- e->supported ? ": available" : "");
55
- }
56
- exit(0);
49
+ mem->operation = 0;
50
+ return 0;
5751 }
5852
5953 static const char * const __usage[] = {
....@@ -119,7 +113,7 @@
119113
120114 rec_argv[i++] = "-e";
121115 rec_argv[i++] = perf_mem_events__name(j);
122
- };
116
+ }
123117
124118 if (all_user)
125119 rec_argv[i++] = "--all-user";
....@@ -229,7 +223,7 @@
229223 static int process_sample_event(struct perf_tool *tool,
230224 union perf_event *event,
231225 struct perf_sample *sample,
232
- struct perf_evsel *evsel __maybe_unused,
226
+ struct evsel *evsel __maybe_unused,
233227 struct machine *machine)
234228 {
235229 return dump_raw_samples(tool, event, sample, machine);
....@@ -238,18 +232,16 @@
238232 static int report_raw_events(struct perf_mem *mem)
239233 {
240234 struct perf_data data = {
241
- .file = {
242
- .path = input_name,
243
- },
244
- .mode = PERF_DATA_MODE_READ,
245
- .force = mem->force,
235
+ .path = input_name,
236
+ .mode = PERF_DATA_MODE_READ,
237
+ .force = mem->force,
246238 };
247239 int ret;
248240 struct perf_session *session = perf_session__new(&data, false,
249241 &mem->tool);
250242
251
- if (session == NULL)
252
- return -1;
243
+ if (IS_ERR(session))
244
+ return PTR_ERR(session);
253245
254246 if (mem->cpu_list) {
255247 ret = perf_session__cpu_bitmap(session, mem->cpu_list,