内核中十万内联函数如何被追踪?
Debugging Information for Inlined Functions
内核中存在超过 10 万个内联函数,它们分散在数倍于函数数量的位置,导致传统的 BTF 调试信息无法有效追踪。Alan Maguire 在 2026 年 Linux Storage, Filesystem, Memory-Management, and BPF Summit 上提出新方案,旨在将内联函数的详细信息纳入 BTF 格式。该方案通过新增 location section、location prototype 和 location parameter 三个部分,利用指针引用实现数据去重,将额外内存开销控制在约 11MB,压缩后可降至 3.5MB。这一改进不仅能解决部分内联函数追踪遗漏的问题,还通过优化数据结构排序和增强 BTF 解析的兼容性,为 kprobes 等工具提供了更完善的基础设施。
故事实际上已经相当完整。