Message ID | 20220512074546.231616-1-hbathini@linux.ibm.com (mailing list archive) |
---|---|
Headers | show |
Series | Atomics support for eBPF on powerpc | expand |
On 5/12/22 9:45 AM, 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 > > 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 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. Thanks for adding these, Hari! I presume they'll get routed via Michael, right? One thing that may be worth adding to the commit log as well is the test result from test_bpf.ko given it has an extensive suite around atomics useful for testing corner cases in JITs. > Hari Bathini (5): > bpf ppc64: add support for BPF_ATOMIC bitwise operations > bpf ppc64: add support for atomic fetch operations > bpf ppc64: Add instructions for atomic_[cmp]xchg > bpf ppc32: add support for BPF_ATOMIC bitwise operations > bpf ppc32: Add instructions for atomic_[cmp]xchg > > arch/powerpc/net/bpf_jit_comp32.c | 62 +++++++++++++++++----- > arch/powerpc/net/bpf_jit_comp64.c | 87 +++++++++++++++++++++---------- > 2 files changed, 108 insertions(+), 41 deletions(-) >
Daniel Borkmann <daniel@iogearbox.net> writes: > On 5/12/22 9:45 AM, 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 >> >> 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 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. > > Thanks for adding these, Hari! I presume they'll get routed via Michael, > right? Yeah I'm happy to take them if they are OK by you. I do wonder if the BPF jit code should eventually move out of arch/, but that's a discussion for another day. > One thing that may be worth adding to the commit log as well is > the test result from test_bpf.ko given it has an extensive suite around > atomics useful for testing corner cases in JITs. Yes please, test results make me feel much better about merging things :) cheers