On 7/5/22 06:06, Florian Weimer wrote: > * Daan De Meyer via devel: > >> Instead, we only saw differences from 0%-2% between Redis compiled >> with frame pointers and Redis compiled without frame pointers. These >> benchmarks were done using the phoronix-test-suite in exactly the same >> way as documented in the phoronix article. > > Did you actually enable frame pointers everywhere, or did you just use > -fno-omit-frame-pointer? > > Merely building with -fno-omit-frame-pointer results in incomplete > backchain-based backtraces on x86, so I don't see the point of that. > You get worse performance, but backtracing without DWARF still doesn't > quite work. Also, frame pointers do not work at all for some packages, such as LuaJIT. LuaJIT’s assembler code does not maintain a frame pointer, so frame pointer-based unwinding passed it simply cannot work. A much better solution is to figure out how to safely unwind the stack in the kernel without frame pointers. SystemTap is apparently able to do this, and eBPF might be an option too with sufficient kernel changes. Another approach would be to change userspace build tools to generate ORC unwind info and have the kernel use that. That said, eBPF is my preferred approach: the verifier should prevent an eBPF-based unwinder from doing anything nasty, which is especially important when processing untrusted unwind information from userspace. Alternatively, once Rust support lands in the Linux kernel, an unwinder could be written in Rust. -- Sincerely, Demi Marie Obenour (she/her/hers) _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/ List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure