Re: [PATCH bpf-next 0/8] bpf, riscv64: Support load-acquire and store-release instructions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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.




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux