mirror_ubuntu-kernels/tools/testing/selftests/bpf/progs
Andrii Nakryiko 393cdfbee8 libbpf: Support initialized global variables
Initialized global variables are no different in ELF from static variables,
and don't require any extra support from libbpf. But they are matching
semantics of global data (backed by BPF maps) more closely, preventing
LLVM/Clang from aggressively inlining constant values and not requiring
volatile incantations to prevent those. This patch enables global variables.
It still disables uninitialized variables, which will be put into special COM
(common) ELF section, because BPF doesn't allow uninitialized data to be
accessed.

Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20191121070743.1309473-5-andriin@fb.com
2019-11-24 16:58:45 -08:00
..
bpf_flow.c selftests/bpf: fix race in flow dissector tests 2019-08-13 16:31:10 +02:00
btf__core_reloc_arrays___diff_arr_dim.c selftests/bpf: add CO-RE relocs array tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_arrays___diff_arr_val_sz.c selftests/bpf: add CO-RE relocs array tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_arrays___err_non_array.c selftests/bpf: add CO-RE relocs array tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_arrays___err_too_shallow.c selftests/bpf: add CO-RE relocs array tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_arrays___err_too_small.c selftests/bpf: add CO-RE relocs array tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_arrays___err_wrong_val_type.c selftests/bpf: Remove too strict field offset relo test cases 2019-11-04 16:06:56 +01:00
btf__core_reloc_arrays.c selftests/bpf: add CO-RE relocs array tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_bitfields___bit_sz_change.c selftest/bpf: Add relocatable bitfield reading tests 2019-11-04 16:06:56 +01:00
btf__core_reloc_bitfields___bitfield_vs_int.c selftest/bpf: Add relocatable bitfield reading tests 2019-11-04 16:06:56 +01:00
btf__core_reloc_bitfields___err_too_big_bitfield.c selftest/bpf: Add relocatable bitfield reading tests 2019-11-04 16:06:56 +01:00
btf__core_reloc_bitfields___just_big_enough.c selftest/bpf: Add relocatable bitfield reading tests 2019-11-04 16:06:56 +01:00
btf__core_reloc_bitfields.c selftest/bpf: Add relocatable bitfield reading tests 2019-11-04 16:06:56 +01:00
btf__core_reloc_existence___err_wrong_arr_kind.c selftests/bpf: Add field existence CO-RE relocs tests 2019-10-15 16:06:05 -07:00
btf__core_reloc_existence___err_wrong_arr_value_type.c selftests/bpf: Add field existence CO-RE relocs tests 2019-10-15 16:06:05 -07:00
btf__core_reloc_existence___err_wrong_int_kind.c selftests/bpf: Add field existence CO-RE relocs tests 2019-10-15 16:06:05 -07:00
btf__core_reloc_existence___err_wrong_int_sz.c selftests/bpf: Add field existence CO-RE relocs tests 2019-10-15 16:06:05 -07:00
btf__core_reloc_existence___err_wrong_int_type.c selftests/bpf: Add field existence CO-RE relocs tests 2019-10-15 16:06:05 -07:00
btf__core_reloc_existence___err_wrong_struct_type.c selftests/bpf: Add field existence CO-RE relocs tests 2019-10-15 16:06:05 -07:00
btf__core_reloc_existence___minimal.c selftests/bpf: Add field existence CO-RE relocs tests 2019-10-15 16:06:05 -07:00
btf__core_reloc_existence.c selftests/bpf: Add field existence CO-RE relocs tests 2019-10-15 16:06:05 -07:00
btf__core_reloc_flavors__err_wrong_name.c selftests/bpf: add CO-RE relocs struct flavors tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_flavors.c selftests/bpf: add CO-RE relocs struct flavors tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_ints___bool.c selftests/bpf: add CO-RE relocs ints tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_ints___reverse_sign.c selftests/bpf: add CO-RE relocs ints tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_ints.c selftests/bpf: add CO-RE relocs ints tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_misc.c selftests/bpf: add CO-RE relocs misc tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_mods___mod_swap.c selftests/bpf: add CO-RE relocs modifiers/typedef tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_mods___typedefs.c selftests/bpf: add CO-RE relocs modifiers/typedef tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_mods.c selftests/bpf: add CO-RE relocs modifiers/typedef tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___anon_embed.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___dup_compat_types.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___err_array_container.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___err_array_field.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___err_dup_incompat_types.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___err_missing_container.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___err_missing_field.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___err_nonstruct_container.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___err_partial_match_dups.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___err_too_deep.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___extra_nesting.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting___struct_union_mixup.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_nesting.c selftests/bpf: add CO-RE relocs nesting tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_primitives___diff_enum_def.c selftests/bpf: add CO-RE relocs enum/ptr/func_proto tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_primitives___diff_func_proto.c selftests/bpf: add CO-RE relocs enum/ptr/func_proto tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_primitives___diff_ptr_type.c selftests/bpf: add CO-RE relocs enum/ptr/func_proto tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_primitives___err_non_enum.c selftests/bpf: add CO-RE relocs enum/ptr/func_proto tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_primitives___err_non_int.c selftests/bpf: add CO-RE relocs enum/ptr/func_proto tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_primitives___err_non_ptr.c selftests/bpf: add CO-RE relocs enum/ptr/func_proto tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_primitives.c selftests/bpf: add CO-RE relocs enum/ptr/func_proto tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_ptr_as_arr___diff_sz.c selftests/bpf: add CO-RE relocs ptr-as-array tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_ptr_as_arr.c selftests/bpf: add CO-RE relocs ptr-as-array tests 2019-08-07 14:43:49 -07:00
btf__core_reloc_size___diff_sz.c selftests/bpf: Add field size relocation tests 2019-11-04 16:06:56 +01:00
btf__core_reloc_size.c selftests/bpf: Add field size relocation tests 2019-11-04 16:06:56 +01:00
btf_dump_test_case_bitfields.c selftests/bpf: add btf_dump BTF-to-C conversion tests 2019-05-24 14:05:58 -07:00
btf_dump_test_case_multidim.c selftests/bpf: add btf_dump BTF-to-C conversion tests 2019-05-24 14:05:58 -07:00
btf_dump_test_case_namespacing.c selftests/bpf: add btf_dump BTF-to-C conversion tests 2019-05-24 14:05:58 -07:00
btf_dump_test_case_ordering.c selftests/bpf: add btf_dump BTF-to-C conversion tests 2019-05-24 14:05:58 -07:00
btf_dump_test_case_packing.c selftests/bpf: add btf_dump BTF-to-C conversion tests 2019-05-24 14:05:58 -07:00
btf_dump_test_case_padding.c selftests/bpf: Fix btf_dump padding test case 2019-10-09 15:38:36 -07:00
btf_dump_test_case_syntax.c selftests/bpf: add btf_dump BTF-to-C conversion tests 2019-05-24 14:05:58 -07:00
connect4_prog.c
connect6_prog.c
core_reloc_types.h selftests/bpf: Add field size relocation tests 2019-11-04 16:06:56 +01:00
dev_cgroup.c
fentry_test.c selftests/bpf: Add test for BPF trampoline 2019-11-15 23:43:15 +01:00
fexit_bpf2bpf.c selftests/bpf: Add a test for attaching BPF prog to another BPF prog and subprog 2019-11-15 23:46:09 +01:00
fexit_test.c selftests/bpf: Add fexit tests for BPF trampoline 2019-11-15 23:43:28 +01:00
get_cgroup_id_kern.c selftests/bpf: convert legacy BPF maps to BTF-defined ones 2019-07-05 22:52:25 +02:00
kfree_skb.c selftest/bpf: Simple test for fentry/fexit 2019-11-15 23:42:46 +01:00
loop1.c selftests/bpf: Split off tracing-only helpers into bpf_tracing.h 2019-10-08 23:16:03 +02:00
loop2.c selftests/bpf: Split off tracing-only helpers into bpf_tracing.h 2019-10-08 23:16:03 +02:00
loop3.c selftests/bpf: Split off tracing-only helpers into bpf_tracing.h 2019-10-08 23:16:03 +02:00
loop4.c selftests/bpf: add loop test 4 2019-08-06 08:20:25 -07:00
loop5.c selftests/bpf: add loop test 5 2019-08-06 08:20:31 -07:00
netcnt_prog.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
pyperf50.c selftests/bpf: add pyperf scale test 2019-05-23 16:20:57 +02:00
pyperf100.c selftests/bpf: add pyperf scale test 2019-05-23 16:20:57 +02:00
pyperf180.c selftests/bpf: add pyperf scale test 2019-05-23 16:20:57 +02:00
pyperf600_nounroll.c selftests/bpf: add realistic loop tests 2019-06-19 02:22:52 +02:00
pyperf600.c selftests/bpf: add realistic loop tests 2019-06-19 02:22:52 +02:00
pyperf.h bpf, testing: Convert prog tests to probe_read_{user, kernel}{, _str} helper 2019-11-02 12:39:13 -07:00
sample_map_ret0.c
sample_ret0.c
sendmsg4_prog.c
sendmsg6_prog.c selftests/bpf: fix sendmsg6_prog on s390 2019-07-22 16:19:06 +02:00
socket_cookie_prog.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
sockmap_parse_prog.c selftests/bpf: remove bpf_util.h from BPF C progs 2019-06-11 10:36:02 +02:00
sockmap_tcp_msg_prog.c selftests/bpf: remove bpf_util.h from BPF C progs 2019-06-11 10:36:02 +02:00
sockmap_verdict_prog.c selftests/bpf: convert legacy BPF maps to BTF-defined ones 2019-07-05 22:52:25 +02:00
sockopt_inherit.c selftests/bpf: add sockopt clone/inheritance test 2019-08-17 23:18:54 +02:00
sockopt_multi.c selftests/bpf: add sockopt test that exercises BPF_F_ALLOW_MULTI 2019-06-27 15:25:17 -07:00
sockopt_sk.c selftests/bpf: samples/bpf: Split off legacy stuff from bpf_helpers.h 2019-10-08 23:16:03 +02:00
strobemeta_nounroll1.c selftests/bpf: add realistic loop tests 2019-06-19 02:22:52 +02:00
strobemeta_nounroll2.c selftests/bpf: add realistic loop tests 2019-06-19 02:22:52 +02:00
strobemeta.c selftests/bpf: add realistic loop tests 2019-06-19 02:22:52 +02:00
strobemeta.h bpf, testing: Convert prog tests to probe_read_{user, kernel}{, _str} helper 2019-11-02 12:39:13 -07:00
tcp_rtt.c selftests/bpf: samples/bpf: Split off legacy stuff from bpf_helpers.h 2019-10-08 23:16:03 +02:00
test_adjust_tail.c
test_attach_probe.c libbpf: stop enforcing kern_version, populate it for users 2019-10-05 18:09:47 -07:00
test_btf_haskv.c libbpf: Fix call relocation offset calculation bug 2019-11-19 15:00:12 -08:00
test_btf_newkv.c libbpf: Fix call relocation offset calculation bug 2019-11-19 15:00:12 -08:00
test_btf_nokv.c libbpf: Fix call relocation offset calculation bug 2019-11-19 15:00:12 -08:00
test_core_reloc_arrays.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_bitfields_direct.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_bitfields_probed.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_existence.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_flavors.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_ints.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_kernel.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_misc.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_mods.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_nesting.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_primitives.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_ptr_as_arr.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_core_reloc_size.c libbpf: Support initialized global variables 2019-11-24 16:58:45 -08:00
test_get_stack_rawtp.c libbpf: stop enforcing kern_version, populate it for users 2019-10-05 18:09:47 -07:00
test_global_data.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_jhash.h selftests: bpf: standardize to static __always_inline 2019-07-03 15:06:33 +02:00
test_l4lb_noinline.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_l4lb.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_lirc_mode2_kern.c
test_lwt_ip_encap.c
test_lwt_seg6local.c selftests/bpf: introduce bpf_cpu_to_be64 and bpf_be64_to_cpu 2019-09-03 21:01:52 +02:00
test_map_in_map.c selftests/bpf: convert legacy BPF maps to BTF-defined ones 2019-07-05 22:52:25 +02:00
test_map_lock.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_mmap.c selftests/bpf: Add BPF_TYPE_MAP_ARRAY mmap() tests 2019-11-18 11:42:00 +01:00
test_obj_id.c selftests/bpf: convert legacy BPF maps to BTF-defined ones 2019-07-05 22:52:25 +02:00
test_perf_buffer.c libbpf: stop enforcing kern_version, populate it for users 2019-10-05 18:09:47 -07:00
test_pinning_invalid.c selftests: Add tests for automatic map pinning 2019-11-02 12:35:07 -07:00
test_pinning.c selftests/bpf: Add tests for automatic map unpinning on load failure 2019-11-10 19:26:30 -08:00
test_pkt_access.c selftests/bpf: Extend test_pkt_access test 2019-11-15 23:45:50 +01:00
test_pkt_md_access.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206 2019-05-30 11:29:53 -07:00
test_probe_user.c bpf, testing: Add selftest to read/write sockaddr from user space 2019-11-02 12:45:08 -07:00
test_queue_map.c
test_queue_stack_map.h selftests/bpf: Move test_queue_stack_map.h into progs/ where it belongs 2019-10-17 12:15:08 -07:00
test_rdonly_maps.c selftests/bpf: Add read-only map values propagation tests 2019-10-11 01:49:15 +02:00
test_seg6_loop.c selftests, bpf: Workaround an alu32 sub-register spilling issue 2019-11-18 21:37:00 +01:00
test_select_reuseport_kern.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_send_signal_kern.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_sk_lookup_kern.c selftests/bpf: Make reference_tracking test use subtests 2019-10-21 14:49:12 +02:00
test_skb_cgroup_id_kern.c
test_skb_ctx.c selftests: bpf: Add selftest for __sk_buff tstamp 2019-10-15 16:24:26 -07:00
test_sock_fields_kern.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_sockhash_kern.c
test_sockmap_kern.c
test_spin_lock.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_stack_map.c
test_stacktrace_build_id.c selftests/bpf: use typedef'ed arrays as map values 2019-07-15 23:02:17 +02:00
test_stacktrace_map.c libbpf: stop enforcing kern_version, populate it for users 2019-10-05 18:09:47 -07:00
test_sysctl_loop1.c bpf, testing: Workaround a verifier failure for test_progs 2019-11-11 14:03:10 +01:00
test_sysctl_loop2.c selftests/bpf: add realistic loop tests 2019-06-19 02:22:52 +02:00
test_sysctl_prog.c selftests/bpf: remove bpf_util.h from BPF C progs 2019-06-11 10:36:02 +02:00
test_tc_edt.c selftests/bpf: add bpf-gcc support 2019-09-16 09:32:00 +02:00
test_tc_tunnel.c selftests/bpf: expand test_tc_tunnel with SIT encap 2019-04-24 01:32:26 +02:00
test_tcp_check_syncookie_kern.c selftests/bpf: add test for bpf_tcp_gen_syncookie 2019-07-30 21:03:05 -07:00
test_tcp_estats.c bpf, testing: Convert prog tests to probe_read_{user, kernel}{, _str} helper 2019-11-02 12:39:13 -07:00
test_tcpbpf_kern.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_tcpnotify_kern.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
test_tracepoint.c
test_tunnel_kern.c
test_verif_scale1.c selftests/bpf: add few verifier scale tests 2019-04-04 01:27:38 +02:00
test_verif_scale2.c selftests: bpf: standardize to static __always_inline 2019-07-03 15:06:33 +02:00
test_verif_scale3.c selftests/bpf: add few verifier scale tests 2019-04-04 01:27:38 +02:00
test_xdp_loop.c selftests/bpf: convert legacy BPF maps to BTF-defined ones 2019-07-05 22:52:25 +02:00
test_xdp_meta.c
test_xdp_noinline.c selftests/bpf: fix test_xdp_noinline on s390 2019-07-18 13:54:54 -07:00
test_xdp_redirect.c
test_xdp_vlan.c
test_xdp.c selftests/bpf: convert selftests using BTF-defined maps to new syntax 2019-07-05 22:52:25 +02:00
xdp_dummy.c
xdp_redirect_map.c selftests/bpf: convert legacy BPF maps to BTF-defined ones 2019-07-05 22:52:25 +02:00
xdp_tx.c selftests, bpf: Add test for veth native XDP 2019-06-24 18:18:30 -07:00
xdping_kern.c selftests/bpf: convert legacy BPF maps to BTF-defined ones 2019-07-05 22:52:25 +02:00