tools/bpf: selftests : Explain bpf_iter test failures with llvm 10.0.0
Commit 6879c042e1
("tools/bpf: selftests: Add bpf_iter selftests")
added self tests for bpf_iter feature. But two subtests
ipv6_route and netlink needs llvm latest 10.x release branch
or trunk due to a bug in llvm BPF backend. This patch added
the file README.rst to document these two failures
so people using llvm 10.0.0 can be aware of them.
Suggested-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20200513180215.2949237-1-yhs@fb.com
This commit is contained in:
parent
0aa0372f92
commit
99aaf53e2f
|
@ -0,0 +1,43 @@
|
|||
==================
|
||||
BPF Selftest Notes
|
||||
==================
|
||||
|
||||
Additional information about selftest failures are
|
||||
documented here.
|
||||
|
||||
bpf_iter test failures with clang/llvm 10.0.0
|
||||
=============================================
|
||||
|
||||
With clang/llvm 10.0.0, the following two bpf_iter tests failed:
|
||||
* ``bpf_iter/ipv6_route``
|
||||
* ``bpf_iter/netlink``
|
||||
|
||||
The symptom for ``bpf_iter/ipv6_route`` looks like
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
2: (79) r8 = *(u64 *)(r1 +8)
|
||||
...
|
||||
14: (bf) r2 = r8
|
||||
15: (0f) r2 += r1
|
||||
; BPF_SEQ_PRINTF(seq, "%pi6 %02x ", &rt->fib6_dst.addr, rt->fib6_dst.plen);
|
||||
16: (7b) *(u64 *)(r8 +64) = r2
|
||||
only read is supported
|
||||
|
||||
The symptom for ``bpf_iter/netlink`` looks like
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
; struct netlink_sock *nlk = ctx->sk;
|
||||
2: (79) r7 = *(u64 *)(r1 +8)
|
||||
...
|
||||
15: (bf) r2 = r7
|
||||
16: (0f) r2 += r1
|
||||
; BPF_SEQ_PRINTF(seq, "%pK %-3d ", s, s->sk_protocol);
|
||||
17: (7b) *(u64 *)(r7 +0) = r2
|
||||
only read is supported
|
||||
|
||||
This is due to a llvm BPF backend bug. The fix
|
||||
https://reviews.llvm.org/D78466
|
||||
has been pushed to llvm 10.x release branch and will be
|
||||
available in 10.0.1. The fix is available in llvm 11.0.0 trunk.
|
Loading…
Reference in New Issue