Re: [PATCH bpf-next v2 00/11] LoongArch: BPF: arena features, exceptions, private stack and may_goto

From: Huacai Chen

Date: Fri Jul 03 2026 - 06:27:09 EST


Hi, Tiezhu and Hengqi,

Could you please pay some time to review this series?

Huacai

On Thu, Jul 2, 2026 at 10:23 AM George Guo <dongtai.guo@xxxxxxxxx> wrote:
>
> This series adds the remaining LoongArch BPF JIT features and enables the
> matching selftests:
>
> - internal-only MOV for per-CPU address resolution
> - timed may_goto
> - per-program private stacks
> - exceptions (bpf_throw)
> - sign-extending loads from arena (PROBE_MEM32SX)
> - atomics on arena pointers (PROBE_ATOMIC)
> - selftests: struct_ops private stack, arena LDSX, arena atomics, and a
> LoongArch deny list
>
> Patch 1 ("LoongArch: BPF: Fix tail call count pointer offset for arena
> programs") is the same fix already posted separately for the bpf tree;
> several patches in this series (notably exceptions, patch 5) build on
> top of the helper it introduces, so it is included here, unchanged, to
> keep the series self-contained and applicable on bpf-next. It can be
> dropped once it lands via the bpf tree.
>
> LoongArch: BPF: Fix tail call count pointer offset for arena programs
> https://lore.kernel.org/all/20260629085511.359546-1-dongtai.guo@xxxxxxxxx
>
> Based on 7.2-rc1.
>
> v2:
> - Included the tail call count pointer offset fix as patch 1/11 (see
> above) instead of only referencing it, so the series applies cleanly
> on bpf-next without waiting on the bpf tree; the empty prog_array
> off-by-one was fixed independently upstream by commit 0379d10f09bc
> ("LoongArch: BPF: Fix off-by-one error in tail call"), now in 7.2-rc1.
> - timed may_goto: store $ra at the ORC-mandated .ra_offset = -8 slot in
> the trampoline (it was stored at the wrong slot in v1), per Tiezhu
> Yang's review.
> - Consolidated the earlier per-CPU MOV / timed may_goto and arena gating
> postings into one series; rebased on 7.2-rc1.
> - selftests: use the upstream __arch_loongarch / "LOONGARCH" test_loader
> support now in 7.2-rc1 instead of introducing it.
> - Prior postings:
> https://lore.kernel.org/all/20260609041407.122384-1-dongtai.guo@xxxxxxxxx
> https://lore.kernel.org/all/20260618033809.98253-1-dongtai.guo@xxxxxxxxx
>
> George Guo (11):
> LoongArch: BPF: Fix tail call count pointer offset for arena programs
> LoongArch: BPF: Support internal-only MOV to resolve per-CPU addrs
> LoongArch: BPF: Add timed may_goto support
> LoongArch: BPF: Add private stack support
> LoongArch: BPF: Add exceptions (bpf_throw) support
> LoongArch: BPF: Support sign-extending loads from arena
> LoongArch: BPF: Support atomics on arena pointers
> selftests/bpf: Enable struct_ops private stack test for LoongArch
> selftests/bpf: Enable arena LDSX tests on LoongArch
> selftests/bpf: Enable arena atomics tests on LoongArch
> selftests/bpf: Add LoongArch deny list
>
> arch/loongarch/include/asm/inst.h | 1 +
> arch/loongarch/kernel/stacktrace.c | 52 +++
> arch/loongarch/net/Makefile | 2 +-
> arch/loongarch/net/bpf_jit.c | 397 ++++++++++++++++--
> arch/loongarch/net/bpf_jit.h | 1 +
> arch/loongarch/net/bpf_timed_may_goto.S | 47 +++
> .../testing/selftests/bpf/DENYLIST.loongarch | 1 +
> .../bpf/prog_tests/struct_ops_private_stack.c | 2 +-
> .../selftests/bpf/progs/arena_atomics.c | 3 +
> .../selftests/bpf/progs/verifier_ldsx.c | 17 +
> 10 files changed, 485 insertions(+), 38 deletions(-)
> create mode 100644 arch/loongarch/net/bpf_timed_may_goto.S
> create mode 100644 tools/testing/selftests/bpf/DENYLIST.loongarch
>
> --
> 2.25.1
>
>