2023-04-27 14:38:46

by Florent Revest

[permalink] [raw]
Subject: [PATCH bpf-next] selftests/bpf: Update the aarch64 tests deny list

Now that ftrace supports direct call on arm64, BPF tracing programs work
on that architecture. This fixes the vast majority of BPF selftests
except for:

- multi_kprobe programs which require fprobe, not available on arm64 yet
- tracing_struct which requires trampoline support to access struct args

This patch updates the list of BPF selftests which are known to fail so
the BPF CI can validate the tests which pass now.

Signed-off-by: Florent Revest <[email protected]>
---
tools/testing/selftests/bpf/DENYLIST.aarch64 | 81 +-------------------
1 file changed, 4 insertions(+), 77 deletions(-)

diff --git a/tools/testing/selftests/bpf/DENYLIST.aarch64 b/tools/testing/selftests/bpf/DENYLIST.aarch64
index 0a6837f97c32..4b6b18424140 100644
--- a/tools/testing/selftests/bpf/DENYLIST.aarch64
+++ b/tools/testing/selftests/bpf/DENYLIST.aarch64
@@ -1,33 +1,5 @@
-bloom_filter_map # libbpf: prog 'check_bloom': failed to attach: ERROR: strerror_r(-524)=22
-bpf_cookie/lsm
-bpf_cookie/multi_kprobe_attach_api
-bpf_cookie/multi_kprobe_link_api
-bpf_cookie/trampoline
-bpf_loop/check_callback_fn_stop # link unexpected error: -524
-bpf_loop/check_invalid_flags
-bpf_loop/check_nested_calls
-bpf_loop/check_non_constant_callback
-bpf_loop/check_nr_loops
-bpf_loop/check_null_callback_ctx
-bpf_loop/check_stack
-bpf_mod_race # bpf_mod_kfunc_race__attach unexpected error: -524 (errno 524)
-bpf_tcp_ca/dctcp_fallback
-btf_dump/btf_dump: var_data # find type id unexpected find type id: actual -2 < expected 0
-cgroup_hierarchical_stats # attach unexpected error: -524 (errno 524)
-d_path/basic # setup attach failed: -524
-deny_namespace # attach unexpected error: -524 (errno 524)
-fentry_fexit # fentry_attach unexpected error: -1 (errno 524)
-fentry_test # fentry_attach unexpected error: -1 (errno 524)
-fexit_sleep # fexit_attach fexit attach failed: -1
-fexit_stress # fexit attach unexpected fexit attach: actual -524 < expected 0
-fexit_test # fexit_attach unexpected error: -1 (errno 524)
-get_func_args_test # get_func_args_test__attach unexpected error: -524 (errno 524) (trampoline)
-get_func_ip_test # get_func_ip_test__attach unexpected error: -524 (errno 524) (trampoline)
-htab_update/reenter_update
-kfree_skb # attach fentry unexpected error: -524 (trampoline)
-kfunc_call/subprog # extern (var ksym) 'bpf_prog_active': not found in kernel BTF
-kfunc_call/subprog_lskel # skel unexpected error: -2
-kfunc_dynptr_param/dynptr_data_null # libbpf: prog 'dynptr_data_null': failed to attach: ERROR: strerror_r(-524)=22
+bpf_cookie/multi_kprobe_attach_api # kprobe_multi_link_api_subtest:FAIL:fentry_raw_skel_load unexpected error: -3
+bpf_cookie/multi_kprobe_link_api # kprobe_multi_link_api_subtest:FAIL:fentry_raw_skel_load unexpected error: -3
kprobe_multi_bench_attach # bpf_program__attach_kprobe_multi_opts unexpected error: -95
kprobe_multi_test/attach_api_addrs # bpf_program__attach_kprobe_multi_opts unexpected error: -95
kprobe_multi_test/attach_api_pattern # bpf_program__attach_kprobe_multi_opts unexpected error: -95
@@ -35,51 +7,6 @@ kprobe_multi_test/attach_api_syms # bpf_program__attach_kprobe_mu
kprobe_multi_test/bench_attach # bpf_program__attach_kprobe_multi_opts unexpected error: -95
kprobe_multi_test/link_api_addrs # link_fd unexpected link_fd: actual -95 < expected 0
kprobe_multi_test/link_api_syms # link_fd unexpected link_fd: actual -95 < expected 0
-kprobe_multi_test/skel_api # kprobe_multi__attach unexpected error: -524 (errno 524)
-ksyms_module/libbpf # 'bpf_testmod_ksym_percpu': not found in kernel BTF
-ksyms_module/lskel # test_ksyms_module_lskel__open_and_load unexpected error: -2
-libbpf_get_fd_by_id_opts # test_libbpf_get_fd_by_id_opts__attach unexpected error: -524 (errno 524)
-linked_list
-lookup_key # test_lookup_key__attach unexpected error: -524 (errno 524)
-lru_bug # lru_bug__attach unexpected error: -524 (errno 524)
-modify_return # modify_return__attach failed unexpected error: -524 (errno 524)
-module_attach # skel_attach skeleton attach failed: -524
-module_fentry_shadow # bpf_link_create unexpected bpf_link_create: actual -524 < expected 0
-mptcp/base # run_test mptcp unexpected error: -524 (errno 524)
-netcnt # packets unexpected packets: actual 10001 != expected 10000
-rcu_read_lock # failed to attach: ERROR: strerror_r(-524)=22
-recursion # skel_attach unexpected error: -524 (errno 524)
-ringbuf # skel_attach skeleton attachment failed: -1
-setget_sockopt # attach_cgroup unexpected error: -524
-sk_storage_tracing # test_sk_storage_tracing__attach unexpected error: -524 (errno 524)
-skc_to_unix_sock # could not attach BPF object unexpected error: -524 (errno 524)
-socket_cookie # prog_attach unexpected error: -524
-stacktrace_build_id # compare_stack_ips stackmap vs. stack_amap err -1 errno 2
-task_local_storage/exit_creds # skel_attach unexpected error: -524 (errno 524)
-task_local_storage/recursion # skel_attach unexpected error: -524 (errno 524)
-test_bprm_opts # attach attach failed: -524
-test_ima # attach attach failed: -524
-test_local_storage # attach lsm attach failed: -524
-test_lsm # test_lsm_first_attach unexpected error: -524 (errno 524)
-test_overhead # attach_fentry unexpected error: -524
-timer # timer unexpected error: -524 (errno 524)
-timer_crash # timer_crash__attach unexpected error: -524 (errno 524)
-timer_mim # timer_mim unexpected error: -524 (errno 524)
-trace_printk # trace_printk__attach unexpected error: -1 (errno 524)
-trace_vprintk # trace_vprintk__attach unexpected error: -1 (errno 524)
+kprobe_multi_test/skel_api # libbpf: failed to load BPF skeleton 'kprobe_multi': -3
+module_attach # prog 'kprobe_multi': failed to auto-attach: -95
tracing_struct # tracing_struct__attach unexpected error: -524 (errno 524)
-trampoline_count # attach_prog unexpected error: -524
-unpriv_bpf_disabled # skel_attach unexpected error: -524 (errno 524)
-user_ringbuf/test_user_ringbuf_post_misaligned # misaligned_skel unexpected error: -524 (errno 524)
-user_ringbuf/test_user_ringbuf_post_producer_wrong_offset
-user_ringbuf/test_user_ringbuf_post_larger_than_ringbuf_sz
-user_ringbuf/test_user_ringbuf_basic # ringbuf_basic_skel unexpected error: -524 (errno 524)
-user_ringbuf/test_user_ringbuf_sample_full_ring_buffer
-user_ringbuf/test_user_ringbuf_post_alignment_autoadjust
-user_ringbuf/test_user_ringbuf_overfill
-user_ringbuf/test_user_ringbuf_discards_properly_ignored
-user_ringbuf/test_user_ringbuf_loop
-user_ringbuf/test_user_ringbuf_msg_protocol
-user_ringbuf/test_user_ringbuf_blocking_reserve
-verify_pkcs7_sig # test_verify_pkcs7_sig__attach unexpected error: -524 (errno 524)
-vmlinux # skel_attach skeleton attach failed: -524
--
2.40.1.495.gc816e09b53d-goog


