From: "Toke Høiland-Jørgensen" <toke@redhat.com>
To: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>,
Alexei Starovoitov <ast@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>,
Martin KaFai Lau <kafai@fb.com>, Song Liu <songliubraving@fb.com>,
Yonghong Song <yhs@fb.com>, Andrii Nakryiko <andriin@fb.com>,
John Fastabend <john.fastabend@gmail.com>,
Jiri Olsa <jolsa@redhat.com>,
Eelco Chaudron <echaudro@redhat.com>,
KP Singh <kpsingh@chromium.org>,
Networking <netdev@vger.kernel.org>, bpf <bpf@vger.kernel.org>
Subject: Re: [PATCH bpf-next v8 04/11] bpf: move prog->aux->linked_prog and trampoline into bpf_link on attach
Date: Thu, 24 Sep 2020 23:24:35 +0200 [thread overview]
Message-ID: <87zh5ec1gs.fsf@toke.dk> (raw)
In-Reply-To: <CAEf4BzaBvvZdgekg13T3e4uj5Q9Rf1RTFP__ZPsU-NMp2fVXxw@mail.gmail.com>
Andrii Nakryiko <andrii.nakryiko@gmail.com> writes:
> On Thu, Sep 24, 2020 at 7:36 AM Toke Høiland-Jørgensen <toke@redhat.com> wrote:
>>
>> Alexei Starovoitov <alexei.starovoitov@gmail.com> writes:
>>
>> > On Tue, Sep 22, 2020 at 08:38:38PM +0200, Toke Høiland-Jørgensen wrote:
>> >> @@ -746,7 +748,9 @@ struct bpf_prog_aux {
>> >> u32 max_rdonly_access;
>> >> u32 max_rdwr_access;
>> >> const struct bpf_ctx_arg_aux *ctx_arg_info;
>> >> - struct bpf_prog *linked_prog;
>> >
>> > This change breaks bpf_preload and selftests test_bpffs.
>> > There is really no excuse not to run the selftests.
>>
>> I did run the tests, and saw no more breakages after applying my patches
>> than before. Which didn't catch this, because this is the current state
>> of bpf-next selftests:
>>
>> # ./test_progs | grep FAIL
>> test_lookup_update:FAIL:map1_leak inner_map1 leaked!
>> #10/1 lookup_update:FAIL
>> #10 btf_map_in_map:FAIL
>
> this failure suggests you are not running the latest kernel, btw
I did see that discussion (about the reverted patch), and figured that
was the case. So I did a 'git pull' just before testing, and still got
this.
$ git describe HEAD
v5.9-rc3-2681-g182bf3f3ddb6
so any other ideas? :)
>> configure_stack:FAIL:BPF load failed; run with -vv for more info
>> #72 sk_assign:FAIL
(and what about this one, now that I'm asking?)
>> test_test_bpffs:FAIL:bpffs test failed 255
>> #96 test_bpffs:FAIL
>> Summary: 113/844 PASSED, 14 SKIPPED, 4 FAILED
>>
>> The test_bpffs failure happens because the umh is missing from the
>> .config; and when I tried to fix this I ended up with:
>
> yeah, seems like selftests/bpf/config needs to be updated to mention
> UMH-related config values:
>
> CONFIG_BPF_PRELOAD=y
> CONFIG_BPF_PRELOAD_UMD=m|y
>
> with that test_bpffs shouldn't fail on master
Yup, did get that far, and got the below...
>>
>> [..]
>> CC [M] kernel/bpf/preload/bpf_preload_kern.o
>>
>> Auto-detecting system features:
>> ... libelf: [ OFF ]
>> ... zlib: [ OFF ]
>> ... bpf: [ OFF ]
>>
>> No libelf found
>
> might be worthwhile to look into why detection fails, might be
> something with Makefiles or your environment
I think it's actually another instance of the bug I fixed with this
commit:
1eb832ac2dee ("tools/bpf: build: Make sure resolve_btfids cleans up after itself")
which I finally remembered after being tickled by the error message
seeming familiar. And indeed, manually removing the 'feature' directory
in kernel/bpf/preload seems to fix the issue, so I'm planning to go fix
that Makefile as well...
>> ...which I just put down to random breakage, turned off the umh and
>> continued on my way (ignoring the failed test). Until you wrote this I
>> did not suspect this would be something I needed to pay attention to.
>> Now that you did mention it, I'll obviously go investigate some more, my
>> point is just that in this instance it's not accurate to assume I just
>> didn't run the tests... :)
>
> Don't just assume some tests are always broken. Either ask or
> investigate on your own. Such cases do happen from time to time while
> we wait for a fix in bpf to get merged into bpf-next or vice versa,
> but it's rare. We now have two different CI systems running selftests
> all the time, in addition to running them locally as well, so any
> permanent test failure is very apparent and annoying, so we fix them
> quickly. So, when in doubt - ask or fix.
That's good to know; and I do think the situation has improved
immensely. There was a time when the selftests broke every other week
(or so it felt, at least), and I guess I'm still a bit scarred from
that.
One thing that would be really useful would be to have a 'reference
config' or something like that. Missing config options are a common
reason for test failures (as we have just seen above), and it's not
always obvious which option is missing for each test. Even something
like grepping .config for BPF doesn't catch everything. If you already
have a CI running, just pointing to that config would be a good start
(especially if it has history). In an ideal world I think it would be
great if each test could detect whether the kernel has the right config
set for its features and abort with a clear error message if it isn't...
>> > I think I will just start marking patches as changes-requested when I see that
>> > they break tests without replying and without reviewing.
>> > Please respect reviewer's time.
>>
>> That is completely fine if the tests are working in the first place. And
>
> They are and hopefully moving forward that would be your assumption.
Sure, with the exception of the two tests still failing that I mentioned
above. Which I'm hoping you can help figure out the reason for :)
-Toke
next prev parent reply other threads:[~2020-09-24 21:24 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-22 18:38 [PATCH bpf-next v8 00/11] bpf: Support multi-attach for freplace programs Toke Høiland-Jørgensen
2020-09-22 18:38 ` [PATCH bpf-next v8 01/11] bpf: disallow attaching modify_return tracing functions to other BPF programs Toke Høiland-Jørgensen
2020-09-23 17:25 ` Andrii Nakryiko
2020-09-22 18:38 ` [PATCH bpf-next v8 02/11] bpf: change logging calls from verbose() to bpf_log() and use log pointer Toke Høiland-Jørgensen
2020-09-22 18:38 ` [PATCH bpf-next v8 03/11] bpf: verifier: refactor check_attach_btf_id() Toke Høiland-Jørgensen
2020-09-23 23:54 ` Alexei Starovoitov
2020-09-22 18:38 ` [PATCH bpf-next v8 04/11] bpf: move prog->aux->linked_prog and trampoline into bpf_link on attach Toke Høiland-Jørgensen
2020-09-24 0:14 ` Alexei Starovoitov
2020-09-24 14:34 ` Toke Høiland-Jørgensen
2020-09-24 15:43 ` Alexei Starovoitov
2020-09-24 21:30 ` Toke Høiland-Jørgensen
2020-09-24 20:40 ` Andrii Nakryiko
2020-09-24 21:24 ` Toke Høiland-Jørgensen [this message]
2020-09-24 21:59 ` Andrii Nakryiko
2020-09-24 22:20 ` Toke Høiland-Jørgensen
2020-09-24 22:37 ` Andrii Nakryiko
2020-09-24 23:13 ` Toke Høiland-Jørgensen
2020-09-24 21:59 ` Toke Høiland-Jørgensen
2020-09-25 15:45 ` Alexei Starovoitov
2020-09-25 20:57 ` Toke Høiland-Jørgensen
2020-09-22 18:38 ` [PATCH bpf-next v8 05/11] bpf: support attaching freplace programs to multiple attach points Toke Høiland-Jørgensen
2020-09-24 1:04 ` Alexei Starovoitov
2020-09-22 18:38 ` [PATCH bpf-next v8 06/11] bpf: Fix context type resolving for extension programs Toke Høiland-Jørgensen
2020-09-22 18:38 ` [PATCH bpf-next v8 07/11] libbpf: add support for freplace attachment in bpf_link_create Toke Høiland-Jørgensen
2020-09-23 17:28 ` Andrii Nakryiko
2020-09-23 20:58 ` Toke Høiland-Jørgensen
2020-09-22 18:38 ` [PATCH bpf-next v8 08/11] selftests: add test for multiple attachments of freplace program Toke Høiland-Jørgensen
2020-09-22 18:38 ` [PATCH bpf-next v8 09/11] selftests/bpf: Adding test for arg dereference in extension trace Toke Høiland-Jørgensen
2020-09-22 18:38 ` [PATCH bpf-next v8 10/11] selftests: Add selftest for disallowing modify_return attachment to freplace Toke Høiland-Jørgensen
2020-09-22 18:38 ` [PATCH bpf-next v8 11/11] selftests: Remove fmod_ret from benchmarks and test_overhead Toke Høiland-Jørgensen
2020-09-23 17:40 ` Andrii Nakryiko
2020-09-24 1:08 ` Alexei Starovoitov
2020-09-24 1:38 ` Andrii Nakryiko
2020-09-24 23:19 ` Toke Høiland-Jørgensen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87zh5ec1gs.fsf@toke.dk \
--to=toke@redhat.com \
--cc=alexei.starovoitov@gmail.com \
--cc=andrii.nakryiko@gmail.com \
--cc=andriin@fb.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=echaudro@redhat.com \
--cc=john.fastabend@gmail.com \
--cc=jolsa@redhat.com \
--cc=kafai@fb.com \
--cc=kpsingh@chromium.org \
--cc=netdev@vger.kernel.org \
--cc=songliubraving@fb.com \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).