On Sat, Aug 27, 2022 at 1:15 AM Andrii Nakryiko <andrii@xxxxxxxxxx> wrote: > > Add a small tool, veristat, that allows mass-verification of > a set of *libbpf-compatible* BPF ELF object files. For each such object > file, veristat will attempt to verify each BPF program *individually*. > Regardless of success or failure, it parses BPF verifier stats and > outputs them in human-readable table format. In the future we can also > add CSV and JSON output for more scriptable post-processing, if necessary. > > veristat allows to specify a set of stats that should be output and > ordering between multiple objects and files (e.g., so that one can > easily order by total instructions processed, instead of default file > name, prog name, verdict, total instructions order). > > This tool should be useful for validating various BPF verifier changes > or even validating different kernel versions for regressions. Cool stuff! I think this would be useful for cases beyond these (i.e. for users to get stats about the verifier in general) and it's worth thinking if this should be built into bpftool? > > Here's an example for some of the heaviest selftests/bpf BPF object > files: > > $ sudo ./veristat -s insns,file,prog {pyperf,loop,test_verif_scale,strobemeta,test_cls_redirect,profiler}*.linked3.o > File Program Verdict Duration, us Total insns Total states Peak states > ------------------------------------ ------------------------------------ ------- ------------ ----------- ------------ ----------- > loop3.linked3.o while_true failure 350990 1000001 9663 9663 [...] > -- > 2.30.2 >