ACK/Cmnt: [SRU][J:linux][PATCH v2 0/4] Fix BPF JIT atomic operations on ARM64 and PPC64
Hui Wang
hui.wang at canonical.com
Wed Jul 1 03:16:15 UTC 2026
Don't forget to update SRU template to the tracking bug
Acked-by: Hui Wang <hui.wang at canonical.com>
On 7/1/26 01:52, Andrei Gherzan via kernel-team wrote:
> BugLink: https://bugs.launchpad.net/bugs/1955011
>
> SRU Justification:
>
> [ Impact ]
>
> The test_bpf kernel module selftest fails on ARM64 and PPC64 architectures.
> 74 out of 577 BPF tests fail with "FAIL to select_runtime err=-524" because
> the BPF JIT compilers are missing support for extended atomic operations.
>
> On ARM64, tests fail with:
> bpf_jit: unknown atomic op code 01
>
> On PPC64, tests fail with:
> eBPF filter atomic op code XX (@YY) unsupported
>
> The missing JIT support covers:
> - BPF_ADD | BPF_FETCH (atomic fetch-add)
> - BPF_AND | BPF_FETCH (atomic fetch-and)
> - BPF_OR | BPF_FETCH (atomic fetch-or)
> - BPF_XOR | BPF_FETCH (atomic fetch-xor)
> - BPF_XCHG (atomic exchange)
> - BPF_CMPXCHG (atomic compare-exchange)
>
> [ Test Plan ]
>
> 1. Boot a Jammy ARM64 or PPC64 instance with the patched kernel
> 2. Run the test_bpf module test:
> $ sudo modprobe test_bpf
> $ sudo dmesg | grep "test_bpf: Summary"
> $ sudo modprobe -r test_bpf
>
> Before fix:
> test_bpf: Summary: 503 PASSED, 74 FAILED, [491/491 JIT'ed]
>
> After fix:
> test_bpf: Summary: 577 PASSED, 0 FAILED, [565/565 JIT'ed]
>
> Verified on:
> - Jammy ARM64 (aarch64): 577 PASSED, 0 FAILED
> - Jammy PPC64 (ppc64le): 577 PASSED, 0 FAILED
>
> [ Where problems could occur ]
>
> The changes add new JIT code generation paths for atomic operations in
> arch/arm64/net/bpf_jit_comp.c and arch/powerpc/net/bpf_jit_comp64.c.
> Incorrect implementations could cause wrong results in BPF programs using
> these atomics. However, the code closely follows upstream (in mainline
> since v5.18/v6.0) and architecture-specific atomic primitives, with only
> minor context adjustments for Ubuntu Jammy.
>
> Andrei Gherzan (4):
> bpf, arm64: Support more atomic operations
> powerpc/bpf/64: add support for BPF_ATOMIC bitwise operations
> powerpc/bpf/64: add support for atomic fetch operations
> powerpc/bpf/64: Add instructions for atomic_[cmp]xchg
>
> arch/arm64/net/bpf_jit.h | 39 +++++-
> arch/arm64/net/bpf_jit_comp.c | 223 ++++++++++++++++++++++++------
> arch/powerpc/net/bpf_jit_comp64.c | 97 +++++++++----
> 3 files changed, 287 insertions(+), 72 deletions(-)
>
More information about the kernel-team
mailing list