[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250805062747.3479221-1-skb99@linux.ibm.com>
Date: Tue, 5 Aug 2025 11:57:41 +0530
From: Saket Kumar Bhaskar <skb99@...ux.ibm.com>
To: bpf@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
linux-kselftest@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: hbathini@...ux.ibm.com, sachinpb@...ux.ibm.com, venkat88@...ux.ibm.com,
andrii@...nel.org, eddyz87@...il.com, mykolal@...com, ast@...nel.org,
daniel@...earbox.net, martin.lau@...ux.dev, song@...nel.org,
yonghong.song@...ux.dev, john.fastabend@...il.com, kpsingh@...nel.org,
sdf@...ichev.me, haoluo@...gle.com, jolsa@...nel.org,
christophe.leroy@...roup.eu, naveen@...nel.org, maddy@...ux.ibm.com,
mpe@...erman.id.au, npiggin@...il.com, memxor@...il.com,
iii@...ux.ibm.com, shuah@...nel.org
Subject: [bpf-next 0/6] bpf,powerpc: Add support for bpf arena and arena atomics
This patch series introduces support for the PROBE_MEM32,
bpf_addr_space_cast and PROBE_ATOMIC instructions in the powerpc BPF JIT,
facilitating the implementation of BPF arena and arena atomics.
The last patch in the series has fix for arena spinlock selftest
failure.
This series is rebased on top of:
https://lore.kernel.org/bpf/20250717202935.29018-2-puranjay@kernel.org/
All selftests related to bpf_arena, bpf_arena_atomic(except
load_acquire/store_release) enablement are passing:
# ./test_progs -t arena_list
#5/1 arena_list/arena_list_1:OK
#5/2 arena_list/arena_list_1000:OK
#5 arena_list:OK
Summary: 1/2 PASSED, 0 SKIPPED, 0 FAILED
# ./test_progs -t arena_htab
#4/1 arena_htab/arena_htab_llvm:OK
#4/2 arena_htab/arena_htab_asm:OK
#4 arena_htab:OK
Summary: 1/2 PASSED, 0 SKIPPED, 0 FAILED
# ./test_progs -t verifier_arena
#464/1 verifier_arena/basic_alloc1:OK
#464/2 verifier_arena/basic_alloc2:OK
#464/3 verifier_arena/basic_alloc3:OK
#464/4 verifier_arena/iter_maps1:OK
#464/5 verifier_arena/iter_maps2:OK
#464/6 verifier_arena/iter_maps3:OK
#464 verifier_arena:OK
#465/1 verifier_arena_large/big_alloc1:OK
#465/2 verifier_arena_large/big_alloc2:OK
#465 verifier_arena_large:OK
Summary: 2/8 PASSED, 0 SKIPPED, 0 FAILED
# ./test_progs -t arena_atomics
#3/1 arena_atomics/add:OK
#3/2 arena_atomics/sub:OK
#3/3 arena_atomics/and:OK
#3/4 arena_atomics/or:OK
#3/5 arena_atomics/xor:OK
#3/6 arena_atomics/cmpxchg:OK
#3/7 arena_atomics/xchg:OK
#3/8 arena_atomics/uaf:OK
#3/9 arena_atomics/load_acquire:SKIP
#3/10 arena_atomics/store_release:SKIP
#3 arena_atomics:OK (SKIP: 2/10)
Summary: 1/8 PASSED, 2 SKIPPED, 0 FAILED
All selftests related to arena_spin_lock are passing:
# ./test_progs -t arena_spin_lock
#6/1 arena_spin_lock/arena_spin_lock_1:OK
#6/2 arena_spin_lock/arena_spin_lock_1000:OK
#6/3 arena_spin_lock/arena_spin_lock_50000:OK
#6 arena_spin_lock:OK
Summary: 1/3 PASSED, 0 SKIPPED, 0 FAILED
Saket Kumar Bhaskar (6):
bpf,powerpc: Introduce bpf_jit_emit_probe_mem_store() to emit store
instructions
bpf,powerpc: Implement PROBE_MEM32 pseudo instructions
bpf,powerpc: Implement bpf_addr_space_cast instruction
bpf,powerpc: Introduce bpf_jit_emit_atomic_ops() to emit atomic
instructions
bpf,powerpc: Implement PROBE_ATOMIC instructions
selftests/bpf: Fix arena_spin_lock selftest failure
arch/powerpc/net/bpf_jit.h | 6 +-
arch/powerpc/net/bpf_jit_comp.c | 32 +-
arch/powerpc/net/bpf_jit_comp32.c | 2 +-
arch/powerpc/net/bpf_jit_comp64.c | 378 +++++++++++++-----
.../bpf/prog_tests/arena_spin_lock.c | 23 +-
.../selftests/bpf/progs/arena_spin_lock.c | 8 +-
.../selftests/bpf/progs/bpf_arena_spin_lock.h | 4 +-
7 files changed, 348 insertions(+), 105 deletions(-)
base-commit: ea2aecdf7a954a8c0015e185cc870c4191d1d93f
--
2.43.5
Powered by blists - more mailing lists