Implementing profilers and tracers in BPF offers a high degree of flexibility and allows for tools that have lower overhead and can make them suitable for production usage. BPF has a helper to unwind native stacks with frame pointers that works great. Unfortunately, most Linux distros and compilation pipelines omit frame pointers. We've built a BPF program that uses DWARF-unwind information to walk native stacks without frame pointers in BPF. We've integrated it into our continuous profiler project, Parca Agent.
Speakers: Vaishali Thakkar Javier Honduvilla Coto