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@xxxxxxxxxxxxxxxxxx>
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@xxxxxxxxxxxxxxxxxx> (ppc64le) - Naveen