2023-04-27 15:07:39

by Florent Revest

[permalink] [raw]
Subject: Re: [PATCH bpf-next] selftests/bpf: Update the aarch64 tests deny list

On Thu, Apr 27, 2023 at 4:32 PM Florent Revest <[email protected]> wrote:
>
> This patch updates the list of BPF selftests which are known to fail so
> the BPF CI can validate the tests which pass now.

Note: I tested this denylist a few months back by sending a manual PR
to https://github.com/kernel-patches/bpf.
At the time, it worked
https://github.com/kernel-patches/bpf/actions/runs/4106542133/jobs/7085514761
(even though there seemed to be a known flake in the gcc variant but
unrelated to the new arch support)

Every time I wanted to have the CI run on my PRs, I had to annoy Manu
by email (I wouldn't have the rights to trigger the CI by myself
otherwise). So I haven't tested this *actual* patch rebased on the
current CI before sending it to the list. (e.g. the
module_fentry_shadow test has been added since then and I just assumed
it would pass in CI like the rest)

My understanding is that this patch should soon be picked up by the
testing bot and we can use that CI run to check that everything works
as intended. Let's wait for a CI green light before merging this! :)
If there are errors I'll send a v2

2023-04-27 19:02:28

by Stanislav Fomichev

[permalink] [raw]
Subject: Re: [PATCH bpf-next] selftests/bpf: Update the aarch64 tests deny list

