diff options
Diffstat (limited to 'tools/perf/util/bpf-event.c')
-rw-r--r-- | tools/perf/util/bpf-event.c | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/tools/perf/util/bpf-event.c b/tools/perf/util/bpf-event.c index 5a5dcc6d8f85..2d6d500c9af7 100644 --- a/tools/perf/util/bpf-event.c +++ b/tools/perf/util/bpf-event.c | |||
@@ -14,6 +14,7 @@ | |||
14 | #include "session.h" | 14 | #include "session.h" |
15 | #include "map.h" | 15 | #include "map.h" |
16 | #include "evlist.h" | 16 | #include "evlist.h" |
17 | #include "record.h" | ||
17 | 18 | ||
18 | #define ptr_to_u64(ptr) ((__u64)(unsigned long)(ptr)) | 19 | #define ptr_to_u64(ptr) ((__u64)(unsigned long)(ptr)) |
19 | 20 | ||
@@ -34,7 +35,7 @@ static int machine__process_bpf_event_load(struct machine *machine, | |||
34 | struct bpf_prog_info_linear *info_linear; | 35 | struct bpf_prog_info_linear *info_linear; |
35 | struct bpf_prog_info_node *info_node; | 36 | struct bpf_prog_info_node *info_node; |
36 | struct perf_env *env = machine->env; | 37 | struct perf_env *env = machine->env; |
37 | int id = event->bpf_event.id; | 38 | int id = event->bpf.id; |
38 | unsigned int i; | 39 | unsigned int i; |
39 | 40 | ||
40 | /* perf-record, no need to handle bpf-event */ | 41 | /* perf-record, no need to handle bpf-event */ |
@@ -63,14 +64,13 @@ static int machine__process_bpf_event_load(struct machine *machine, | |||
63 | return 0; | 64 | return 0; |
64 | } | 65 | } |
65 | 66 | ||
66 | int machine__process_bpf_event(struct machine *machine __maybe_unused, | 67 | int machine__process_bpf(struct machine *machine, union perf_event *event, |
67 | union perf_event *event, | 68 | struct perf_sample *sample) |
68 | struct perf_sample *sample __maybe_unused) | ||
69 | { | 69 | { |
70 | if (dump_trace) | 70 | if (dump_trace) |
71 | perf_event__fprintf_bpf_event(event, stdout); | 71 | perf_event__fprintf_bpf(event, stdout); |
72 | 72 | ||
73 | switch (event->bpf_event.type) { | 73 | switch (event->bpf.type) { |
74 | case PERF_BPF_EVENT_PROG_LOAD: | 74 | case PERF_BPF_EVENT_PROG_LOAD: |
75 | return machine__process_bpf_event_load(machine, event, sample); | 75 | return machine__process_bpf_event_load(machine, event, sample); |
76 | 76 | ||
@@ -82,8 +82,7 @@ int machine__process_bpf_event(struct machine *machine __maybe_unused, | |||
82 | */ | 82 | */ |
83 | break; | 83 | break; |
84 | default: | 84 | default: |
85 | pr_debug("unexpected bpf_event type of %d\n", | 85 | pr_debug("unexpected bpf event type of %d\n", event->bpf.type); |
86 | event->bpf_event.type); | ||
87 | break; | 86 | break; |
88 | } | 87 | } |
89 | return 0; | 88 | return 0; |
@@ -160,8 +159,8 @@ static int perf_event__synthesize_one_bpf_prog(struct perf_session *session, | |||
160 | union perf_event *event, | 159 | union perf_event *event, |
161 | struct record_opts *opts) | 160 | struct record_opts *opts) |
162 | { | 161 | { |
163 | struct ksymbol_event *ksymbol_event = &event->ksymbol_event; | 162 | struct perf_record_ksymbol *ksymbol_event = &event->ksymbol; |
164 | struct bpf_event *bpf_event = &event->bpf_event; | 163 | struct perf_record_bpf_event *bpf_event = &event->bpf; |
165 | struct bpf_prog_info_linear *info_linear; | 164 | struct bpf_prog_info_linear *info_linear; |
166 | struct perf_tool *tool = session->tool; | 165 | struct perf_tool *tool = session->tool; |
167 | struct bpf_prog_info_node *info_node; | 166 | struct bpf_prog_info_node *info_node; |
@@ -229,10 +228,10 @@ static int perf_event__synthesize_one_bpf_prog(struct perf_session *session, | |||
229 | __u64 *prog_addrs = (__u64 *)(uintptr_t)(info->jited_ksyms); | 228 | __u64 *prog_addrs = (__u64 *)(uintptr_t)(info->jited_ksyms); |
230 | int name_len; | 229 | int name_len; |
231 | 230 | ||
232 | *ksymbol_event = (struct ksymbol_event){ | 231 | *ksymbol_event = (struct perf_record_ksymbol) { |
233 | .header = { | 232 | .header = { |
234 | .type = PERF_RECORD_KSYMBOL, | 233 | .type = PERF_RECORD_KSYMBOL, |
235 | .size = offsetof(struct ksymbol_event, name), | 234 | .size = offsetof(struct perf_record_ksymbol, name), |
236 | }, | 235 | }, |
237 | .addr = prog_addrs[i], | 236 | .addr = prog_addrs[i], |
238 | .len = prog_lens[i], | 237 | .len = prog_lens[i], |
@@ -253,10 +252,10 @@ static int perf_event__synthesize_one_bpf_prog(struct perf_session *session, | |||
253 | 252 | ||
254 | if (!opts->no_bpf_event) { | 253 | if (!opts->no_bpf_event) { |
255 | /* Synthesize PERF_RECORD_BPF_EVENT */ | 254 | /* Synthesize PERF_RECORD_BPF_EVENT */ |
256 | *bpf_event = (struct bpf_event){ | 255 | *bpf_event = (struct perf_record_bpf_event) { |
257 | .header = { | 256 | .header = { |
258 | .type = PERF_RECORD_BPF_EVENT, | 257 | .type = PERF_RECORD_BPF_EVENT, |
259 | .size = sizeof(struct bpf_event), | 258 | .size = sizeof(struct perf_record_bpf_event), |
260 | }, | 259 | }, |
261 | .type = PERF_BPF_EVENT_PROG_LOAD, | 260 | .type = PERF_BPF_EVENT_PROG_LOAD, |
262 | .flags = 0, | 261 | .flags = 0, |
@@ -301,7 +300,7 @@ int perf_event__synthesize_bpf_events(struct perf_session *session, | |||
301 | int err; | 300 | int err; |
302 | int fd; | 301 | int fd; |
303 | 302 | ||
304 | event = malloc(sizeof(event->bpf_event) + KSYM_NAME_LEN + machine->id_hdr_size); | 303 | event = malloc(sizeof(event->bpf) + KSYM_NAME_LEN + machine->id_hdr_size); |
305 | if (!event) | 304 | if (!event) |
306 | return -1; | 305 | return -1; |
307 | while (true) { | 306 | while (true) { |
@@ -398,9 +397,9 @@ static int bpf_event__sb_cb(union perf_event *event, void *data) | |||
398 | if (event->header.type != PERF_RECORD_BPF_EVENT) | 397 | if (event->header.type != PERF_RECORD_BPF_EVENT) |
399 | return -1; | 398 | return -1; |
400 | 399 | ||
401 | switch (event->bpf_event.type) { | 400 | switch (event->bpf.type) { |
402 | case PERF_BPF_EVENT_PROG_LOAD: | 401 | case PERF_BPF_EVENT_PROG_LOAD: |
403 | perf_env__add_bpf_info(env, event->bpf_event.id); | 402 | perf_env__add_bpf_info(env, event->bpf.id); |
404 | 403 | ||
405 | case PERF_BPF_EVENT_PROG_UNLOAD: | 404 | case PERF_BPF_EVENT_PROG_UNLOAD: |
406 | /* | 405 | /* |
@@ -410,8 +409,7 @@ static int bpf_event__sb_cb(union perf_event *event, void *data) | |||
410 | */ | 409 | */ |
411 | break; | 410 | break; |
412 | default: | 411 | default: |
413 | pr_debug("unexpected bpf_event type of %d\n", | 412 | pr_debug("unexpected bpf event type of %d\n", event->bpf.type); |
414 | event->bpf_event.type); | ||
415 | break; | 413 | break; |
416 | } | 414 | } |
417 | 415 | ||