|
3 | 3 |
|
4 | 4 | void test_stacktrace_map(void)
|
5 | 5 | {
|
6 |
| - int control_map_fd, stackid_hmap_fd, stackmap_fd, stack_amap_fd; |
| 6 | + int control_map_fd, stackid_hmap_fd, stackmap_fd, stack_amap_fd, stack_key_map_fd; |
7 | 7 | const char *prog_name = "oncpu";
|
8 | 8 | int err, prog_fd, stack_trace_len;
|
9 | 9 | const char *file = "./test_stacktrace_map.bpf.o";
|
10 | 10 | __u32 key, val, duration = 0;
|
11 | 11 | struct bpf_program *prog;
|
12 | 12 | struct bpf_object *obj;
|
13 | 13 | struct bpf_link *link;
|
| 14 | + __u32 stack_id; |
| 15 | + char val_buf[PERF_MAX_STACK_DEPTH * |
| 16 | + sizeof(struct bpf_stack_build_id)]; |
14 | 17 |
|
15 | 18 | err = bpf_prog_test_load(file, BPF_PROG_TYPE_TRACEPOINT, &obj, &prog_fd);
|
16 | 19 | if (CHECK(err, "prog_load", "err %d errno %d\n", err, errno))
|
@@ -41,6 +44,10 @@ void test_stacktrace_map(void)
|
41 | 44 | if (CHECK_FAIL(stack_amap_fd < 0))
|
42 | 45 | goto disable_pmu;
|
43 | 46 |
|
| 47 | + stack_key_map_fd = bpf_find_map(__func__, obj, "stack_key_map"); |
| 48 | + if (CHECK_FAIL(stack_key_map_fd < 0)) |
| 49 | + goto disable_pmu; |
| 50 | + |
44 | 51 | /* give some time for bpf program run */
|
45 | 52 | sleep(1);
|
46 | 53 |
|
@@ -68,6 +75,19 @@ void test_stacktrace_map(void)
|
68 | 75 | "err %d errno %d\n", err, errno))
|
69 | 76 | goto disable_pmu;
|
70 | 77 |
|
| 78 | + err = bpf_map_lookup_elem(stack_key_map_fd, &key, &stack_id); |
| 79 | + if (CHECK(err, "stack_key_map lookup", "err %d errno %d\n", err, errno)) |
| 80 | + goto disable_pmu; |
| 81 | + |
| 82 | + err = bpf_map_lookup_and_delete_elem(stackmap_fd, &stack_id, &val_buf); |
| 83 | + if (CHECK(err, "stackmap lookup and delete", |
| 84 | + "err %d errno %d\n", err, errno)) |
| 85 | + goto disable_pmu; |
| 86 | + |
| 87 | + err = bpf_map_lookup_elem(stackmap_fd, &stack_id, &val_buf); |
| 88 | + CHECK((!err || errno != ENOENT), "stackmap lookup deleted stack_id", |
| 89 | + "err %d errno %d\n", err, errno); |
| 90 | + |
71 | 91 | disable_pmu:
|
72 | 92 | bpf_link__destroy(link);
|
73 | 93 | close_prog:
|
|
0 commit comments