General instructions on running selftests can be found in `Documentation/bpf/bpf_devel_QA.rst`_.
Additional information about selftest failures are documented here.
- 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
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
; 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.