linux/tools/testing/selftests/bpf/prog_tests
John Fastabend 1fb5ba29ad bpf: Selftest to verify mixing bpf2bpf calls and tailcalls with insn patch
This adds some extra noise to the tailcall_bpf2bpf4 tests that will cause
verify to patch insns. This then moves around subprog start/end insn
index and poke descriptor insn index to ensure that verify and JIT will
continue to track these correctly.

If done correctly verifier should pass this program same as before and
JIT should emit tail call logic.

Signed-off-by: John Fastabend <john.fastabend@gmail.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20210707223848.14580-3-john.fastabend@gmail.com
2021-07-09 12:08:40 +02:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
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: Convert atomics test to light skeleton. 2021-05-19 00:41:56 +02:00
attach_probe.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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
bpf_iter.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
bpf_obj_id.c selftest/bpf: Fix compilation warnings in 32-bit mode 2020-08-13 16:45:41 -07:00
bpf_tcp_ca.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
bpf_verif_scale.c selftests/bpf: Add a verifier scale test with unknown bounded loop 2021-03-04 16:44:00 +01: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: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
btf_endian.c selftests/bpf: Add remaining ASSERT_xxx() variants 2021-04-26 18:37:13 -07:00
btf_map_in_map.c selftests/bpf: Sync RCU before unloading bpf_testmod 2021-01-12 17:23:47 -08:00
btf_skc_cls_ingress.c bpf: selftest: Use static globals in tcp_hdr_options and btf_skc_cls_ingress 2020-11-09 16:18:36 -08:00
btf_split.c selftests/bpf: Add split BTF basic test 2020-11-05 18:37:30 -08:00
btf_write.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
btf.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
cg_storage_multi.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
cgroup_attach_autodetach.c selftests/bpf: Declare bpf_log_buf variables as static 2020-03-02 17:00:41 -08:00
cgroup_attach_multi.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
cgroup_attach_override.c selftests/bpf: Declare bpf_log_buf variables as static 2020-03-02 17:00:41 -08:00
cgroup_link.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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
check_mtu.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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: Validate libbpf's auto-sizing of LD/ST/STX instructions 2020-10-07 18:50:27 -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: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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 selftests: Use consistent include paths for libbpf 2020-01-20 16:37:45 -08:00
d_path.c selftests/bpf: Fix stat probe in d_path test 2020-09-21 16:18:00 -07:00
enable_stats.c bpf: Add selftest for BPF_ENABLE_STATS 2020-05-01 10:36:32 -07:00
endian.c selftests/bpf: Add byte swapping selftest 2020-07-01 09:06:12 +02:00
fentry_fexit.c selftests/bpf: Convert few tests to light skeleton. 2021-05-19 00:41:44 +02:00
fentry_test.c selftests/bpf: Convert few tests to light skeleton. 2021-05-19 00:41:44 +02:00
fexit_bpf2bpf.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
fexit_sleep.c selftests/bpf: Convert few tests to light skeleton. 2021-05-19 00:41:44 +02:00
fexit_stress.c bpf: Add per-program recursion prevention mechanism 2021-02-11 16:19:13 +01:00
fexit_test.c selftests/bpf: Convert few tests to light skeleton. 2021-05-19 00:41:44 +02:00
flow_dissector_load_bytes.c selftests/bpf: Move existing common networking parts into network_helpers 2020-05-09 00:48:20 +02:00
flow_dissector_reattach.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
flow_dissector.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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_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_init.c selftests/bpf: Fix check in global_data_init. 2020-09-03 17:33:31 -07:00
global_data.c selftest/bpf: Fix compilation warnings in 32-bit mode 2020-08-13 16:45:41 -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
kfree_skb.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
kfunc_call.c selftests/bpf: Convert few tests to light skeleton. 2021-05-19 00:41:44 +02:00
ksyms_btf.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
ksyms_module.c selftests/bpf: Convert few tests to light skeleton. 2021-05-19 00:41:44 +02:00
ksyms.c selftests/bpf: Ksyms_btf to test typed ksyms 2020-10-02 14:59:25 -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 selftests/bpf: Move existing common networking parts into network_helpers 2020-05-09 00:48:20 +02:00
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 selftests/bpf: Fix selftests build with old system-wide headers 2021-06-17 13:05:10 +02:00
mmap.c selftests/bpf: mmap: Use runtime page size 2021-04-08 23:54:48 -07:00
modify_return.c bpf: Add selftests for BPF_MODIFY_RETURN 2020-03-04 13:41:06 -08:00
module_attach.c selftests/bpf: Test that module can't be unloaded with attached trampoline 2021-04-25 21:09:02 -07:00
ns_current_pid_tgid.c selftests/bpf: Silence clang compilation warnings 2021-04-15 16:50:22 -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: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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
pinning.c selftest/bpf: Test pinning map with reused map fd 2020-10-06 11:10:20 -07:00
pkt_access.c selftests/bpf: Move existing common networking parts into network_helpers 2020-05-09 00:48:20 +02:00
pkt_md_access.c selftests/bpf: Move existing common networking parts into network_helpers 2020-05-09 00:48:20 +02:00
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 selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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 selftests/bpf: Move existing common networking parts into network_helpers 2020-05-09 00:48:20 +02:00
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 selftests: bpf: test writable buffers in raw tps 2019-04-26 19:04:19 -07:00
raw_tp_writable_test_run.c selftests: bpf: test writable buffers in raw tps 2019-04-26 19:04:19 -07:00
rdonly_maps.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
recursion.c selftests/bpf: Improve recursion selftest 2021-02-11 16:19:24 +01:00
reference_tracking.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
resolve_btfids.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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
ringbuf.c selftests/bpf: Fix ringbuf test fetching map FD 2021-06-17 18:23:55 -07:00
section_names.c libbpf: Add support for BPF XDP link 2020-07-25 20:37:02 -07:00
select_reuseport.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
send_signal_sched_switch.c selftests/bpf: Add send_signal_sched_switch test 2020-03-05 14:02:41 -08:00
send_signal.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
signal_pending.c selftests/bpf: Move existing common networking parts into network_helpers 2020-05-09 00:48:20 +02:00
sk_assign.c selftests/bpf: Fix endianness issue in sk_assign 2020-09-18 22:54:52 +02:00
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
sk_storage_tracing.c bpf: selftest: Use bpf_sk_storage in FENTRY/FEXIT/RAW_TP 2020-11-12 18:39:28 -08:00
skb_ctx.c selftest/bpf: Fix compilation warnings in 32-bit mode 2020-08-13 16:45:41 -07:00
skb_helpers.c bpf, selftests: Test probe_* helpers from SCHED_CLS 2020-06-01 14:38:21 -07:00
skeleton.c selftests/bpf: Stop using static variables for passing data to/from user-space 2021-05-11 15:07:17 -07:00
snprintf_btf.c selftests/bpf: Add remaining ASSERT_xxx() variants 2021-04-26 18:37:13 -07:00
snprintf.c selftests/bpf: Fix the snprintf test 2021-04-30 10:36:59 -07:00
sock_fields.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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 git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2021-06-29 15:45:27 -07:00
sockopt_inherit.c selftests/bpf: Fix possible hang in sockopt_inherit 2020-07-16 20:57:09 +02:00
sockopt_multi.c selftests/bpf: Fix error return code in run_getsockopt_test() 2020-11-16 22:19:07 +01:00
sockopt_sk.c selftests/bpf: Pass page size from userspace in sockopt_sk 2021-04-08 23:54:47 -07:00
sockopt.c selftests/bpf: test_progs: convert test_sockopt 2019-09-06 09:59:05 -07:00
spinlock.c selftests/bpf: Move existing common networking parts into network_helpers 2020-05-09 00:48:20 +02:00
stack_var_off.c selftest/bpf: Add test for var-offset stack access 2021-02-10 11:05:34 -08:00
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_build_id.c bpftool, selftests/bpf: Embed object file inside skeleton 2019-12-17 22:16:35 -08: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
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
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 bpf: Selftest to verify mixing bpf2bpf calls and tailcalls with insn patch 2021-07-09 12:08:40 +02:00
task_fd_query_rawtp.c selftests/bpf: test_progs: remove global fail/success counts 2019-08-28 00:35:40 +02:00
task_fd_query_tp.c selftests/bpf: test_progs: remove global fail/success counts 2019-08-28 00:35:40 +02:00
task_local_storage.c selftests/bpf: Test deadlock from recursive bpf_task_storage_[get|delete] 2021-02-26 11:51:48 -08: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: Add test for l3 use of bpf_redirect_peer 2021-05-25 18:00:28 +02:00
tcp_estats.c selftests/bpf: test_progs: remove global fail/success counts 2019-08-28 00:35:40 +02:00
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 bpf: selftests: A few improvements to network_helpers.c 2020-07-02 16:09:01 +02: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: Add bpffs preload test. 2020-08-20 16:02:36 +02: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: Better error messages for ima_setup.sh failures 2021-03-25 18:39:51 -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
tp_attach_query.c selftests: bpf: initialize bpf_object pointers where needed 2019-05-09 15:53:56 -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: Convert test trace_printk to lskel. 2021-05-19 00:42:20 +02:00
trampoline_count.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -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
vmlinux.c selftests/bpf: Fix nanosleep for real this time 2020-03-17 19:29:12 +01:00
xdp_adjust_tail.c selftests/bpf: Xdp_adjust_tail add grow tail tests 2020-05-14 21:21:57 -07:00
xdp_attach.c selftests/bpf: Check for correct program attach/detach in xdp_attach test 2020-04-15 13:26:08 +02: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_cpumap_attach.c selftest: Add tests for XDP programs in CPUMAP entries 2020-07-16 17:00:32 +02:00
xdp_devmap_attach.c bpf: Selftests and tools use struct bpf_devmap_val from uapi 2020-06-09 11:36:19 -07:00
xdp_info.c selftests/bpf: Add test for bpf_get_link_xdp_id 2020-04-08 01:35:24 +02:00
xdp_link.c selftests/bpf: Turn on libbpf 1.0 mode and fix all IS_ERR checks 2021-05-25 17:32:35 -07:00
xdp_noinline.c selftests/bpf: Initialize duration in xdp_noinline.c 2020-10-02 16:46:20 +02:00
xdp_perf.c selftests: bpf: Add xdp_perf test 2019-12-13 13:09:32 -08:00
xdp.c selftests/bpf: Move existing common networking parts into network_helpers 2020-05-09 00:48:20 +02:00