Re: [PATCH bpf-next v3 2/2] selftests/bpf: Add stacktrace map lookup_and_delete_elem test case

From: Tao Chen

Date: Mon Sep 22 2025 - 10:00:36 EST


在 2025/9/22 10:42, Leon Hwang 写道:


On 20/9/25 23:52, Tao Chen wrote:
...
test_stacktrace_map:PASS:compare_stack_ips stackmap vs. stack_amap 0 nsec
test_stacktrace_map:PASS:stack_key_map lookup 0 nsec
test_stacktrace_map:PASS:stackmap lookup and detele 0 nsec
test_stacktrace_map:PASS:stackmap lookup deleted stack_id 0 nsec
#397 stacktrace_map:OK
...

As they suppose to pass, they are meaningless in the commit log.

Please describe what the test is for and what it is doing instead.


will reedit the commit message in v4, thanks.


Signed-off-by: Tao Chen <chen.dylane@xxxxxxxxx>
---
.../selftests/bpf/prog_tests/stacktrace_map.c | 22 ++++++++++++++++++-
.../selftests/bpf/progs/test_stacktrace_map.c | 8 +++++++
2 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/prog_tests/stacktrace_map.c b/tools/testing/selftests/bpf/prog_tests/stacktrace_map.c
index 84a7e405e91..7d38afe5cfc 100644
--- a/tools/testing/selftests/bpf/prog_tests/stacktrace_map.c
+++ b/tools/testing/selftests/bpf/prog_tests/stacktrace_map.c
@@ -3,7 +3,7 @@
void test_stacktrace_map(void)
{
- int control_map_fd, stackid_hmap_fd, stackmap_fd, stack_amap_fd;
+ int control_map_fd, stackid_hmap_fd, stackmap_fd, stack_amap_fd, stack_key_map_fd;
const char *prog_name = "oncpu";
int err, prog_fd, stack_trace_len;
const char *file = "./test_stacktrace_map.bpf.o";
@@ -11,6 +11,9 @@ void test_stacktrace_map(void)
struct bpf_program *prog;
struct bpf_object *obj;
struct bpf_link *link;
+ __u32 stack_id;
+ char val_buf[PERF_MAX_STACK_DEPTH *
+ sizeof(struct bpf_stack_build_id)];

Nit: minor indentation issue here.

'val_buf' should stay on a single line, since up to 100 characters per
line are allowed.


will change it in v4, thanks.

NOTE: keep inverted Christmas tree style.

Thanks,
Leon

err = bpf_prog_test_load(file, BPF_PROG_TYPE_TRACEPOINT, &obj, &prog_fd);
if (CHECK(err, "prog_load", "err %d errno %d\n", err, errno))
@@ -41,6 +44,10 @@ void test_stacktrace_map(void)
if (CHECK_FAIL(stack_amap_fd < 0))
goto disable_pmu;
+ stack_key_map_fd = bpf_find_map(__func__, obj, "stack_key_map");
+ if (CHECK_FAIL(stack_key_map_fd < 0))
+ goto disable_pmu;
+
/* give some time for bpf program run */
sleep(1);

[...]


--
Best Regards
Tao Chen