@@ -142,7 +142,7 @@ type, never narrowing. It now goes through `convert()` like every other integer
142142## Third batch: what the re-run audit found
143143
144144` tools/selftest-audit.py ` is the corpus classifier, rebuilt and checked in. Run against
145- the current upstream ` progs/ ` it reports 847 real programs, 25 with no hard blocker. All
145+ the current upstream ` progs/ ` it reports 854 real programs, 25 with no hard blocker. All
146146but two of those 25 were already ported or are unportable for a reason a regex cannot see
147147(` bpf_nop_bench.c ` hides a loop in a macro, ` test_pkt_md_access.c ` type-puns narrow loads,
148148` tracing_struct_int128.c ` indexes the raw ctx array and needs bpf_testmod to load). The
@@ -173,23 +173,28 @@ increment loses.
173173
174174### The blocker histogram now
175175
176- Over 847 real programs, hard blockers only; a program usually hits several:
176+ Over 854 real programs, hard blockers only; a program usually hits several:
177177
178178| Blocker | Programs | Share |
179179| ---| ---| ---|
180- | unsupported helper | 496 | 59% |
181- | kfuncs | 284 | 34% |
180+ | unsupported helper | 504 | 59% |
182181| unsupported map type | 273 | 32% |
182+ | kfuncs | 242 | 28% |
183183| verifier-test annotations | 238 | 28% |
184- | typed program macros (` BPF_PROG ` , ` BPF_KPROBE ` ) | 234 | 28% |
185- | BPF-to-BPF calls | 176 | 21% |
184+ | typed program macros (` BPF_PROG ` , ` BPF_KPROBE ` ) | 237 | 28% |
186185| ` goto ` | 143 | 17% |
187186| inline asm | 142 | 17% |
187+ | BPF-to-BPF calls | 128 | 15% |
188188| struct globals | 126 | 15% |
189189| CO-RE reads | 116 | 14% |
190- | loops | 109 | 13% |
191- | array globals | 105 | 12% |
192- | atomics | 86 | 10% |
190+ | loops | 110 | 13% |
191+ | array globals | 109 | 13% |
192+ | atomics | 87 | 10% |
193+
194+ Earlier revisions of this table over-counted kfuncs (the pattern matched every
195+ ` bpf_skb_* ` /` bpf_xdp_* ` helper) and BPF-to-BPF calls (it matched ` SEC("?...") ` ), and
196+ under-counted real programs by seven (a ` // ` inside a section name was stripped as a
197+ comment). The portable set of 25 was unaffected.
193198
194199Globals no longer appear as a blocker at all. The next unlocks by count are helpers (a
195200long tail, but ` bpf_get_current_task ` , ` bpf_ktime_get_boot_ns ` and the ` bpf_probe_read_user* `
0 commit comments