On 04/27, Florent Revest wrote:
> On Thu, Apr 27, 2023 at 4:32 PM Florent Revest <[email protected]> wrote:
> >
> > This patch updates the list of BPF selftests which are known to fail so
> > the BPF CI can validate the tests which pass now.
>
> Note: I tested this denylist a few months back by sending a manual PR
> to https://github.com/kernel-patches/bpf.
> At the time, it worked
> https://github.com/kernel-patches/bpf/actions/runs/4106542133/jobs/7085514761
> (even though there seemed to be a known flake in the gcc variant but
> unrelated to the new arch support)
>
> Every time I wanted to have the CI run on my PRs, I had to annoy Manu
> by email (I wouldn't have the rights to trigger the CI by myself
> otherwise). So I haven't tested this *actual* patch rebased on the
> current CI before sending it to the list. (e.g. the
> module_fentry_shadow test has been added since then and I just assumed
> it would pass in CI like the rest)
>
> My understanding is that this patch should soon be picked up by the
> testing bot and we can use that CI run to check that everything works
> as intended. Let's wait for a CI green light before merging this! :)
> If there are errors I'll send a v2

Looks green now:

Acked-by: Stanislav Fomichev <[email protected]>

https://github.com/kernel-patches/bpf/actions/runs/4822595792/jobs/8590732278

2023-04-27 20:13:24

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH bpf-next] selftests/bpf: Update the aarch64 tests deny list

Hello:

This patch was applied to bpf/bpf-next.git (master)
by Daniel Borkmann <[email protected]>:

On Thu, 27 Apr 2023 16:32:07 +0200 you wrote:
> Now that ftrace supports direct call on arm64, BPF tracing programs work
> on that architecture. This fixes the vast majority of BPF selftests
> except for:
>
> - multi_kprobe programs which require fprobe, not available on arm64 yet
> - tracing_struct which requires trampoline support to access struct args
>
> [...]

Here is the summary with links:
- [bpf-next] selftests/bpf: Update the aarch64 tests deny list
https://git.kernel.org/bpf/bpf-next/c/a46441192084

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html


2023-04-27 20:16:45

by Daniel Borkmann

[permalink] [raw]
Subject: Re: [PATCH bpf-next] selftests/bpf: Update the aarch64 tests deny list

On 4/27/23 8:56 PM, Stanislav Fomichev wrote:
> On 04/27, Florent Revest wrote:
>> On Thu, Apr 27, 2023 at 4:32 PM Florent Revest <[email protected]> wrote:
>>>
>>> This patch updates the list of BPF selftests which are known to fail so
>>> the BPF CI can validate the tests which pass now.
>>
>> Note: I tested this denylist a few months back by sending a manual PR
>> to https://github.com/kernel-patches/bpf.
>> At the time, it worked
>> https://github.com/kernel-patches/bpf/actions/runs/4106542133/jobs/7085514761
>> (even though there seemed to be a known flake in the gcc variant but
>> unrelated to the new arch support)
>>
>> Every time I wanted to have the CI run on my PRs, I had to annoy Manu
>> by email (I wouldn't have the rights to trigger the CI by myself
>> otherwise). So I haven't tested this *actual* patch rebased on the
>> current CI before sending it to the list. (e.g. the
>> module_fentry_shadow test has been added since then and I just assumed
>> it would pass in CI like the rest)
>>
>> My understanding is that this patch should soon be picked up by the
>> testing bot and we can use that CI run to check that everything works
>> as intended. Let's wait for a CI green light before merging this! :)
>> If there are errors I'll send a v2
>
> Looks green now:
>
> Acked-by: Stanislav Fomichev <[email protected]>
>
> https://github.com/kernel-patches/bpf/actions/runs/4822595792/jobs/8590732278

That's awesome to see ... big batch of tests which this unlocks!