Re: [PATCH bpf-next 6/7] selftests/bpf: Enable __arena argument tests on arm64
Xu Kuohai <[email protected]>
| Newsgroups | org.kernel.vger.bpf |
|---|---|
| Message-ID | <[email protected]> |
On 8/11/2026 3:09 AM, Puranjay Mohan wrote: > The arena kfunc and struct_ops argument tests were restricted to x86-64 > because it was the only JIT that implemented the conversions. arm64 does > now, so let them run there too: tag every program in arena_kfunc.c with > __arch_arm64 in addition to __arch_x86_64, and widen the __x86_64__ > guards in the struct_ops arena test. > > Without this the tests report SKIP on arm64 rather than exercising the > newly added JIT support. > > Signed-off-by: Puranjay Mohan <[email protected]> > --- > .../selftests/bpf/prog_tests/test_struct_ops_arena.c | 10 +++++----- > tools/testing/selftests/bpf/progs/arena_kfunc.c | 9 +++++++++ > 2 files changed, 14 insertions(+), 5 deletions(-) > > diff --git a/tools/testing/selftests/bpf/prog_tests/test_struct_ops_arena.c b/tools/testing/selftests/bpf/prog_tests/test_struct_ops_arena.c > index 940ec2cda0d52..7f9f54ba3fbe5 100644 > --- a/tools/testing/selftests/bpf/prog_tests/test_struct_ops_arena.c > +++ b/tools/testing/selftests/bpf/prog_tests/test_struct_ops_arena.c > @@ -6,7 +6,7 @@ > #include "struct_ops_arena_attach.skel.h" > #include "struct_ops_arena_fail.skel.h" > > -#if defined(__x86_64__) > +#if defined(__x86_64__) || defined(__aarch64__) > /* > * Attach callbacks with __arena and __arena__nullable arguments and drive > * them through the bpf_testmod_ops3_call_test_arena*() kfuncs. > @@ -111,11 +111,11 @@ static void arena_arg_attach(void) > void serial_test_struct_ops_arena(void) > { > /* > - * Arena struct_ops arguments need JIT support, currently x86-64 only. > - * Elsewhere verification fails with "JIT does not support arena > - * arguments", so the programs cannot even load. > + * Arena struct_ops arguments need JIT support, currently x86-64 and > + * arm64 only. Elsewhere verification fails with "JIT does not support > + * arena arguments", so the programs cannot even load. > */ > -#if defined(__x86_64__) > +#if defined(__x86_64__) || defined(__aarch64__) > if (test__start_subtest("arena_arg")) > arena_arg(); > if (test__start_subtest("arena_arg_fail")) > diff --git a/tools/testing/selftests/bpf/progs/arena_kfunc.c b/tools/testing/selftests/bpf/progs/arena_kfunc.c > index cdcea889da586..bf0d304e0e59c 100644 > --- a/tools/testing/selftests/bpf/progs/arena_kfunc.c > +++ b/tools/testing/selftests/bpf/progs/arena_kfunc.c > @@ -27,6 +27,7 @@ volatile u64 stash; > > SEC("syscall") > __arch_x86_64 > +__arch_arm64 > __success __retval(0) > int arena_arg_forms(void *ctx) > { > @@ -70,6 +71,7 @@ int arena_arg_forms(void *ctx) > */ > SEC("syscall") > __arch_x86_64 > +__arch_arm64 > __success __retval(0) > int arena_arg_rebase(void *ctx) > { > @@ -111,6 +113,7 @@ int arena_arg_rebase(void *ctx) > > SEC("syscall") > __arch_x86_64 > +__arch_arm64 > __success __retval(0) > int arena_args5(void *ctx) > { > @@ -142,6 +145,7 @@ int arena_args5(void *ctx) > > SEC("syscall") > __arch_x86_64 > +__arch_arm64 > __success __retval(0) > int arena_arg_mixed(void *ctx) > { > @@ -169,6 +173,7 @@ int arena_arg_mixed(void *ctx) > /* kernel-side faults on unpopulated pages recover via the scratch page */ > SEC("syscall") > __arch_x86_64 > +__arch_arm64 > __success __retval(0) > int arena_arg_unpopulated(void *ctx) > { > @@ -189,6 +194,7 @@ int arena_arg_unpopulated(void *ctx) > > SEC("syscall") > __arch_x86_64 > +__arch_arm64 > __failure __msg("arena pointer requires a program with an associated arena") > int arena_arg_no_arena(void *ctx) > { > @@ -198,6 +204,7 @@ int arena_arg_no_arena(void *ctx) > > SEC("syscall") > __arch_x86_64 > +__arch_arm64 > __failure __msg("is not a pointer to arena or scalar") > int arena_arg_bad_reg(void *ctx) > { > @@ -213,6 +220,7 @@ int arena_arg_bad_reg(void *ctx) > defined(__BPF_FEATURE_STACK_ARGUMENT) > SEC("syscall") > __arch_x86_64 > +__arch_arm64 > __failure __msg("arena pointer cannot be a stack argument") > int arena_arg_stack(void *ctx) > { > @@ -223,6 +231,7 @@ int arena_arg_stack(void *ctx) > #else > SEC("syscall") > __arch_x86_64 > +__arch_arm64 > __description("arena_arg_stack: not supported, dummy test") > __success > int arena_arg_stack(void *ctx) Acked-by: Xu Kuohai <[email protected]>