BPF List
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Jens Remus" <jremus@linux.ibm.com>
Cc: bpf@vger.kernel.org
Subject: Re: [PATCH v16 16/20] unwind_user/sframe: Add support for SFrame V3 flexible FDEs
Date: Thu, 21 May 2026 15:14:06 +0000	[thread overview]
Message-ID: <20260521151406.E1BA21F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260521142546.3908498-17-jremus@linux.ibm.com>

Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Mismatch between SFrame V3 flexible FDE control word specification in the commit message and the actual implementation.
- [Low] The patch uses undefined macros `SFRAME_REG_SP` and `SFRAME_REG_FP` and includes a missing architecture header, breaking the build.
--

commit 82ce04f2a50a8ff116e0ca155714efff95332739
Author: Jens Remus <jremus@linux.ibm.com>

unwind_user/sframe: Add support for SFrame V3 flexible FDEs

This commit introduces support for SFrame V3 flexible FDEs, which encode CFA,
RA, and FP tracking information using FRE data words or padding words. It
adds logic to read flexible FDE control words and initialize the appropriate
CFA and rule data structures.

>     This enables the following flexible CFA and FP/RA recovery rules:
>     - CFA = register + offset       // reg_p=1, deref_p=0
>     - CFA = *(register + offset)    // reg_p=1, deref_p=1
>     - FP/RA = *(CFA + offset)       // reg_p=0, deref_p=0

[Severity: Medium]
Is this description in the commit message accurate?

The commit message states that the FP/RA rule uses reg_p=0, deref_p=0.
However, the implementation for this rule in __read_flex_fde_fre_datawords()
uses ra_ctl = 2, which corresponds to deref_p=1. 

Also, the commit message later notes that reg_p=0 and deref_p=0 is actually
an invalid padding word.

Could the commit message be updated to match the code's behavior to avoid
confusing future maintainers debugging the SFrame unwinder?

> diff --git a/kernel/unwind/sframe.c b/kernel/unwind/sframe.c
> index daa97d8b02316..b623dca072daa 100644
> --- a/kernel/unwind/sframe.c
> +++ b/kernel/unwind/sframe.c
> @@ -12,6 +12,7 @@
>  #include <linux/mm.h>
>  #include <linux/string_helpers.h>
>  #include <linux/sframe.h>
> +#include <asm/unwind_user_sframe.h>
>  #include <linux/unwind_user_types.h>

[Severity: Low]
Does this include break the build for intermediate commits?

This architecture header, along with the SFRAME_REG_SP and SFRAME_REG_FP
macros used later in this patch, do not appear to exist in the tree at this
commit.

Although this is fixed later in the patch series by the commit that enables
sframe unwinding on x86, missing headers and undefined macros break git
bisectability. 

Should these definitions be introduced in an earlier patch or within this
one so that this patch compiles cleanly?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260521142546.3908498-1-jremus@linux.ibm.com?part=16

  reply	other threads:[~2026-05-21 15:14 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-21 14:25 [PATCH v16 00/20] unwind_deferred: Implement sframe handling Jens Remus
2026-05-21 14:25 ` [PATCH v16 01/20] unwind_user: Add generic and arch-specific headers to MAINTAINERS Jens Remus
2026-05-21 14:25 ` [PATCH v16 02/20] unwind_user/sframe: Add support for reading .sframe headers Jens Remus
2026-05-21 14:51   ` sashiko-bot
2026-05-22 10:11     ` Jens Remus
2026-05-27 20:09   ` Steven Rostedt
2026-05-21 14:25 ` [PATCH v16 03/20] unwind_user/sframe: Store .sframe section data in per-mm maple tree Jens Remus
2026-05-21 15:04   ` sashiko-bot
2026-05-27 20:20   ` Steven Rostedt
2026-05-21 14:25 ` [PATCH v16 04/20] x86/uaccess: Add unsafe_copy_from_user() implementation Jens Remus
2026-05-21 14:25 ` [PATCH v16 05/20] unwind_user/sframe: Add support for reading .sframe contents Jens Remus
2026-05-21 15:18   ` sashiko-bot
2026-05-22  9:26     ` Jens Remus
2026-05-27 19:49       ` Steven Rostedt
2026-05-21 14:25 ` [PATCH v16 06/20] unwind_user/sframe: Detect .sframe sections in executables Jens Remus
2026-05-21 14:25 ` [PATCH v16 07/20] unwind_user/sframe: Wire up unwind_user to sframe Jens Remus
2026-05-21 14:53   ` sashiko-bot
2026-05-22  9:55     ` Jens Remus
2026-05-21 14:25 ` [PATCH v16 08/20] unwind_user: Stop when reaching an outermost frame Jens Remus
2026-05-21 14:47   ` sashiko-bot
2026-05-22 10:12     ` Jens Remus
2026-05-21 14:25 ` [PATCH v16 09/20] unwind_user/sframe: Add support for outermost frame indication Jens Remus
2026-05-21 14:25 ` [PATCH v16 10/20] unwind_user/sframe: Remove .sframe section on detected corruption Jens Remus
2026-05-21 15:19   ` sashiko-bot
2026-05-22 10:03     ` Jens Remus
2026-05-21 14:25 ` [PATCH v16 11/20] unwind_user/sframe: Show file name in debug output Jens Remus
2026-05-21 15:05   ` sashiko-bot
2026-05-22  9:58     ` Jens Remus
2026-05-21 14:25 ` [PATCH v16 12/20] unwind_user/sframe: Add .sframe validation option Jens Remus
2026-05-21 15:02   ` sashiko-bot
2026-05-22 10:08     ` Jens Remus
2026-05-21 14:25 ` [PATCH v16 13/20] unwind_user: Enable archs that pass RA in a register Jens Remus
2026-05-21 14:25 ` [PATCH v16 14/20] unwind_user: Flexible FP/RA recovery rules Jens Remus
2026-05-21 14:25 ` [PATCH v16 15/20] unwind_user: Flexible CFA " Jens Remus
2026-05-21 14:25 ` [PATCH v16 16/20] unwind_user/sframe: Add support for SFrame V3 flexible FDEs Jens Remus
2026-05-21 15:14   ` sashiko-bot [this message]
2026-05-22 10:15     ` Jens Remus
2026-05-21 14:25 ` [PATCH v16 17/20] unwind_user/sframe: Separate reading of FRE from reading of FRE data words Jens Remus
2026-05-21 14:25 ` [PATCH v16 18/20] unwind_user/sframe: Duplicate registered .sframe section data on clone/fork Jens Remus
2026-05-21 15:37   ` sashiko-bot
2026-05-21 14:25 ` [PATCH v16 19/20] unwind_user/sframe/x86: Enable sframe unwinding on x86 Jens Remus
2026-05-21 14:25 ` [PATCH v16 20/20] unwind_user/sframe: Add prctl() interface for registering .sframe sections Jens Remus
2026-05-21 15:23   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260521151406.E1BA21F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=jremus@linux.ibm.com \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox