Re: [RFC PATCH v2 03/24] unwind_user: Enable archs that pass RA in a register

[email protected]
Newsgroups org.kernel.vger.linux-s390,org.kernel.vger.linux-trace-kernel
Message-ID <[email protected]>
> Not all architectures/ABIs pass the return address (RA) on the stack on
> function entry, like x86-64 does due to its CALL instruction pushing
> the RA onto the stack.  Architectures/ABIs, such as s390, also do not
> require the RA to be saved on the stack in the function prologue.  In
> particular, the RA may never be saved to the stack at all, such as in
> leaf functions.  Unwinding must therefore not assume the presence of a
> RA saved on stack for the topmost frame.
> 
> Treat a RA offset from CFA of zero as indication that the RA is not
> saved (on the stack).  For the topmost frame treat it as indication that
> the RA is in the link/RA register, such as on arm64 and s390, and obtain
> it from there.  For non-topmost frames treat it as error, as the RA must
> be saved.
> 
> Additionally allow the SP to be unchanged in the topmost frame, for
> architectures where SP at function entry == SP at call site, such as
> arm64 and s390.
> 
> Note that treating a RA offset from CFA of zero as indication that
> the RA is not saved on the stack additionally allows for architectures,
> such as s390, where the frame pointer (FP) may be saved without the RA
> being saved as well.  Provided that such architectures represent this
> in SFrame by encoding the "missing" RA offset using a padding RA offset
> with a value of zero.
> 
> Reviewed-by: Indu Bhagat <[email protected]>
> Signed-off-by: Jens Remus <[email protected]>

Sashiko has reviewed this patch and found no issues. It looks great!

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/[email protected]?part=3
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.