Merge branch 'bpf-unify-state-pruning-handling-of-invalid-misc-stack-slots'
Eduard Zingerman says:
====================
bpf: unify state pruning handling of invalid/misc stack slots
This change unifies states pruning handling of NOT_INIT registers,
STACK_INVALID/STACK_MISC stack slots for regular and iterator/callback
based loop cases.
The change results in a modest verifier performance improvement:
========= selftests: master vs loop-stack-misc-pruning =========
File Program Insns (A) Insns (B) Insns (DIFF)
------------------------------- -------------------- --------- --------- ----------------
test_tcp_custom_syncookie.bpf.o tcp_custom_syncookie 38307 18430 -19877 (-51.89%)
xdp_synproxy_kern.bpf.o syncookie_tc 23035 19067 -3968 (-17.23%)
xdp_synproxy_kern.bpf.o syncookie_xdp 21022 18516 -2506 (-11.92%)
Total progs: 4173
Old success: 2520
New success: 2521
total_insns diff min: -99.99%
total_insns diff max: 0.00%
0 -> value: 0
value -> 0: 0
total_insns abs max old: 837,487
total_insns abs max new: 837,487
-100 .. -90 %: 1
-60 .. -50 %: 3
-50 .. -40 %: 2
-40 .. -30 %: 2
-30 .. -20 %: 8
-20 .. -10 %: 4
-10 .. 0 %: 5
0 .. 5 %: 4148
========= scx: master vs loop-stack-misc-pruning =========
File Program Insns (A) Insns (B) Insns (DIFF)
------------------------- ---------------- --------- --------- ----------------
scx_arena_selftests.bpf.o arena_selftest 257545 243678 -13867 (-5.38%)
scx_chaos.bpf.o chaos_dispatch 13989 12804 -1185 (-8.47%)
scx_layered.bpf.o layered_dispatch 27600 13925 -13675 (-49.55%)
Total progs: 305
Old success: 292
New success: 292
total_insns diff min: -49.55%
total_insns diff max: 0.00%
0 -> value: 0
value -> 0: 0
total_insns abs max old: 257,545
total_insns abs max new: 243,678
-50 .. -45 %: 7
-30 .. -20 %: 5
-20 .. -10 %: 14
-10 .. 0 %: 18
0 .. 5 %: 261
There is also a significant verifier performance improvement for some
bpf_loop() heavy Meta internal programs (~ -40% processed instructions).
====================
Link: https://patch.msgid.link/20251230-loop-stack-misc-pruning-v1-0-585cfd6cec51@gmail.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>