On Thu, Jul 10, 2025 at 06:35:12PM +0200, Jens Remus wrote:
Most architectures define their CFA as the value of the stack pointer
(SP) at the call site in the previous frame, as suggested by the DWARF
standard:
CFA = <SP at call site>
Enable unwinding of user space for architectures, such as s390, which
define their CFA as the value of the SP at the call site in the previous
frame with an offset:
CFA = <SP at call site> + offset
This is a bit confusing, as the comment and code define it as
SP = CFA + offset
Should the commit log be updated to match that?
quoted hunk ↗ jump to hunk
+++ b/arch/x86/include/asm/unwind_user.h
@@ -8,6 +8,7 @@
.cfa_off = (s32)sizeof(long) * 2, \
.ra_off = (s32)sizeof(long) * -1, \
.fp_off = (s32)sizeof(long) * -2, \
+ .sp_val_off = (s32)0, \
IIUC, this is similar to ra_off and fp_off in that its an offset from
the CFA. Can we call it "sp_off"?
--
Josh