Compiling for verified targets BPF
summary
GCC BPF support reaches parity with clang for most kernel BPF selftests, with one or two failing due to LLVM-specific optimizations; goal is to make compiled BPF practical and verifiable. Proposed solutions include halting or selectively disabling optimizations, inserting counter-passes after destructive transforms (an approach clang uses), adding -Overifiable / minverifiable optimization modes, source pragmas for loop bounds, and small assembler checks; likely outcome is a hybrid of these techniques plus cross-toolchain coordination.
AI-written summary · about
chapters (12)
- 0:00Introduction and motivation
- 1:27GCC BPF toolchain goals
- 2:56Challenges in BPF compilation
- 6:07Current GCC BPF limitations
- 8:15Approaches to verifiable code
- 10:45Counter passes and anti-passes
- 12:32Hooking into optimization passes
- 14:19Generic pass tailoring idea
- 16:49Pragmas for verifiability
- 19:42Debate on optimization levels
- 21:10Future directions and collaboration
- 22:11Assembler support and conclusion
related talks
26mGCC BPF and Linux kernel
45mSupporting BPF in the GNU Toolchain
47mBPF: The Status of BTF, producers, consumers.
36mThe journey of BPF from restricted C language towards extended and safe C.
43mHotBPF++: A More Powerful Memory Protection for the Linux Kernel
30mPerformance insights into eBPF step by step
36mObservability and performance analysis with BPF
28mDeveloping Modern eBPF Applications
