On 2025/4/30 8:48, Peilin Ye wrote:
Hi all! Patchset [1] introduced BPF load-acquire (BPF_LOAD_ACQ) and store-release (BPF_STORE_REL) instructions, and added x86-64 and arm64 JIT compiler support. As a follow-up, this patchset supports load-acquire and store-release instructions for the riscv64 JIT compiler, and introduces some related selftests/ changes. Specifically: * PATCH 1 makes insn_def_regno() handle load-acquires properly for bpf_jit_needs_zext() (true for riscv64) architectures * PATCH 2, 3 from Andrea Parri add the actual support to the riscv64 JIT compiler * PATCH 4 optimizes code emission by skipping redundant zext instructions inserted by the verifier * PATCH 5, 6 and 7 are minor selftest/ improvements * PATCH 8 enables (non-arena) load-acquire/store-release selftests for riscv64 Please refer to individual patches for details. Thanks! [1] https://lore.kernel.org/all/cover.1741049567.git.yepeilin@xxxxxxxxxx/ Andrea Parri (2): bpf, riscv64: Introduce emit_load_*() and emit_store_*() bpf, riscv64: Support load-acquire and store-release instructions Peilin Ye (6): bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno() bpf, riscv64: Skip redundant zext instruction after load-acquire selftests/bpf: Use CAN_USE_LOAD_ACQ_STORE_REL when appropriate selftests/bpf: Avoid passing out-of-range values to __retval() selftests/bpf: Verify zero-extension behavior in load-acquire tests selftests/bpf: Enable non-arena load-acquire/store-release selftests for riscv64 arch/riscv/net/bpf_jit.h | 15 + arch/riscv/net/bpf_jit_comp64.c | 334 ++++++++++++------ arch/riscv/net/bpf_jit_core.c | 3 +- kernel/bpf/verifier.c | 11 +- tools/testing/selftests/bpf/progs/bpf_misc.h | 5 +- .../bpf/progs/verifier_load_acquire.c | 48 ++- .../selftests/bpf/progs/verifier_precision.c | 5 +- .../bpf/progs/verifier_store_release.c | 39 +- 8 files changed, 314 insertions(+), 146 deletions(-)
Hi Peilin, good to see the implementation of load-acquire and store-release instructions on RV64! But I'm about to start my vacation, so I'll test it once I'm back.