Thread (21 messages) flat view 21 messages, 7 authors, 2020-02-20

Re: Kernel 5.5.4 build fail for BPF-selftests with latest LLVM

From: Daniel Díaz <hidden>
Date: 2020-02-19 22:00:01
Also in: bpf, lkml

Hello!

On Wed, 19 Feb 2020 at 14:06, Jesper Dangaard Brouer [off-list ref] wrote:
On Wed, 19 Feb 2020 10:38:45 -0800
Andrii Nakryiko [off-list ref] wrote:
quoted
On Wed, Feb 19, 2020 at 10:29 AM Jesper Dangaard Brouer
[off-list ref] wrote:
quoted
On Wed, 19 Feb 2020 09:38:50 -0800
Andrii Nakryiko [off-list ref] wrote:
quoted
On Wed, Feb 19, 2020 at 9:04 AM Jesper Dangaard Brouer
[off-list ref] wrote:
quoted
On Wed, 19 Feb 2020 08:41:27 -0800
Alexei Starovoitov [off-list ref] wrote:
quoted
On Wed, Feb 19, 2020 at 4:30 AM Jesper Dangaard Brouer
[off-list ref] wrote:
quoted
I'm willing to help out, such that we can do either version or feature
detection, to either skip compiling specific test programs or at least
give users a proper warning of they are using a too "old" LLVM version.
...
quoted
progs/test_core_reloc_bitfields_probed.c:47:13: error: use of unknown builtin '__builtin_preserve_field_info' [-Wimplicit-function-declaration]
        out->ub1 = BPF_CORE_READ_BITFIELD_PROBED(in, ub1);
imo this is proper warning message already.
This is an error, not a warning.  The build breaks as the make process stops.
Latest Clang was a requirement for building and running all selftests
for a long time now. There were few previous discussions on mailing
list about this and each time the conclusion was the same: latest
Clang is a requirement for BPF selftests.
The latest Clang is 9.0.1, and it doesn't build with that.
Latest as in "latest built from sources".
When I download a specific kernel release, how can I know what LLVM
git-hash or version I need (to use BPF-selftests)?

Do you think it is reasonable to require end-users to compile their own
bleeding edge version of LLVM, to use BPF-selftests?

I do hope that some end-users of BPF-selftests will be CI-systems.
That also implies that CI-system maintainers need to constantly do
"latest built from sources" of LLVM git-tree to keep up.  Is that a
reasonable requirement when buying a CI-system in the cloud?
We [1] are end users of kselftests and many other test suites [2]. We
run all of our testing on every git-push on linux-stable-rc, mainline,
and linux-next -- approximately 1 million tests per week. We have a
dedicated engineering team looking after this CI infrastructure and
test results, and as such, I can wholeheartedly echo Jesper's
sentiment here: We would really like to help kernel maintainers and
developers by automatically testing their code in real hardware, but
the BPF kselftests are difficult to work with from a CI perspective.
We have caught and reported [3] many [4] build [5] failures [6] in the
past for libbpf/Perf, but building is just one of the pieces. We are
unable to run the entire BPF kselftests because only a part of the
code builds, so our testing is very limited there.

We hope that this situation can be improved and that our and everyone
else's automated testing can help you guys too. For this to work out,
we need some help.

[1] https://lkft.linaro.org/
[2] https://www.youtube.com/watch?v=R3H9fPhPf54&t=1m26s
[3] https://lore.kernel.org/bpf/CA+G9fYtAQGwf=OoEvHwbJpitcfhpfhy-ar+6FRrWC_-ti7sUTg@mail.gmail.com/ (local)
[4] https://lore.kernel.org/stable/CA+G9fYtxRoK6D1_oMf9zQj8MW0JtPdphDDO1NHcYQcoFNL5pjw@mail.gmail.com/ (local)
[5] https://lore.kernel.org/bpf/CA+G9fYssgDcBkiNGSV7BmjE4Tj1j1_fa4VTJFv3N=2FHzewQLg@mail.gmail.com/ (local)
[6] https://lore.kernel.org/bpf/CA+G9fYsK8zn3jqF=Wz6=8BBx4i1JTkv2h-LCbjE11UJkcz_NEA@mail.gmail.com/ (local)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help