Thread (17 messages) 17 messages, 4 authors, 2026-01-22

Re: [PATCH bpf-next 4/4] selftests/bpf: Allow to benchmark trigger with stacktrace

flat view

From: Jiri Olsa <hidden>
Date: 2026-01-16 16:30:06
Also in: bpf

On Thu, Jan 15, 2026 at 10:50:13AM -0800, Andrii Nakryiko wrote:

SNIP
quoted
quoted
diff --git a/tools/testing/selftests/bpf/benchs/bench_trigger.c b/tools/testing/selftests/bpf/benchs/bench_trigger.c
index 34018fc3927f..aeec9edd3851 100644
--- a/tools/testing/selftests/bpf/benchs/bench_trigger.c
+++ b/tools/testing/selftests/bpf/benchs/bench_trigger.c
@@ -146,6 +146,7 @@ static void setup_ctx(void)
        bpf_program__set_autoload(ctx.skel->progs.trigger_driver, true);

        ctx.skel->rodata->batch_iters = args.batch_iters;
+       ctx.skel->rodata->stacktrace = env.stacktrace;
 }

 static void load_ctx(void)
diff --git a/tools/testing/selftests/bpf/progs/trigger_bench.c b/tools/testing/selftests/bpf/progs/trigger_bench.c
index 2898b3749d07..479400d96fa4 100644
--- a/tools/testing/selftests/bpf/progs/trigger_bench.c
+++ b/tools/testing/selftests/bpf/progs/trigger_bench.c
@@ -25,6 +25,23 @@ static __always_inline void inc_counter(void)
        __sync_add_and_fetch(&hits[cpu & CPU_MASK].value, 1);
 }

+volatile const int stacktrace;
+
+typedef __u64 stack_trace_t[128];
+
+struct {
+       __uint(type, BPF_MAP_TYPE_STACK_TRACE);
+       __uint(max_entries, 16384);
+       __type(key, __u32);
+       __type(value, stack_trace_t);
+} stackmap SEC(".maps");
oh, and why bother with STACK_TRACE map, just call bpf_get_stack() API
and have maybe per-CPU scratch array for stack trace (per-CPU so that
in multi-cpu benchmarks they don't just contend on the same cache
lines)
ok, will change

thanks,
jirka
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help