linux-bl808/tools/testing/selftests/bpf
David S. Miller 71930d6102 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
All conflicts seemed rather trivial, with some guidance from
Saeed Mameed on the tc_ct.c one.

Signed-off-by: David S. Miller <davem@davemloft.net>
2020-07-11 00:46:00 -07:00
..
benchs bpf: Add BPF ringbuf and perf buffer benchmarks 2020-06-01 14:38:22 -07:00
gnu
map_tests
prog_tests Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-07-11 00:46:00 -07:00
progs Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-07-11 00:46:00 -07:00
verifier selftests/bpf: Test access to bpf map pointer 2020-06-22 22:22:59 +02:00
.gitignore
bench.c bpf: Add BPF ringbuf and perf buffer benchmarks 2020-06-01 14:38:22 -07:00
bench.h
bpf_legacy.h
bpf_rand.h
bpf_rlimit.h
bpf_tcp_helpers.h
bpf_util.h
cgroup_helpers.c
cgroup_helpers.h
config selftests/bpf: CONFIG_LIRC required for test_lirc_mode2.sh 2020-05-23 01:12:31 +02:00
flow_dissector_load.c
flow_dissector_load.h
get_cgroup_id_user.c
Makefile selftests/bpf: Allow substituting custom vmlinux.h for selftests build 2020-06-30 15:50:11 -07:00
netcnt_common.h
network_helpers.c bpf: selftests: A few improvements to network_helpers.c 2020-07-02 16:09:01 +02:00
network_helpers.h bpf: selftests: A few improvements to network_helpers.c 2020-07-02 16:09:01 +02:00
README.rst selftests/bpf: Add general instructions for test execution 2020-05-23 01:11:09 +02:00
tcp_client.py
tcp_server.py
test_bpftool.py
test_bpftool.sh
test_bpftool_build.sh
test_btf.c
test_btf.h
test_cgroup_storage.c
test_cpp.cpp
test_current_pid_tgid_new_ns.c
test_dev_cgroup.c
test_flow_dissector.c
test_flow_dissector.sh
test_ftrace.sh
test_iptunnel_common.h
test_kmod.sh
test_lirc_mode2.sh
test_lirc_mode2_user.c
test_lpm_map.c
test_lru_map.c
test_lwt_ip_encap.sh
test_lwt_seg6local.sh
test_maps.c selftests: bpf: Fix detach from sockmap tests 2020-07-09 23:41:37 +02:00
test_maps.h
test_netcnt.c
test_offload.py
test_progs.c bpf: selftests: Restore netns after each test 2020-07-02 16:09:01 +02:00
test_progs.h bpf: selftests: Restore netns after each test 2020-07-02 16:09:01 +02:00
test_select_reuseport_common.h
test_skb_cgroup_id.sh
test_skb_cgroup_id_user.c
test_sock.c
test_sock_addr.c
test_sock_addr.sh
test_sock_fields.c
test_socket_cookie.c
test_sockmap.c bpf, sockmap: Add ingres skb tests that utilize merge skbs 2020-06-28 08:33:28 -07:00
test_stub.c
test_sysctl.c
test_tag.c
test_tc_edt.sh
test_tc_tunnel.sh
test_tcp_check_syncookie.sh
test_tcp_check_syncookie_user.c
test_tcpbpf.h
test_tcpbpf_user.c
test_tcpnotify.h
test_tcpnotify_user.c
test_tunnel.sh
test_verifier.c
test_verifier_log.c
test_xdp_meta.sh
test_xdp_redirect.sh
test_xdp_veth.sh
test_xdp_vlan.sh
test_xdp_vlan_mode_generic.sh
test_xdp_vlan_mode_native.sh
test_xdping.sh
testing_helpers.c
testing_helpers.h
trace_helpers.c
trace_helpers.h
urandom_read.c
with_addr.sh
with_tunnels.sh
xdping.c
xdping.h

==================
BPF Selftest Notes
==================
General instructions on running selftests can be found in
`Documentation/bpf/bpf_devel_QA.rst`_.

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.