linux-stable/tools/testing/selftests/bpf/prog_tests
Andrii Nakryiko ad9a7f9644 libbpf: Improve logging around BPF program loading
Add missing "prog '%s': " prefixes in few places and use consistently
markers for beginning and end of program load logs. Here's an example of
log output:

libbpf: prog 'handler': BPF program load failed: Permission denied
libbpf: -- BEGIN PROG LOAD LOG ---
arg#0 reference type('UNKNOWN ') size cannot be determined: -22
; out1 = in1;
0: (18) r1 = 0xffffc9000cdcc000
2: (61) r1 = *(u32 *)(r1 +0)

...

81: (63) *(u32 *)(r4 +0) = r5
 R1_w=map_value(id=0,off=16,ks=4,vs=20,imm=0) R4=map_value(id=0,off=400,ks=4,vs=16,imm=0)
invalid access to map value, value_size=16 off=400 size=4
R4 min value is outside of the allowed memory range
processed 63 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
 -- END PROG LOAD LOG --
libbpf: failed to load program 'handler'
libbpf: failed to load object 'test_skeleton'

The entire verifier log, including BEGIN and END markers are now always
youtput during a single print callback call. This should make it much
easier to post-process or parse it, if necessary. It's not an explicit
API guarantee, but it can be reasonably expected to stay like that.

