]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
selftests/bpf: Use bpf_program__clone() in veristat
authorMykyta Yatsenko <yatsenko@meta.com>
Tue, 17 Mar 2026 17:39:22 +0000 (10:39 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 21 Mar 2026 20:17:14 +0000 (13:17 -0700)
commit3be706b937f3d4cf1b0236561eb23d064e833253
tree28b88c3a229a9eda52d34e9dfeb2d67b1bbacf43
parent970bd2dced35632ce1c9e38943354d5389d80ca0
selftests/bpf: Use bpf_program__clone() in veristat

Replace veristat's per-program object re-opening with
bpf_program__clone().

Previously, veristat opened a separate bpf_object for every program in a
multi-program object file, iterated all programs to enable only the
target one, and then loaded the entire object.

Use bpf_object__prepare() once, then call bpf_program__clone() for each
program individually. This lets veristat load programs one at a time
from a single prepared object.

The caller now owns the returned fd and closes it after collecting stats.
Remove the special single-program fast path and the per-file early exit
in handle_verif_mode() so all files are always processed.

Split fixup_obj() into fixup_obj_maps() for object-wide map fixups that
must run before bpf_object__prepare(), and fixup_obj() for per-program
fixups (struct_ops masking, freplace type guessing) that run before each
bpf_program__clone() call.

Reviewed-by: Emil Tsalapatis <emil@etsalapatis.com>
Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
Link: https://lore.kernel.org/r/20260317-veristat_prepare-v4-2-74193d4cc9d9@meta.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/veristat.c