linux-stable/tools/testing/selftests/bpf/prog_tests
Martin KaFai Lau c2fcbf81c3 bpf, selftests: Fix racing issue in btf_skc_cls_ingress test
The libbpf CI reported occasional failure in btf_skc_cls_ingress:

  test_syncookie:FAIL:Unexpected syncookie states gen_cookie:80326634 recv_cookie:0
  bpf prog error at line 97

"error at line 97" means the bpf prog cannot find the listening socket
when the final ack is received.  It then skipped processing
the syncookie in the final ack which then led to "recv_cookie:0".

The problem is the userspace program did not do accept() and went
ahead to close(listen_fd) before the kernel (and the bpf prog) had
a chance to process the final ack.

The fix is to add accept() call so that the userspace will wait for
the kernel to finish processing the final ack first before close()-ing
everything.

Fixes: 9a856cae22 ("bpf: selftest: Add test_btf_skc_cls_ingress")
Reported-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20211216191630.466151-1-kafai@fb.com
2021-12-16 21:41:18 +01:00
..
.gitignore
align.c selftests/bpf: Fix "dubious pointer arithmetic" test 2020-12-10 13:11:30 -08:00
atomic_bounds.c selftests/bpf: Add missing cleanup in atomic_bounds test 2021-02-08 17:55:01 -08:00
atomics.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
attach_probe.c selftests/bpf: Fix attach_probe in parallel mode 2021-10-27 11:59:02 -07:00
autoload.c selftests/bpf: Test auto-load disabling logic for BPF programs 2020-06-28 10:06:53 -07:00
bind_perm.c selftests/bpf: Verify that rebinding to port < 1024 from BPF works 2021-01-27 18:18:15 -08:00
bloom_filter_map.c selftests/bpf: Add bloom map success test for userspace calls 2021-11-01 14:16:03 -07:00
bpf_cookie.c selftests/bpf: Add bpf_cookie selftests for high-level APIs 2021-08-17 00:45:08 +02:00
bpf_iter.c selftests/bpf: Fix a few compiler warnings 2021-09-17 09:10:54 -07:00
bpf_iter_setsockopt.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
bpf_obj_id.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
bpf_tcp_ca.c bpf: selftests: Add dctcp fallback test 2021-08-25 17:40:35 -07:00
bpf_verif_scale.c selftests/bpf: Add a testcase for 64-bit bounds propagation issue. 2021-11-01 18:05:12 -07:00
btf.c selftests/bpf: Test deduplication for BTF_KIND_DECL_TAG typedef 2021-10-22 17:04:44 -07:00
btf_dedup_split.c selftests/bpf: Add split BTF dedup selftests 2020-11-05 18:37:31 -08:00
btf_dump.c selftests/bpf: Normalize selftest entry points 2021-10-25 14:45:45 -07:00
btf_endian.c selftests/bpf: Use __BYTE_ORDER__ 2021-10-25 20:39:42 -07:00
btf_map_in_map.c selftests/bpf: Sync RCU before unloading bpf_testmod 2021-01-12 17:23:47 -08:00
btf_module.c selftests/bpf: Test btf__load_vmlinux_btf/btf__load_module_btf APIs 2021-08-16 18:38:52 -07:00
btf_skc_cls_ingress.c bpf, selftests: Fix racing issue in btf_skc_cls_ingress test 2021-12-16 21:41:18 +01:00
btf_split.c selftests/bpf: Switch to new btf__type_cnt/btf__raw_data APIs 2021-10-22 16:09:14 -07:00
btf_tag.c selftests/bpf: Skip btf_tag test if btf_tag attribute not supported 2021-09-15 08:49:49 -07:00
btf_write.c bpf: Rename BTF_KIND_TAG to BTF_KIND_DECL_TAG 2021-10-18 18:35:36 -07:00
cg_storage_multi.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
cgroup_attach_autodetach.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
cgroup_attach_multi.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
cgroup_attach_override.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
cgroup_link.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
cgroup_skb_sk_lookup.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
cgroup_v1v2.c selftests/bpf: Make cgroup_v1v2 use its own port 2021-10-08 15:10:43 -07:00
check_mtu.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
cls_redirect.c bpf: Remove extra lock_sock for TCP_ZEROCOPY_RECEIVE 2021-01-20 14:23:00 -08:00
connect_force_port.c bpf: selftests: A few improvements to network_helpers.c 2020-07-02 16:09:01 +02:00
core_autosize.c selftests/bpf: Switch to new btf__type_cnt/btf__raw_data APIs 2021-10-22 16:09:14 -07:00
core_extern.c selftest/bpf: Fix compilation warnings in 32-bit mode 2020-08-13 16:45:41 -07:00
core_read_macros.c selftests/bpf: Add tests for user- and non-CO-RE BPF_CORE_READ() variants 2021-01-08 13:39:24 -08:00
core_reloc.c selftests/bpf: Switch to new btf__type_cnt/btf__raw_data APIs 2021-10-22 16:09:14 -07:00
core_retro.c selftests/bpf: Fix spurious test failures in core_retro selftest 2020-08-01 23:10:42 -07:00
cpu_mask.c
d_path.c selftests/bpf: Fix stat probe in d_path test 2020-09-21 16:18:00 -07:00
dummy_st_ops.c selftests/bpf: Add test cases for struct_ops prog 2021-11-01 14:10:00 -07:00
enable_stats.c
endian.c selftests/bpf: Add byte swapping selftest 2020-07-01 09:06:12 +02:00
fentry_fexit.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
fentry_test.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
fexit_bpf2bpf.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
fexit_sleep.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
fexit_stress.c bpf: Add per-program recursion prevention mechanism 2021-02-11 16:19:13 +01:00
fexit_test.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
flow_dissector.c selftests/bpf: Normalize all the rest SEC() uses 2021-09-28 13:51:19 -07:00
flow_dissector_load_bytes.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
flow_dissector_reattach.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
for_each.c selftests/bpf: Add arraymap test for bpf_for_each_map_elem() helper 2021-02-26 13:23:53 -08:00
get_branch_snapshot.c selftests/bpf: Guess function end for test_get_branch_snapshot 2021-10-25 21:43:05 -07:00
get_func_ip_test.c libbpf: Allow decimal offset for kprobes 2021-07-22 20:09:16 -07:00
get_stack_raw_tp.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
get_stackid_cannot_attach.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
global_data.c selftests/bpf: Switch to ".bss"/".rodata"/".data" lookups for internal maps 2021-10-21 17:10:11 -07:00
global_data_init.c selftests/bpf: Switch to ".bss"/".rodata"/".data" lookups for internal maps 2021-10-21 17:10:11 -07:00
global_func_args.c selftests/bpf: Add unit tests for pointers in global functions 2021-02-12 17:37:23 -08:00
hash_large_key.c bpf: Lift hashtab key_size limit 2020-11-05 20:04:46 -08:00
hashmap.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
helper_restricted.c selftests/bpf: Add tests for restricted helpers 2021-11-15 20:37:11 -08:00
kfree_skb.c selftests/bpf: Switch to ".bss"/".rodata"/".data" lookups for internal maps 2021-10-21 17:10:11 -07:00
kfunc_call.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
ksyms.c selftests/bpf: Ksyms_btf to test typed ksyms 2020-10-02 14:59:25 -07:00
ksyms_btf.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
ksyms_module.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
l4lb_all.c selftests/bpf: Add subprogs to pyperf, strobemeta, and l4lb_noinline tests 2020-09-03 17:14:40 -07:00
link_pinning.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
linked_funcs.c selftests/bpf: Add function linking selftest 2021-04-23 14:05:27 -07:00
linked_maps.c selftests/bpf: Add map linking selftest 2021-04-23 14:05:27 -07:00
linked_vars.c selftests/bpf: Add global variables linking selftest 2021-04-23 14:05:27 -07:00
load_bytes_relative.c bpf: selftests: A few improvements to network_helpers.c 2020-07-02 16:09:01 +02:00
lookup_and_delete.c selftests/bpf: Add bpf_lookup_and_delete_elem tests 2021-05-24 13:30:52 -07:00
map_init.c bpf: Zero-fill re-used per-cpu map element 2020-11-05 19:55:57 -08:00
map_lock.c
map_ptr.c selftests/bpf: Pass page size from userspace in map_ptr 2021-04-08 23:54:47 -07:00
metadata.c selftests/bpf: Test load and dump metadata with btftool and skel 2020-09-15 18:28:27 -07:00
migrate_reuseport.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
mmap.c selftests/bpf: mmap: Use runtime page size 2021-04-08 23:54:48 -07:00
modify_return.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
module_attach.c bpf/selftests: Add test for writable bare tracepoint 2021-10-08 13:22:57 -07:00
netcnt.c selftests/bpf: Make netcnt selftests serial to avoid spurious failures 2021-11-03 15:43:09 +01:00
netns_cookie.c selftests/bpf: Test for get_netns_cookie 2021-08-24 14:17:53 -07:00
ns_current_pid_tgid.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
obj_name.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
pe_preserve_elems.c selftests/bpf: Add tests for BPF_F_PRESERVE_ELEMS 2020-09-30 23:21:06 -07:00
perf_branches.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
perf_buffer.c selftests/bpf: Make perf_buffer selftests work on 4.9 kernel again 2021-10-22 14:26:33 -07:00
perf_event_stackmap.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
perf_link.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
pinning.c libbpf: Add bpf_map__pin_path function 2021-07-23 16:57:03 -07:00
pkt_access.c
pkt_md_access.c
probe_read_user_str.c selftest/bpf: Test bpf_probe_read_user_str() strips trailing bytes after NUL 2020-11-19 11:58:15 -08:00
probe_user.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
prog_run_xattr.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
queue_stack_map.c
raw_tp_test_run.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
raw_tp_writable_reject_nbd_invalid.c
raw_tp_writable_test_run.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
rdonly_maps.c selftests/bpf: Switch to ".bss"/".rodata"/".data" lookups for internal maps 2021-10-21 17:10:11 -07:00
recursion.c selftest/bpf: Switch recursion test to use htab_map_delete_elem 2021-10-06 12:34:02 -07:00
reference_tracking.c selftests/bpf: Switch SEC("classifier*") usage to a strict SEC("tc") 2021-09-28 13:51:19 -07:00
resolve_btfids.c selftests/bpf: Normalize selftest entry points 2021-10-25 14:45:45 -07:00
ringbuf.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
ringbuf_multi.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
section_names.c libbpf: Add support for BPF XDP link 2020-07-25 20:37:02 -07:00
select_reuseport.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
send_signal.c selftests/bpf: Fix flaky send_signal test 2021-08-17 14:08:30 -07:00
send_signal_sched_switch.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
signal_pending.c selftests/bpf: Normalize selftest entry points 2021-10-25 14:45:45 -07:00
sk_assign.c selftests/bpf: Switch SEC("classifier*") usage to a strict SEC("tc") 2021-09-28 13:51:19 -07:00
sk_lookup.c selftests/bpf: Fix fd cleanup in sk_lookup test 2021-10-28 16:30:07 -07:00
sk_storage_tracing.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
skb_ctx.c selftests/bpf: Test new __sk_buff field hwtstamp 2021-09-10 23:20:13 +02:00
skb_helpers.c
skc_to_unix_sock.c selftests/bpf: Test bpf_skc_to_unix_sock() helper 2021-10-21 15:11:06 -07:00
skeleton.c selftests/bpf: Demonstrate use of custom .rodata/.data sections 2021-10-21 17:10:10 -07:00
snprintf.c selftests/bpf: Normalize selftest entry points 2021-10-25 14:45:45 -07:00
snprintf_btf.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
sock_fields.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
socket_cookie.c selftests/bpf: Add a selftest for the tracing bpf_get_socket_cookie 2021-02-11 17:44:41 -08:00
sockmap_basic.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
sockmap_ktls.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
sockmap_listen.c Merge https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2021-11-01 19:59:46 -07:00
sockopt.c
sockopt_inherit.c selftests/bpf: Fix potential unreleased lock 2021-08-27 09:45:59 -07:00
sockopt_multi.c selftests/bpf: Normalize all the rest SEC() uses 2021-09-28 13:51:19 -07:00
sockopt_qos_to_cc.c selftests/bpf: Add tests for {set|get} socket option from setsockopt BPF 2021-08-20 01:10:01 +02:00
sockopt_sk.c selftests/bpf: Pass page size from userspace in sockopt_sk 2021-04-08 23:54:47 -07:00
spinlock.c
stack_var_off.c selftest/bpf: Add test for var-offset stack access 2021-02-10 11:05:34 -08:00
stacktrace_build_id.c
stacktrace_build_id_nmi.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
stacktrace_map.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
stacktrace_map_raw_tp.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
static_linked.c selftests/bpf: Validate skeleton gen handles skipped fields 2021-05-13 17:23:57 -07:00
subprogs.c libbpf: Don't attempt to load unused subprog as an entry-point BPF program 2020-11-09 22:15:23 +01:00
syscall.c selftests/bpf: Test for btf_load command. 2021-05-19 00:33:40 +02:00
tailcalls.c selftests/bpf: Switch SEC("classifier*") usage to a strict SEC("tc") 2021-09-28 13:51:19 -07:00
task_fd_query_rawtp.c
task_fd_query_tp.c
task_local_storage.c selftests/bpf: Test deadlock from recursive bpf_task_storage_[get|delete] 2021-02-26 11:51:48 -08:00
task_pt_regs.c selftests/bpf: Fix build of task_pt_regs test for arm64 2021-09-07 17:23:19 +02:00
tc_bpf.c libbpf: Add selftests for TC-BPF management API 2021-05-17 17:52:20 +02:00
tc_redirect.c selftests/bpf: Adding a namespace reset for tc_redirect 2021-10-27 11:59:02 -07:00
tcp_estats.c
tcp_hdr_options.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
tcp_rtt.c selftests/bpf: Switch to new bpf_object__next_{map,program} APIs 2021-10-06 12:34:02 -07:00
tcpbpf_user.c selftests/bpf: Add Userspace tests for TCP_WINDOW_CLAMP 2020-12-03 17:23:24 -08:00
test_bpffs.c selftests/bpf: Test RENAME_EXCHANGE and RENAME_NOREPLACE on bpffs 2021-11-03 15:43:08 +01:00
test_bprm_opts.c bpf: Add tests for bpf_bprm_opts_set helper 2020-11-18 01:36:27 +01:00
test_global_funcs.c selftests/bpf: Add unit tests for pointers in global functions 2021-02-12 17:37:23 -08:00
test_ima.c selftests/bpf: Fix memory leak in test_ima 2021-10-28 16:30:07 -07:00
test_local_storage.c selftests/bpf: Fix a compiler warning in local_storage test 2021-02-02 21:21:55 -08:00
test_lsm.c selftests/bpf: Use ASSERT macros in lsm test 2021-04-25 21:09:02 -07:00
test_overhead.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
test_profiler.c selftests/bpf: Add profiler test 2020-10-09 22:03:06 +02:00
test_skb_pkt_end.c selftests/bpf: Add skb_pkt_end test 2020-11-13 01:42:11 +01:00
timer.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
timer_mim.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
tp_attach_query.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
trace_ext.c selftests/bpf: Adding test for arg dereference in extension trace 2020-09-29 13:09:24 -07:00
trace_printk.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
trace_vprintk.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
trampoline_count.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
udp_limit.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
varlen.c selftests/bpf: Make test_varlen work with 32-bit user-space arch 2020-08-13 16:45:41 -07:00
verif_stats.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
vmlinux.c
xdp.c
xdp_adjust_tail.c selftests/bpf: Normalize selftest entry points 2021-10-25 14:45:45 -07:00
xdp_attach.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
xdp_bonding.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
xdp_bpf2bpf.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
xdp_context_test_run.c selftests/bpf: Add test for xdp_md context in BPF_PROG_TEST_RUN 2021-07-07 19:51:13 -07:00
xdp_cpumap_attach.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
xdp_devmap_attach.c selftests/bpf: Normalize selftest entry points 2021-10-25 14:45:45 -07:00
xdp_info.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
xdp_link.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
xdp_noinline.c selftests/bpf: Initialize duration in xdp_noinline.c 2020-10-02 16:46:20 +02:00
xdp_perf.c
xdpwall.c bpf: selftest: A bpf prog that has a 32bit scalar spill 2021-09-26 13:07:28 -07:00