Linus Torvalds today merged the initial deferred unwinder infrastructure into the Linux 6.17 kernel on the path toward enabling SFrame stack trace format support.
SFrame stack trace support on the libc side recently premiered in GNU C Library 2.42 and GNU Binutils 2.45. SFrame is a stack trace format that is lightweight and can overcome the run-time performance cost of involving frame pointers and losing a general purpose register.
Now over in kernel space, the deferred unwinder infrastructure was upstreamed for Linux 6.17 while other patch series remain pending. Steven Rostedt sent in the core infrastructure of the deferred unwinder needed for SFrame support. That was upstreamed now since it will make the rest of the patch series easier to land, including the x86 support, s390 architecture support, perf integration, ftrace integration, and the rest of the SFrame enablement.
See this merge for more details on the deferred unwinder infrastructure now in the mainline Linux kernel.
After merging the code, Linus Torvalds commented:
“I’m not super-happy about merging code with no users, but in this case the code does look pretty reasonable to me, and the reasons for merging it like this in order to have the different users not have to worry about seem sane too.
I think it could have been done with a shared branch, but I guess my tree will work as a shared branch now.
So I’ve merged it, and I did a basic test-build both with a forced fake ‘HAVE_UNWIND_USER_FP’ and without (well, the “without” case is technically still building, but I don’t expect issues).
I didn’t see any objections in the threads leading up to this, but if somebody really hates it, holler now.”
Those wanting to learn more about the SFrame stack trace format effort can do so via the SourceWare.org Wiki.