Message ID | 20220610155552.25892-1-hbathini@linux.ibm.com (mailing list archive) |
---|---|
Headers | show |
Series | Atomics support for eBPF on powerpc | expand |
Hi Hari, Hari Bathini wrote: > This patchset adds atomic operations to the eBPF instruction set on > powerpc. The instructions that are added here can be summarised with > this list of kernel operations for ppc64: > > * atomic[64]_[fetch_]add > * atomic[64]_[fetch_]and > * atomic[64]_[fetch_]or > * atomic[64]_[fetch_]xor > * atomic[64]_xchg > * atomic[64]_cmpxchg > > and this list of kernel operations for ppc32: > > * atomic_[fetch_]add > * atomic_[fetch_]and > * atomic_[fetch_]or > * atomic_[fetch_]xor > * atomic_xchg > * atomic_cmpxchg Thanks for your work on this. For this series: Reviewed-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> > > The following are left out of scope for this effort: > > * 64 bit operations on ppc32. > * Explicit memory barriers, 16 and 8 bit operations on both ppc32 > & ppc64. The latter is a limitation of the eBPF instruction set itself today, rather than a powerpc-specific limitation. > > The first patch adds support for bitwsie atomic operations on ppc64. > The next patch adds fetch variant support for these instructions. The > third patch adds support for xchg and cmpxchg atomic operations on > ppc64. Patch #4 adds support for 32-bit atomic bitwise operations on > ppc32. patch #5 adds support for xchg and cmpxchg atomic operations > on ppc32. > > Validated these changes successfully with atomics test cases in > test_bpf testsuite and test_verifier & test_progs selftests. > With test_bpf testsuite: > > all 147 atomics related test cases (both 32-bit & 64-bit) JIT'ed > successfully on ppc64: > > test_bpf: Summary: 1026 PASSED, 0 FAILED, [1014/1014 JIT'ed] > > all 76 atomics related test cases (32-bit) JIT'ed successfully > on ppc32: > > test_bpf: Summary: 1027 PASSED, 0 FAILED, [915/1015 JIT'ed] Indeed. In my tests, before this series, with CONFIG_BPF_JIT_ALWAYS_ON=y: test_bpf: Summary: 894 PASSED, 132 FAILED, [882/882 JIT'ed] test_progs --name=atomic: Summary: 0/0 PASSED, 0 SKIPPED, 2 FAILED test_verifier 0 100: Summary: 46 PASSED, 151 SKIPPED, 0 FAILED With your patches: test_bpf: Summary: 1026 PASSED, 0 FAILED, [1014/1014 JIT'ed] test_progs --name=atomic: Summary: 2/7 PASSED, 0 SKIPPED, 0 FAILED test_verifier 0 100: Summary: 101 PASSED, 96 SKIPPED, 0 FAILED It is nice to see all the test_bpf tests pass again on ppc64le! Tested-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> (ppc64le) - Naveen
On Fri, 10 Jun 2022 21:25:47 +0530, Hari Bathini wrote: > This patchset adds atomic operations to the eBPF instruction set on > powerpc. The instructions that are added here can be summarised with > this list of kernel operations for ppc64: > > * atomic[64]_[fetch_]add > * atomic[64]_[fetch_]and > * atomic[64]_[fetch_]or > * atomic[64]_[fetch_]xor > * atomic[64]_xchg > * atomic[64]_cmpxchg > > [...] Applied to powerpc/next. [1/5] bpf ppc64: add support for BPF_ATOMIC bitwise operations https://git.kernel.org/powerpc/c/65112709115f48f16d7082bcabf173d08622e69f [2/5] bpf ppc64: add support for atomic fetch operations https://git.kernel.org/powerpc/c/dbe6e2456fb0263a5a961a92836d2cebdbca979c [3/5] bpf ppc64: Add instructions for atomic_[cmp]xchg https://git.kernel.org/powerpc/c/1e82dfaa7819f03f0b0022be7ca15bbc83090da1 [4/5] bpf ppc32: add support for BPF_ATOMIC bitwise operations https://git.kernel.org/powerpc/c/aea7ef8a82c0ea13ff20b65ff2edf8a38a17eda8 [5/5] bpf ppc32: Add instructions for atomic_[cmp]xchg https://git.kernel.org/powerpc/c/2d9206b227434912582049c49af1085660fa1e50 cheers