Thread (22 messages) 22 messages, 4 authors, 11d ago

Re: [PATCH v6 0/7] riscv: Add reliable stack unwinding for livepatch

flat view

From: Shuai Xue <xueshuai@linux.alibaba.com>
Date: 2026-10-08 11:47:45
Also in: linux-kselftest, linux-perf-users, linux-riscv, live-patching, lkml


On 9/29/26 3:28 PM, Martin Kaiser wrote:
Thus wrote Shuai Xue (xueshuai@linux.alibaba.com):
quoted
Hi,
quoted
This is v6 of the RISC-V reliable stack unwinding series for livepatch.
Wang Han has left our team, so I am taking over this series from now on.
quoted
The series adds explicit frame-record metadata, preserves the frame
pointer through dynamic ftrace, and replaces the open-coded stack walker
with a conservative frame-pointer based unwinder. It then enables the
RISC-V livepatch capability and adds the syscall-wrapper selftest prefix.
quoted
Changes since v5:
* Rebase onto the current riscv/for-next; no functional changes.
* Fold in the tags collected from the v5 thread:
   - Reviewed-by: Shuai Xue on 2/7, 3/7, 4/7 and 6/7
   - Acked-by: Miroslav Benes on 7/7
* Add my sign-off as the new sender.
quoted
Since the patches are otherwise identical to v5, the v5 validation
results still apply. For reference, from the v5 cover letter:
* Built Linux 7.2.0-rc6 with riscv64-unknown-linux-gnu-gcc 15.2.0
   and binutils 2.46.
* Standard livepatch configuration built successfully, including
   Image, vmlinux, modules, compile_commands.json and GDB scripts.
* CONFIG_IRQ_STACKS=n variant linked successfully with GCC.
* QEMU 8.2.2, 1 CPU: livepatch selftests PASS: 7, SKIP: 1,
   FAIL: 0; ftrace function graph 3 passed, 0 failed, 3 unsupported.
* QEMU 8.2.2, 4 CPUs: livepatch selftests PASS: 7, SKIP: 1,
   FAIL: 0; ftrace function graph 3 passed, 0 failed, 3 unsupported.
* No BUG, WARNING, Oops, panic, unreliable stack or Call Trace found
   by the validation log scans. Expected negative livepatch errors are
   part of the selftests.
quoted
v5 was posted in early August and has been quiet since then. I would
appreciate it if the series could be considered for the upcoming merge
window. Happy to address any remaining feedback.
quoted
Base:
riscv/for-next 77ae27fd98f3 ("Merge tag 'printk-for-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux")
quoted
Previous versions:
v5: https://lore.kernel.org/r/20260804103626.2803112-1-wanghan@linux.alibaba.com (local)
v4 RESEND: https://lore.kernel.org/r/20260629072713.3273743-1-wanghan@linux.alibaba.com (local)
v3: https://lore.kernel.org/r/cover.194d76e3a15b.v3.riscv-livepatch.wanghan@linux.alibaba.com (local)
v2: https://lore.kernel.org/r/20260528082310.1994388-1-wanghan@linux.alibaba.com (local)
v1: https://lore.kernel.org/r/20260527123530.2593918-1-wanghan@linux.alibaba.com (local)
quoted
Assisted-by: Qoder:Qwen-3.8-MAX-Preview
Thanks for these patches.

I tried them on a standard rv64 qemu and on a rv64 cheri system
(cheri-linux.org). The latter needed some minor tweaks, but in
both cases, I could get livepatch to work.

Reviewed-by: Martin Kaiser <redacted>
Tested-by: Martin Kaiser <redacted>

Hi Martin,

Thank you very much for testing the series and for the tags!

It is great to hear that livepatch works both on a standard rv64 QEMU
and on the rv64 CHERI system. Could you share what the minor tweaks
for CHERI were? If any of them are generic -- for example frame-record
size/alignment or pointer-width assumptions in the unwinder -- it may
be worth folding them into this series, so the cheri-linux tree has
less to carry downstream. If they are purely CHERI-specific, a pointer
to your tree would still be a useful reference.

+Palmer, Paul, gentle ping on this series.

It has been under review since late May (v1 on May 27, now in its sixth
revision) and the tags collected so far are:

  * Acked-by: Miroslav Benes [off-list ref]             (7/7, livepatch)
  * Reviewed-by: Marcos Paulo de Souza [off-list ref] (7/7)
  * Reviewed-by: Martin Kaiser [off-list ref]         (whole series)
  * Tested-by: Martin Kaiser [off-list ref]           (whole series,
    rv64 QEMU and rv64 CHERI, livepatch working on both)
  * Reviewed-by: Shuai Xue [off-list ref]   (2/7, 3/7, 4/7, 6/7)

v6 still applies cleanly onto the current riscv/for-next
(52318cf0fa6e). If it helps, I can send a v7 that folds in Martin's
Reviewed-by/Tested-by tags.

Could the series be considered for the upcoming 7.4 merge window?

Thanks,
Shuai Xue

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help