linux/tools/testing/selftests/bpf
Andrii Nakryiko d5ca590525 selftests/bpf: Fix silent Makefile output
99aacebecb ("selftests: do not use .ONESHELL") removed .ONESHELL, which
changes how Makefile "silences" multi-command target recipes. selftests/bpf's
Makefile relied (a somewhat unknowingly) on .ONESHELL behavior of silencing
all commands within the recipe if the first command contains @ symbol.
Removing .ONESHELL exposed this hack.

This patch fixes the issue by explicitly silencing each command with $(Q).

Also explicitly define fallback rule for building *.o from *.c, instead of
relying on non-silent inherited rule. This was causing a non-silent output for
bench.o object file.

Fixes: 92f7440ecc ("selftests/bpf: More succinct Makefile output")
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20200807033058.848677-1-andriin@fb.com
2020-08-07 18:52:32 +02:00
..
benchs bpf: Add BPF ringbuf and perf buffer benchmarks 2020-06-01 14:38:22 -07:00
gnu
map_tests .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
prog_tests bpf: Fix compilation warning of selftests 2020-08-06 16:58:42 -07:00
progs selftests/bpf: Fix spurious test failures in core_retro selftest 2020-08-01 23:10:42 -07:00
verifier Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-08-02 01:02:12 -07:00
.gitignore selftests/bpf: Add benchmark runner infrastructure 2020-05-13 12:19:38 -07:00
Makefile selftests/bpf: Fix silent Makefile output 2020-08-07 18:52:32 +02:00
README.rst selftests/bpf: Add general instructions for test execution 2020-05-23 01:11:09 +02:00
bench.c bpf: Add BPF ringbuf and perf buffer benchmarks 2020-06-01 14:38:22 -07:00
bench.h selftests/bpf: Add benchmark runner infrastructure 2020-05-13 12:19:38 -07:00
bpf_legacy.h selftests: bpf: Remove unused bpf_map_def_legacy struct 2020-07-08 01:33:14 +02:00
bpf_rand.h
bpf_rlimit.h
bpf_tcp_helpers.h libbpf: Merge selftests' bpf_trace_helpers.h into libbpf's bpf_tracing.h 2020-03-02 16:25:14 -08:00
bpf_util.h selftests: Use consistent include paths for libbpf 2020-01-20 16:37:45 -08:00
cgroup_helpers.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
cgroup_helpers.h bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
config selftests/bpf: CONFIG_LIRC required for test_lirc_mode2.sh 2020-05-23 01:12:31 +02:00
flow_dissector_load.c selftests/bpf: run flow dissector tests in skb-less mode 2019-04-23 18:36:34 +02:00
flow_dissector_load.h selftests/bpf: properly return error from bpf_flow_load 2019-04-23 18:36:34 +02:00
get_cgroup_id_user.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
netcnt_common.h selftests/bpf: cgroup local storage-based network counters 2018-10-01 16:18:33 +02:00
network_helpers.c selftests/bpf: Tests for BPF_SK_LOOKUP attach point 2020-07-17 20:18:17 -07:00
network_helpers.h selftests/bpf: Tests for BPF_SK_LOOKUP attach point 2020-07-17 20:18:17 -07:00
settings selftests: bpf: Switch off timeout 2020-08-06 16:57:05 -07:00
tcp_client.py bpf, selftests: use :: 1 for localhost in tcp_server.py 2020-07-29 00:10:35 +02:00
tcp_server.py bpf, selftests: use :: 1 for localhost in tcp_server.py 2020-07-29 00:10:35 +02:00
test_bpftool.py selftests/bpf: Add test for "bpftool feature" command 2020-02-26 18:34:34 +01:00
test_bpftool.sh selftests/bpf: Add test for "bpftool feature" command 2020-02-26 18:34:34 +01:00
test_bpftool_build.sh selftests, bpftool: Skip the build test if not in tree 2019-11-24 16:58:45 -08:00
test_btf.c selftests/bpf: Fix a couple of broken test_btf cases 2020-04-24 17:47:40 -07:00
test_btf.h bpf: Refactor BTF encoding macro to test_btf.h 2019-04-27 09:07:05 -07:00
test_cgroup_storage.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_cpp.cpp selftests: Use consistent include paths for libbpf 2020-01-20 16:37:45 -08:00
test_current_pid_tgid_new_ns.c tools/testing/selftests/bpf: Add self-tests for new helper bpf_get_ns_current_pid_tgid. 2020-03-12 17:40:47 -07:00
test_dev_cgroup.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_flow_dissector.c selftests: bpf: remove duplicated include 2019-01-29 00:09:26 +01:00
test_flow_dissector.sh selftests/bpf: Add test based on port range for BPF flow dissector 2020-01-27 11:25:07 +01:00
test_ftrace.sh selftests/bpf: Test function_graph tracer and bpf trampoline together 2019-12-11 15:19:29 -08:00
test_iptunnel_common.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206 2019-05-30 11:29:53 -07:00
test_kmod.sh selftests: bpf: test_kmod.sh: Fix running out of srctree 2020-07-21 13:26:24 -07:00
test_lirc_mode2.sh media: bpf: add bpf function to report mouse movement 2018-12-09 14:37:18 -08:00
test_lirc_mode2_user.c media: bpf: add bpf function to report mouse movement 2018-12-09 14:37:18 -08:00
test_lpm_map.c bpf: lpm_trie: check left child of last leftmost node for NULL 2019-06-11 13:52:37 +02:00
test_lru_map.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206 2019-05-30 11:29:53 -07:00
test_lwt_ip_encap.sh selftests/bpf: More compatible nc options in test_lwt_ip_encap 2019-10-08 23:59:22 +02:00
test_lwt_seg6local.sh selftests/bpf: Fix test_lwt_seg6local.sh hangs 2020-07-21 13:26:26 -07:00
test_maps.c selftests: bpf: Fix detach from sockmap tests 2020-07-09 23:41:37 +02:00
test_maps.h bpf: Add BPF_MAP_TYPE_SK_STORAGE test to test_maps 2019-04-27 09:07:05 -07:00
test_netcnt.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_offload.py selftests/bpf: fix netdevsim trap_flow_action_cookie read 2020-07-30 16:33:07 -07:00
test_progs.c selftests/bpf: test_progs avoid minus shell exit codes 2020-07-09 00:35:33 +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 bpf: Test BPF_PROG_TYPE_SK_REUSEPORT 2018-08-11 01:58:46 +02:00
test_skb_cgroup_id.sh kselftests/bpf: use ping6 as the default ipv6 ping binary if it exists 2018-10-31 23:05:30 +01:00
test_skb_cgroup_id_user.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_sock.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_sock_addr.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_sock_addr.sh kselftests/bpf: use ping6 as the default ipv6 ping binary if it exists 2018-10-31 23:05:30 +01:00
test_sock_fields.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_socket_cookie.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_sockmap.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_stub.c selftests/bpf: Integrate verbose verifier log into test_progs 2019-11-24 16:58:45 -08:00
test_sysctl.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_tag.c
test_tc_edt.sh selftests/bpf: More compatible nc options in test_tc_edt 2019-10-18 22:33:57 +02:00
test_tc_tunnel.sh selftests, bpf: Fix test_tc_tunnel hanging 2019-11-18 21:31:49 +01:00
test_tcp_check_syncookie.sh selftests/bpf: add test for bpf_tcp_gen_syncookie 2019-07-30 21:03:05 -07:00
test_tcp_check_syncookie_user.c selftests/bpf: add test for bpf_tcp_gen_syncookie 2019-07-30 21:03:05 -07:00
test_tcpbpf.h selftests/bpf: De-flake test_tcpbpf 2019-12-04 18:01:05 -08:00
test_tcpbpf_user.c bpf, selftests: Use single cgroup helpers for both test_sockmap/progs 2020-08-01 20:20:59 -07:00
test_tcpnotify.h selftests/bpf: add a test case for sock_ops perf-event notification 2018-11-09 09:40:17 +01:00
test_tcpnotify_user.c bpf: Fix compilation warning of selftests 2020-08-06 16:58:42 -07:00
test_tunnel.sh selftests/bpf: fail test_tunnel.sh if subtests fail 2019-05-28 11:08:57 +02:00
test_verifier.c selftests/bpf: Use CAP_BPF and CAP_PERFMON in tests 2020-05-15 17:29:41 +02:00
test_verifier_log.c
test_xdp_meta.sh
test_xdp_redirect.sh selftests/bpf: Add xdpdrv mode for test_xdp_redirect 2020-07-31 00:43:49 +02:00
test_xdp_veth.sh selftests, bpf: Add test for veth native XDP 2019-06-24 18:18:30 -07:00
test_xdp_vlan.sh selftests/bpf: reduce time to execute test_xdp_vlan.sh 2019-08-05 11:17:40 -07:00
test_xdp_vlan_mode_generic.sh selftests/bpf: add wrapper scripts for test_xdp_vlan.sh 2019-08-05 11:17:40 -07:00
test_xdp_vlan_mode_native.sh selftests/bpf: add wrapper scripts for test_xdp_vlan.sh 2019-08-05 11:17:40 -07:00
test_xdping.sh selftests/bpf: measure RTT from xdp using xdping 2019-05-31 19:53:45 -07:00
testing_helpers.c selftests/bpf: Add link detach tests for cgroup, netns, and xdp bpf_links 2020-08-01 20:38:28 -07:00
testing_helpers.h selftests/bpf: Add link detach tests for cgroup, netns, and xdp bpf_links 2020-08-01 20:38:28 -07:00
trace_helpers.c samples, bpf: Move read_trace_pipe to trace_helpers 2020-03-23 22:27:51 +01:00
trace_helpers.h samples, bpf: Move read_trace_pipe to trace_helpers 2020-03-23 22:27:51 +01:00
urandom_read.c selftests: bpf: modify urandom_read and link it non-statically 2019-03-21 19:37:30 -07:00
with_addr.sh selftests/bpf: test bpf flow dissection 2018-09-14 12:04:33 -07:00
with_tunnels.sh selftests/bpf: test bpf flow dissection 2018-09-14 12:04:33 -07:00
xdping.c selftests: bpf: correct perror strings 2019-11-28 22:40:30 -08:00
xdping.h selftests/bpf: measure RTT from xdp using xdping 2019-05-31 19:53:45 -07:00

README.rst

==================
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.