Re: [PATCH bpf-next v3 3/6] bpf: fix the usage of BPF_TRAMP_F_SKIP_FRAME

Menglong Dong
2025-12-19T02:22:34Z

On 2025/12/18 22:45 Andreas Schwab <schwab@linux-m68k.org> write:
> On Nov 18 2025, Menglong Dong wrote:
>
> > Some places calculate the origin_call by checking if
> > BPF_TRAMP_F_SKIP_FRAME is set. However, it should use
> > BPF_TRAMP_F_ORIG_STACK for this propose. Just fix them.
> >
> > Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
> > Acked-by: Alexei Starovoitov <ast@kernel.org>
>
> This breaks RISC-V:

Hi, Andreas. Can you offer more information here? After my analysis,
I didn't see the problem. BPF_TRAMP_F_SKIP_FRAME and
BPF_TRAMP_F_ORIG_STACK are set together all the time in RISC-V, so
I changed BPF_TRAMP_F_SKIP_FRAME to BPF_TRAMP_F_ORIG_STACK
*should* have no influence.

Thanks!
Menglong Dong

>
> [ 8.584381][ T1] systemd[1]: bpf-restrict-fs: LSM BPF program attached
> [ 8.588359][ T1] Insufficient stack space to handle exception!
> [ 8.588823][ T1] Task stack: [0xff20000000010000..0xff20000000014000]
> [ 8.589219][ T1] Overflow stack: [0xff600000ffdad070..0xff600000ffdae070]
> [ 8.590133][ T1] CPU: 1 UID: 0 PID: 1 Comm: systemd Not tainted 6.18.0-rc5+ #15 PREEMPT(voluntary) c900881ed1c1988ec5cf3e914d0edeb1b4d83ca3
> [ 8.590898][ T1] Hardware name: riscv-virtio qemu/qemu, BIOS 2025.10 10/01/2025
> [ 8.591494][ T1] epc : copy_from_kernel_nofault+0xa/0x198
> [ 8.592292][ T1] ra : bpf_probe_read_kernel+0x20/0x60
> [ 8.592658][ T1] epc : ffffffff802b732a ra : ffffffff801e6070 sp : ff2000000000ffe0
> [ 8.593121][ T1] gp : ffffffff82262ed0 tp : 0000000000000000 t0 : ffffffff80022320
> [ 8.593566][ T1] t1 : ffffffff801e6056 t2 : 0000000000000000 s0 : ff20000000010040
> [ 8.593997][ T1] s1 : 0000000000000008 a0 : ff20000000010050 a1 : ff60000083b3d320
> [ 8.594446][ T1] a2 : 0000000000000008 a3 : 0000000000000097 a4 : 0000000000000000
> [ 8.594940][ T1] a5 : 0000000000000000 a6 : 0000000000000021 a7 : 0000000000000003
> [ 8.595396][ T1] s2 : ff20000000010050 s3 : ff6000008459fc18 s4 : ff60000083b3d340
> [ 8.595831][ T1] s5 : ff20000000010060 s6 : 0000000000000000 s7 : ff20000000013aa8
> [ 8.596215][ T1] s8 : 0000000000000000 s9 : 0000000000008000 s10: 000000000058dcb0
> [ 8.596641][ T1] s11: 000000000058dca7 t3 : 000000006925116d t4 : ff6000008090f026
> [ 8.597065][ T1] t5 : 00007fff9b0cbaa8 t6 : 0000000000000016
> [ 8.597363][ T1] status: 0000000200000120 badaddr: 0000000000000000 cause: 8000000000000005
> [ 8.598033][ T1] Kernel panic - not syncing: Kernel stack overflow
> [ 8.598597][ T1] CPU: 1 UID: 0 PID: 1 Comm: systemd Not tainted 6.18.0-rc5+ #15 PREEMPT(voluntary) c900881ed1c1988ec5cf3e914d0edeb1b4d83ca3
> [ 8.599244][ T1] Hardware name: riscv-virtio qemu/qemu, BIOS 2025.10 10/01/2025
> [ 8.599659][ T1] Call Trace:
> [ 8.600117][ T1] [<ffffffff8001a1f8>] dump_backtrace+0x28/0x38
> [ 8.600517][ T1] [<ffffffff80002502>] show_stack+0x3a/0x50
> [ 8.600844][ T1] [<ffffffff800122be>] dump_stack_lvl+0x56/0x80
> [ 8.601176][ T1] [<ffffffff80012300>] dump_stack+0x18/0x22
> [ 8.601518][ T1] [<ffffffff80002abe>] vpanic+0xf6/0x328
> [ 8.601819][ T1] [<ffffffff80002d2e>] panic+0x3e/0x40
> [ 8.602088][ T1] [<ffffffff80019ef0>] handle_bad_stack+0x98/0xa0
> [ 8.602395][ T1] [<ffffffff801e6070>] bpf_probe_read_kernel+0x20/0x60
>
> --
> Andreas Schwab, schwab@linux-m68k.org
> GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1
> "And now for something completely different."
>
>