Also __bpf_object__open is renamed to bpf_object_open() as it's always
an adventure to find the exact function that implements bpf_object's
open phase, so drop the double underscored and use internal libbpf
naming convention.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20211209193840.1248570-6-andrii@kernel.org
2021-12-10 15:29:17 -08:00
..
.gitignore
align.c selftests/bpf: Convert legacy prog load APIs to bpf_prog_load() 2021-11-07 08:34:23 -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: Update test names for xchg and cmpxchg 2021-12-02 12:10:15 -08:00
attach_probe.c selftests/bpf: Fix attach_probe in parallel mode 2021-10-27 11:59:02 -07:00
autoload.c
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: Migrate selftests to bpf_map_create() 2021-11-25 23:37:38 +01: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 bpf: Fix the test_task_vma selftest to support output shorter than 1 kB 2021-12-03 23:49:14 +01:00
bpf_iter_setsockopt.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
bpf_loop.c selftests/bpf: Add bpf_loop test 2021-11-30 10:56:28 -08:00
bpf_obj_id.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
bpf_tcp_ca.c libbpf: Improve logging around BPF program loading 2021-12-10 15:29:17 -08:00
bpf_verif_scale.c selftests/bpf: Remove all the uses of deprecated bpf_prog_load_xattr() 2021-12-02 15:23:40 -08:00
btf.c selftests/bpf: Migrate selftests to bpf_map_create() 2021-11-25 23:37:38 +01:00
btf_dedup_split.c selftests/bpf: Fix a compilation warning 2021-12-08 23:05:26 -08:00
btf_dump.c selftests/bpf: Fix UBSan complaint about signed __int128 overflow 2021-11-26 00:15:03 +01: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
btf_split.c selftests/bpf: Update btf_dump__new() uses to v1.0+ variant 2021-11-11 16:54:06 -08:00
btf_tag.c selftests/bpf: Add a C test for btf_type_tag 2021-11-11 17:41:11 -08:00
btf_write.c selftests/bpf: Test libbpf API function btf__add_type_tag() 2021-11-11 17:41:11 -08:00
cg_storage_multi.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
cgroup_attach_autodetach.c selftests/bpf: Use explicit bpf_test_load_program() helper calls 2021-11-07 08:34:24 -08:00
cgroup_attach_multi.c selftests/bpf: Migrate selftests to bpf_map_create() 2021-11-25 23:37:38 +01:00
cgroup_attach_override.c selftests/bpf: Use explicit bpf_test_load_program() helper calls 2021-11-07 08:34:24 -08: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 selftests/bpf: Remove all the uses of deprecated bpf_prog_load_xattr() 2021-12-02 15:23:40 -08: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
core_kern.c selftests/bpf: Additional test for CO-RE in the kernel. 2021-12-02 11:18:36 -08: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: Fix possible NULL passed to memcpy() with zero size 2021-11-26 00:15:03 +01:00
core_retro.c
cpu_mask.c
d_path.c
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
exhandler.c selftests/bpf: Add exception handling selftests for tp_bpf program 2021-11-08 22:17:55 +01: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 selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08: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 selftests/bpf: Convert legacy prog load APIs to bpf_prog_load() 2021-11-07 08:34:23 -08:00
fexit_test.c selftests/bpf: Add weak/typeless ksym test for light skeleton 2021-10-28 16:30:07 -07:00
find_vma.c selftests/bpf: Add tests for bpf_find_vma 2021-11-07 11:54:51 -08: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 selftests/bpf: Use explicit bpf_test_load_program() helper calls 2021-11-07 08:34:24 -08:00
flow_dissector_reattach.c selftests/bpf: Use explicit bpf_test_load_program() helper calls 2021-11-07 08:34:24 -08: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: Prevent misaligned memory access in get_stack_raw_tp test 2021-11-26 00:15:03 +01: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: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08: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: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
hash_large_key.c
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: Remove all the uses of deprecated bpf_prog_load_xattr() 2021-12-02 15:23:40 -08:00
kfunc_call.c selftests/bpf: Add lskel version of kfunc test. 2021-12-02 11:18:35 -08:00
ksyms.c
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: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
legacy_printk.c selftests/bpf: Mix legacy (maps) and modern (vars) BPF in one test 2021-11-25 23:05:23 +01: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 selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08: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
map_lock.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
map_ptr.c selftests/bpf: Convert map_ptr_kern test to use light skeleton. 2021-12-02 11:18:36 -08:00
metadata.c
migrate_reuseport.c selftests/bpf: Destroy XDP link correctly 2021-11-07 09:14:15 -08: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
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: Migrate all deprecated perf_buffer uses 2021-11-11 16:54:05 -08: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 selftests/bpf: Migrate selftests to bpf_map_create() 2021-11-25 23:37:38 +01:00
pkt_access.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
pkt_md_access.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
probe_read_user_str.c
probe_user.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
prog_array_init.c selftests/bpf: Test BPF_MAP_TYPE_PROG_ARRAY static initialization 2021-11-28 22:24:57 -08: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: Fix misaligned memory access in queue_stack_map test 2021-11-26 00:15:03 +01: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: Convert legacy prog load APIs to bpf_prog_load() 2021-11-07 08:34:23 -08:00
raw_tp_writable_test_run.c selftests/bpf: Convert legacy prog load APIs to bpf_prog_load() 2021-11-07 08:34:23 -08: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: Migrate selftests to bpf_map_create() 2021-11-25 23:37:38 +01:00
section_names.c
select_reuseport.c selftests/bpf: Migrate selftests to bpf_map_create() 2021-11-25 23:37:38 +01: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: Use explicit bpf_test_load_program() helper calls 2021-11-07 08:34:24 -08: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: Add tests for accessing ingress_ifindex in bpf_sk_lookup 2021-11-10 16:29:59 -08:00
sk_storage_tracing.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
skb_ctx.c selftests/bpf: Fix bpf_object leak in skb_ctx selftest 2021-11-07 09:14:15 -08:00
skb_helpers.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
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: Migrate selftests to bpf_map_create() 2021-11-25 23:37:38 +01:00
sockmap_ktls.c selftests/bpf: Migrate selftests to bpf_map_create() 2021-11-25 23:37:38 +01:00
sockmap_listen.c selftests/bpf: Migrate selftests to bpf_map_create() 2021-11-25 23:37:38 +01:00
sockopt.c selftests/bpf: Convert legacy prog load APIs to bpf_prog_load() 2021-11-07 08:34:23 -08:00
sockopt_inherit.c selftests/bpf: Remove all the uses of deprecated bpf_prog_load_xattr() 2021-12-02 15:23:40 -08:00
sockopt_multi.c selftests/bpf: Remove all the uses of deprecated bpf_prog_load_xattr() 2021-12-02 15:23:40 -08: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 selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08: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.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: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
stacktrace_map_raw_tp.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
static_linked.c selftests/bpf: Validate skeleton gen handles skipped fields 2021-05-13 17:23:57 -07:00
subprogs.c
syscall.c selftests/bpf: Test for btf_load command. 2021-05-19 00:33:40 +02:00
tailcalls.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
task_fd_query_rawtp.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
task_fd_query_tp.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
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 selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08: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 selftests/bpf: Remove all the uses of deprecated bpf_prog_load_xattr() 2021-12-02 15:23:40 -08: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: Prevent out-of-bounds stack access in test_bpffs 2021-11-26 00:15:03 +01:00
test_bprm_opts.c
test_global_funcs.c selftests/bpf: Remove all the uses of deprecated bpf_prog_load_xattr() 2021-12-02 15:23:40 -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
test_skb_pkt_end.c
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 selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
trace_ext.c
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
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 selftests/bpf: Fix misaligned accesses in xdp and xdp_bpf2bpf tests 2021-11-26 00:15:03 +01:00
xdp_adjust_tail.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
xdp_attach.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
xdp_bonding.c selftests/bpf: Fix misaligned memory accesses in xdp_bonding test 2021-11-26 00:15:03 +01:00
xdp_bpf2bpf.c selftests/bpf: Fix misaligned accesses in xdp and xdp_bpf2bpf tests 2021-11-26 00:15:03 +01: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 selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
xdp_link.c selfetest/bpf: Make some tests serial 2021-10-08 15:17:00 -07:00
xdp_noinline.c
xdp_perf.c selftests/bpf: Use explicit bpf_prog_test_load() calls everywhere 2021-11-07 08:34:23 -08:00
xdpwall.c bpf: selftest: A bpf prog that has a 32bit scalar spill 2021-09-26 13:07:28 -07:00