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

Shuai Xue xueshuai at linux.alibaba.com
Thu Oct 8 04:42:08 PDT 2026



On 9/29/26 3:28 PM, Martin Kaiser wrote:
> Thus wrote Shuai Xue (xueshuai at linux.alibaba.com):
> 
>> Hi,
> 
>> 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.
> 
>> 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.
> 
>> 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.
> 
>> 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.
> 
>> 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.
> 
>> Base:
>> riscv/for-next 77ae27fd98f3 ("Merge tag 'printk-for-7.3' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux")
> 
>> Previous versions:
>> v5: https://lore.kernel.org/r/20260804103626.2803112-1-wanghan@linux.alibaba.com
>> v4 RESEND: https://lore.kernel.org/r/20260629072713.3273743-1-wanghan@linux.alibaba.com
>> v3: https://lore.kernel.org/r/cover.194d76e3a15b.v3.riscv-livepatch.wanghan@linux.alibaba.com
>> v2: https://lore.kernel.org/r/20260528082310.1994388-1-wanghan@linux.alibaba.com
>> v1: https://lore.kernel.org/r/20260527123530.2593918-1-wanghan@linux.alibaba.com
> 
>> 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 <martin at kaiser.cx>
> Tested-by: Martin Kaiser <martin at kaiser.cx>


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 <mbenes at suse.cz>             (7/7, livepatch)
   * Reviewed-by: Marcos Paulo de Souza <mpdesouza at suse.com> (7/7)
   * Reviewed-by: Martin Kaiser <martin at kaiser.cx>         (whole series)
   * Tested-by: Martin Kaiser <martin at kaiser.cx>           (whole series,
     rv64 QEMU and rv64 CHERI, livepatch working on both)
   * Reviewed-by: Shuai Xue <xueshuai at linux.alibaba.com>   (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





More information about the linux-riscv mailing list