On Thu, Jan 30, 2025 at 2:22 AM Prasanna Kumar T S M <ptsm@xxxxxxxxxxxxxxxxxxx> wrote: > On 28-01-2025 03:03, Weinan Liu wrote: > > diff --git a/include/linux/sframe_lookup.h b/include/linux/sframe_lookup.h > > new file mode 100644 > > index 000000000000..1c26cf1f38d4 > > --- /dev/null > > +++ b/include/linux/sframe_lookup.h > > @@ -0,0 +1,43 @@ > > +/* SPDX-License-Identifier: GPL-2.0 */ > > +#ifndef _LINUX_SFRAME_LOOKUP_H > > +#define _LINUX_SFRAME_LOOKUP_H > > + > > +/** > > + * struct sframe_ip_entry - sframe unwind info for given ip > > + * @cfa_offset: Offset for the Canonical Frame Address(CFA) from Frame > > + * Pointer(FP) or Stack Pointer(SP) > > + * @ra_offset: Offset for the Return Address from CFA. > > + * @fp_offset: Offset for the Frame Pointer (FP) from CFA. > > + * @use_fp: Use FP to get next CFA or not > > + */ > > +struct sframe_ip_entry { > > + int32_t cfa_offset; > > + int32_t ra_offset; > > The ra_offset is not present for x86_64 in SFrame FRE as per the spec. I > am wondering whether this struct should change based on the architecture > or just set ra_offset calculated from cfa_offset for x86_64. According to the https://sourceware.org/binutils/docs/sframe-spec.html#AMD64 For x86_64, RA will be stored at a fixed offset from the CFA upon function entry. The ra_offset will set to sfhdr_p->cfa_fixed_ra_offset during the initialization of the sframe_ip_entry within the function sframe_find_pc()