I have had to use frame pointers, but only for deeply embedded
projects where the cost
tradeoffs are different and a smaller constrained unwinder was needed.
As mentioned in the change proposal, when using sampling profilers that rely on fast
access to the stacktrace, there is currently no viable alternative to frame pointers.
DWARF unwinding in absence of frame pointers is too slow because of the complexity of the
DWARF format and the necessity to copy the stack to userspace and do unwinding there due
to the lack of an in kernel DWARF unwinder.
Looking at the future, we will be following up on the alternative approaches such as CTF
Frame which will hopefully provide us with a sufficiently fast way to unwind the stack in
the kernel itself without requiring frame pointers. Until such an alternative is
available, we see no option but to use frame pointers in order to do reliable and fast
profiling.
Cheers,
Daan