[PATCH v2 0/4] powerpc64/bpf: Add support for instruction array and indirect jump

Venkat venkat88 at linux.ibm.com
Sat Feb 28 02:28:29 AEDT 2026



> On 27 Feb 2026, at 7:13 AM, adubey at linux.ibm.com wrote:
> 
> From: Abhishek Dubey <adubey at linux.ibm.com>
> 
> The first 2 patch enable support for instruction array. Now, the 
> instruction offset map maintain the mapping:
> original inst -> xlated inst -> jited inst
> 
> The last two patch enable support for indirect jump. Any eligile
> register can store jump target address for control flow to jump.
> 
> The features will be enabled on ppc32 in a separate series.
> 
> The patch series is rebased over:
> https://lore.kernel.org/bpf/20260226031324.17352-1-adubey@linux.ibm.com
> 
> All selftest related to instruction array and indirect jump
> are passing.
> 
> ./test_progs-cpuv4 -n 20
> #21/1Â Â Â  bpf_insn_array/one2one:OK
> #21/2Â Â Â  bpf_insn_array/simple:OK
> #21/3Â Â Â  bpf_insn_array/deletions:OK
> #21/4Â Â Â  bpf_insn_array/deletions-with-functions:OK
> #21/5Â Â Â  bpf_insn_array/blindness:OK
> #21/6Â Â Â  bpf_insn_array/incorrect-index:OK
> #21/7Â Â Â  bpf_insn_array/load-unfrozen-map:OK
> #21/8Â Â Â  bpf_insn_array/no-map-reuse:OK
> #21/9Â Â Â  bpf_insn_array/bpf-side-ops:OK
> #21Â Â Â Â Â  bpf_insn_array:OK
> Summary: 1/9 PASSED, 0 SKIPPED, 0 FAILED
> 
> ./test_progs-cpuv4 -n 21  
> #20/1Â Â Â  bpf_gotox/one-switch:OK
> #20/2Â Â Â  bpf_gotox/one-switch-non-zero-sec-offset:OK
> #20/3Â Â Â  bpf_gotox/two-switches:OK
> #20/4Â Â Â  bpf_gotox/big-jump-table:OK
> #20/5Â Â Â  bpf_gotox/static-global:OK
> #20/6Â Â Â  bpf_gotox/nonstatic-global:OK
> #20/7Â Â Â  bpf_gotox/other-sec:OK
> #20/8Â Â Â  bpf_gotox/static-global-other-sec:OK
> #20/9Â Â Â  bpf_gotox/nonstatic-global-other-sec:OK
> #20/10Â Â  bpf_gotox/one-jump-two-maps:OK
> #20/11Â Â  bpf_gotox/one-map-two-jumps:OK
> #20Â Â Â Â Â  bpf_gotox:OK
> Summary: 1/11 PASSED, 0 SKIPPED, 0 FAILED
> 
> v1->v2:
> Handle image offset for ABIv1
> 
> [v1]: https://lore.kernel.org/bpf/20260225010950.20218-1-adubey@linux.ibm.com
> 
> Abhishek Dubey (4):
> powerpc64/bpf: Add support for instruction array
> selftest/bpf: Enable instruction array test for powerpc64
> powerpc64/bpf: Add support for indirect jump
> selftest/bpf: Enable gotox tests for powerpc64
> 
> arch/powerpc/net/bpf_jit_comp.c                        | 10 ++++++++++
> arch/powerpc/net/bpf_jit_comp64.c                      |  8 ++++++++
> .../testing/selftests/bpf/prog_tests/bpf_insn_array.c  |  2 +-
> tools/testing/selftests/bpf/progs/verifier_gotox.c     |  4 ++--
> 4 files changed, 21 insertions(+), 3 deletions(-)
> 
> -- 
> 2.52.0

Tested-by: Venkat Rao Bagalkote <venkat88 at linux.ibm.com>

Tested this series and below are the results.

./test_progs-cpuv4 -n 21 
#21/1    bpf_insn_array/one2one:OK
#21/2    bpf_insn_array/simple:OK
#21/3    bpf_insn_array/deletions:OK
#21/4    bpf_insn_array/deletions-with-functions:OK
#21/5    bpf_insn_array/blindness:OK
#21/6    bpf_insn_array/incorrect-index:OK
#21/7    bpf_insn_array/load-unfrozen-map:OK
#21/8    bpf_insn_array/no-map-reuse:OK
#21/9    bpf_insn_array/bpf-side-ops:OK
#21      bpf_insn_array:OK
Summary: 1/9 PASSED, 0 SKIPPED, 0 FAILED


./test_progs-cpuv4 -n 20
#20/1    bpf_gotox/one-switch:SKIP
#20/2    bpf_gotox/one-switch-non-zero-sec-offset:SKIP
#20/3    bpf_gotox/two-switches:SKIP
#20/4    bpf_gotox/big-jump-table:SKIP
#20/5    bpf_gotox/static-global:SKIP
#20/6    bpf_gotox/nonstatic-global:SKIP
#20/7    bpf_gotox/other-sec:SKIP
#20/8    bpf_gotox/static-global-other-sec:SKIP
#20/9    bpf_gotox/nonstatic-global-other-sec:SKIP
#20/10   bpf_gotox/one-jump-two-maps:SKIP
#20/11   bpf_gotox/one-map-two-jumps:SKIP
#20/12   bpf_gotox/check-ldimm64-off:SKIP
#20/13   bpf_gotox/check-ldimm64-off-gotox:SKIP
#20      bpf_gotox:SKIP
Summary: 1/0 PASSED, 13 SKIPPED, 0 FAILED

Regards,
Venkat.



More information about the Linuxppc-dev mailing list