selftests/bpf: Test stack depth stats without BTF subprog names

Test the per-program insns_self, insns_total, and stack depth statistics
emitted when BTF function info does not provide subprogram names. Check that
the subprog 0 main record and static-subprogram records use <unknown>.

Make VERBOSE_ACCEPT request verifier statistics so the raw-insn test can
validate the output without a test-specific log level.

Signed-off-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Link: https://patch.msgid.link/20260812221925.3358041-6-memxor@gmail.com
Signed-off-by: Eduard Zingerman <eddyz87@gmail.com>
This commit is contained in:
Kumar Kartikeya Dwivedi
2026-08-13 00:19:22 +02:00
committed by Eduard Zingerman
parent 5026862334
commit b961cf3171
2 changed files with 12 additions and 2 deletions

View File

@@ -1560,7 +1560,7 @@ static void do_test_single(struct bpf_test *test, bool unpriv,
opts.expected_attach_type = test->expected_attach_type;
if (expected_ret == VERBOSE_ACCEPT)
opts.log_level = 2;
opts.log_level = 2 | 4;
else if (verbose)
opts.log_level = verif_log_level | 4; /* force stats */
else

View File

@@ -1091,7 +1091,17 @@
/* stack_main=32, stack_A=256, stack_B=64
* and max(main+A, main+A+B) < 512
*/
.result = ACCEPT,
.result = VERBOSE_ACCEPT,
.errstr = "stack depth max 352\t"
"subprog 0 (<unknown>) main insns_self \t"
" insns_total \t"
" stack 32\t"
"subprog 1 (<unknown>) static insns_self \t"
" insns_total \t"
" stack 256\t"
"subprog 2 (<unknown>) static insns_self \t"
" insns_total \t"
" stack 64",
},
{
"calls: stack depth check using three frames. test2",