Supply true signatures to vmlinux BTF
summary
Effort adds true function signatures into vmlinux.BTF by changing clang/pahole/libbpf/kernel: clang emits extra IR debug CU entries (artificial compilation unit + inlined subprograms), pahole reads them (new true-signature mode, off by default) and overwrites prior entries, libbpf/kernel use the concrete signatures for fentry. Outcome: baseline ~66k functions, non‑LTO adds ~894 signature changes (~14 kB), LTO surfaces ~64k more (~64 kB); inline-site locations cover ~70% of cases, enabling practical tracing.
AI-written summary · about
chapters (10)
- 0:00Introduction to BTF signatures
- 2:35Source vs optimized signatures
- 7:02LLVM debug info for signatures
- 12:27Encoding true signatures in BTF
- 17:28Kernel and toolchain requirements
- 21:51Inline functions and signatures
- 25:25GCC side solutions
- 30:38Future formats and standards
- 32:52Debugger and metadata discussion
- 34:18Q&A and summary
related talks
24mCompiling for verified targets BPF
23mAlways present type information thanks to BPF: BTF
45mSupporting BPF in the GNU Toolchain
24mGenerating BPF Verifier Friendly Code with Clang
32mMore CO-RE? Taming the effects of compiler optimizations on BPF tracing
24m(Ab)using Compiler Tools
40mCompact C Type Format in the GNU Toolchain
48mUpstreaming SVE in QEMU
