Message ID | 20250327144013.98005-1-alexei.starovoitov@gmail.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | [GIT,PULL] Main BPF changes for 6.15 | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Pull request for net, async |
netdev/build_32bit | success | Errors and warnings before: 518 this patch: 518 |
netdev/build_tools | success | Errors and warnings before: 26 (+0) this patch: 26 (+0) |
netdev/build_clang | success | Errors and warnings before: 966 this patch: 966 |
netdev/verify_signedoff | success | Signed-off-by tag matches author and committer |
netdev/verify_fixes | fail | Problems with Fixes tag: 1 |
netdev/build_allmodconfig_warn | fail | Errors and warnings before: 15128 this patch: 15133 |
netdev/build_clang_rust | success | No Rust files in patch. Skipping build |
netdev/kdoc | fail | Errors and warnings before: 66 this patch: 68 |
On Thu, 27 Mar 2025 at 07:40, Alexei Starovoitov <alexei.starovoitov@gmail.com> wrote: > > For this merge window we're splitting BPF pull request into > three for higher visibility: main changes, res_spin_lock, > try_alloc_pages. Thanks. I appreciate it. This makes it much easier for me to walk through the changes that end up affecting what is usually non-bpf areas. Linus
The pull request you sent on Thu, 27 Mar 2025 10:40:13 -0400:
> https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git tags/bpf-next-6.15
has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/fa593d0f969dcfa41d390822fdf1a0ab48cd882c
Thank you!
Hi Linus, The following changes since commit 319fc77f8f45a1b3dba15b0cc1a869778fd222f7: Merge tag 'bpf-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf (2025-02-20 15:37:17 -0800) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git tags/bpf-next-6.15 for you to fetch changes up to 9aa8fe29f624610b4694d5b5695e1017c4753f31: Merge branch 'bpf-fix-oob-read-and-add-tests-for-load-acquire-store-release' (2025-03-22 06:19:09 -0700) ---------------------------------------------------------------- For this merge window we're splitting BPF pull request into three for higher visibility: main changes, res_spin_lock, try_alloc_pages. These are the main BPF changes: - Add DFA-based live registers analysis to improve verification of programs with loops (Eduard Zingerman) - Introduce load_acquire and store_release BPF instructions and add x86, arm64 JIT support (Peilin Ye) - Fix loop detection logic in the verifier (Eduard Zingerman) - Drop unnecesary lock in bpf_map_inc_not_zero() (Eric Dumazet) - Add kfunc for populating cpumask bits (Emil Tsalapatis) - Convert various shell based tests to selftests/bpf/test_progs format (Bastien Curutchet) - Allow passing referenced kptrs into struct_ops callbacks (Amery Hung) - Add a flag to LSM bpf hook to facilitate bpf program signing (Blaise Boscaccy) - Track arena arguments in kfuncs (Ihor Solodrai) - Add copy_remote_vm_str() helper for reading strings from remote VM and bpf_copy_from_user_task_str() kfunc (Jordan Rome) - Add support for timed may_goto instruction (Kumar Kartikeya Dwivedi) - Allow bpf_get_netns_cookie() int cgroup_skb programs (Mahe Tardy) - Reduce bpf_cgrp_storage_busy false positives when accessing cgroup local storage (Martin KaFai Lau) - Introduce bpf_dynptr_copy() kfunc (Mykyta Yatsenko) - Allow retrieving BTF data with BTF token (Mykyta Yatsenko) - Add BPF kfuncs to set and get xattrs with "security.bpf." prefix (Song Liu) - Reject attaching programs to noreturn functions (Yafang Shao) - Introduce pre-order traversal of cgroup bpf programs (Yonghong Song) Signed-off-by: Alexei Starovoitov <ast@kernel.org> ---------------------------------------------------------------- Alexei Starovoitov (18): Merge branch 'enable-writing-xattr-from-bpf-programs' Merge branch 'bpf-fix-array-bounds-error-with-may_goto-and-add-selftest' Merge branch 'extend-struct_ops-support-for-operators' Merge branch 'bpf-copy_verifier_state-should-copy-loop_entry-field' Merge branch 'selftests-bpf-tc_links-tc_opts-unserialize-tests' Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf bpf-6.14-rc4 bpf: Fix deadlock between rcu_tasks_trace and event_mutex. Merge branch 'optimize-bpf-selftest-to-increase-ci-success-rate' Merge branch 'global-subprogs-in-rcu-preempt-irq-disabled-sections' Merge branch 'timed-may_goto' Merge branch 'introduce-load-acquire-and-store-release-bpf-instructions' Merge branch 'bpf-simple-dfa-based-live-registers-analysis' Merge branch 'arena-spin-lock' Merge branch 'selftests-bpf-move-test_lwt_seg6local-to-test_progs' Merge branch 'bpf-introduce-helper-for-populating-bpf_cpumask' Merge branch 'security-propagate-caller-information-in-bpf-hooks' Merge branch 'bpf-reject-attaching-fexit-fmod_ret-to-noreturn-functions' Merge branch 'bpf-fix-oob-read-and-add-tests-for-load-acquire-store-release' Alexis Lothoré (eBPF Foundation) (2): selftests/bpf: Enable kprobe_multi tests for ARM64 bpf/selftests: test_select_reuseport_kern: Remove unused header Amery Hung (14): selftests/bpf: Fix stdout race condition in traffic monitor bpf: Make every prog keep a copy of ctx_arg_info bpf: Support getting referenced kptr from struct_ops argument selftests/bpf: Test referenced kptr arguments of struct_ops programs bpf: Allow struct_ops prog to return referenced kptr selftests/bpf: Test returning referenced kptr from struct_ops programs bpf: Do not allow tail call in strcut_ops program with __ref argument selftests/bpf: Test struct_ops program with __ref arg calling bpf_tail_call bpf: Refactor check_ctx_access() bpf: Search and add kfuncs in struct_ops prologue and epilogue selftests/bpf: Test gen_pro/epilogue that generate kfuncs selftests/bpf: Clean up call sites of stdio_restore() selftests/bpf: Allow assigning traffic monitor print function selftests/bpf: Fix dangling stdout seen by traffic monitor thread Andrea Terzolo (1): bpf: clarify a misleading verifier error message Andrii Nakryiko (10): Merge branch 'btf-arbitrary-__attribute__-encoding' libbpf: fix LDX/STX/ST CO-RE relocation size adjustment logic selftests/bpf: add test for LDX/STX/ST relocations over array field libbpf: Fix hypothetical STT_SECTION extern NULL deref case Merge branch 'selftests-bpf-implement-setting-global-variables-in-veristat' Merge branch 'introduce-bpf_dynptr_copy-kfunc' Merge branch 'veristat-files-list-txt-notation-for-object-files-list' Merge branch 'introduce-bpf_object__prepare' Merge branch 'support-freplace-prog-from-user-namespace' Merge branch 'bpftool-using-the-right-format-specifiers' Anton Protopopov (1): selftests/bpf: Fix selection of static vs. dynamic LLVM Arnd Bergmann (1): bpf: preload: Add MODULE_DESCRIPTION Bastien Curutchet (eBPF Foundation) (36): selftests/bpf: helpers: Add append_tid() selftests/bpf: test_xdp_veth: Remove unused defines selftests/bpf: test_xdp_veth: Remove unecessarry check_ping() selftests/bpf: test_xdp_veth: Use int to describe next veth selftests/bpf: test_xdp_veth: Split network configuration selftests/bpf: test_xdp_veth: Rename config[] selftests/bpf: test_xdp_veth: Add prog_config[] table selftests/bpf: test_xdp_veth: Add XDP flags to prog_configuration selftests/bpf: test_xdp_veth: Use unique names selftests/bpf: test_xdp_veth: Add new test cases for XDP flags selftests/bpf: Remove with_addr.sh and with_tunnels.sh selftests/bpf: test_xdp_veth: Create struct net_configuration selftests/bpf: test_xdp_veth: Use a dedicated namespace selftests/bpf: Optionally select broadcasting flags selftests/bpf: test_xdp_veth: Add XDP broadcast redirection tests selftests/bpf: test_xdp_veth: Add XDP program on egress test selftests/bpf: Remove test_xdp_redirect_multi.sh selftests/bpf: ns_current_pid_tgid: Rename the test function selftests/bpf: Optionally open a dedicated namespace to run test in it selftests/bpf: tc_links/tc_opts: Unserialize tests selftests/bpf: ns_current_pid_tgid: Use test_progs's ns_ feature selftests/bpf: test_tunnel: Add generic_attach* helpers selftests/bpf: test_tunnel: Add ping helpers selftests/bpf: test_tunnel: Move gre tunnel test to test_progs selftests/bpf: test_tunnel: Move ip6gre tunnel test to test_progs selftests/bpf: test_tunnel: Move erspan tunnel tests to test_progs selftests/bpf: test_tunnel: Move ip6erspan tunnel test to test_progs selftests/bpf: test_tunnel: Move geneve tunnel test to test_progs selftests/bpf: test_tunnel: Move ip6geneve tunnel test to test_progs selftests/bpf: test_tunnel: Move ip6tnl tunnel tests to test_progs selftests/bpf: test_tunnel: Remove test_tunnel.sh selftests/bpf: Move test_lwt_ip_encap to test_progs selftests/bpf: lwt_seg6local: Remove unused routes selftests/bpf: lwt_seg6local: Move test to test_progs selftests/bpf: test_xdp_vlan: Rename BPF sections selftests/bpf: Migrate test_xdp_vlan.sh into test_progs Björn Töpel (1): selftests/bpf: Sanitize pointer prior fclose() Blaise Boscaccy (2): security: Propagate caller information in bpf hooks selftests/bpf: Add a kernel flag test for LSM bpf hook Breno Leitao (1): net: filter: Avoid shadowing variable in bpf_convert_ctx_access() Chen Ni (1): selftests/bpf: Convert comma to semicolon Daniel Xu (1): selftests/bpf: Support dynamically linking LLVM if static is not available Eduard Zingerman (20): bpf: copy_verifier_state() should copy 'loop_entry' field selftests/bpf: test correct loop_entry update in copy_verifier_state bpf: don't do clean_live_states when state->loop_entry->branches > 0 selftests/bpf: check states pruning for deeply nested iterator bpf: detect infinite loop in get_loop_entry() bpf: make state->dfs_depth < state->loop_entry->dfs_depth an invariant bpf: do not update state->loop_entry in get_loop_entry() bpf: use list_head to track explored states and free list bpf: free verifier states when they are no longer referenced bpf: fix env->peak_states computation bpf: abort verification if env->cur_state->loop_entry != NULL veristat: @files-list.txt notation for object files list veristat: Strerror expects positive number (errno) veristat: Report program type guess results to sdterr bpf: jmp_offset() and verbose_insn() utility functions bpf: get_call_summary() utility function bpf: simple DFA-based live registers analysis bpf: use register liveness information for func_states_equal selftests/bpf: test cases for compute_live_registers() bpf: correct use/def for may_goto instruction Emil Tsalapatis (5): bpf: add kfunc for populating cpumask bits selftests: bpf: add bpf_cpumask_populate selftests bpf: fix missing kdoc string fields in cpumask.c selftests: bpf: fix duplicate selftests in cpumask_success. bpf: Make perf_event_read_output accessible in all program types. Eric Dumazet (1): bpf: no longer acquire map_idr_lock in bpf_map_inc_not_zero() Feng Yang (1): selftests/bpf: Fix cap_enable_effective() return code Hou Tao (2): bpf: Use preempt_count() directly in bpf_send_signal_common() bpf: Check map->record at the beginning of check_and_free_fields() Ian Rogers (1): libbpf: Add namespace for errstr making it libbpf_errstr Ihor Solodrai (9): libbpf: Introduce kflag for type_tags and decl_tags in BTF docs/bpf: Document the semantics of BTF tags with kind_flag libbpf: Check the kflag of type tags in btf_dump selftests/bpf: Add a btf_dump test for type_tags bpf: Allow kind_flag for BTF type and decl tags selftests/bpf: Add a BTF verification test for kflagged type_tag bpf: define KF_ARENA_* flags for bpf_arena kfuncs libbpf: Implement bpf_usdt_arg_size BPF function selftests/bpf: Test bpf_usdt_arg_size() function Jason Xing (1): selftests/bpf: Correct the check of join cgroup Jiayuan Chen (9): bpftool: Using the right format specifiers bpf: Fix array bounds error with may_goto selftests/bpf: Introduce __load_if_JITed annotation for tests selftests/bpf: Add selftest for may_goto selftests/bpf: Allow auto port binding for cgroup connect selftests/bpf: Allow auto port binding for bpf nf selftests/bpf: Fixes for test_maps test bpftool: Add -Wformat-signedness flag to detect format errors bpftool: Using the right format specifiers Jinghao Jia (1): samples/bpf: Fix broken vmlinux path for VMLINUX_BTF Jiri Olsa (1): bpf: Add tracepoints with null-able arguments Jordan Rome (3): mm: Add copy_remote_vm_str() for readng C strings from remote VM bpf: Add bpf_copy_from_user_task_str() kfunc selftests/bpf: Add tests for bpf_copy_from_user_task_str Juntong Deng (1): bpf: Add struct_ops context information to struct bpf_prog_aux Kohei Enju (2): bpf: Fix out-of-bounds read in check_atomic_load/store() selftests/bpf: Add selftests for load-acquire/store-release when register number is invalid Kumar Kartikeya Dwivedi (10): bpf: Summarize sleepable global subprogs selftests/bpf: Test sleepable global subprogs in atomic contexts selftests/bpf: Add tests for extending sleepable global subprogs bpf: Add verifier support for timed may_goto bpf, x86: Add x86 JIT support for timed may_goto selftests/bpf: Introduce cond_break_label selftests/bpf: Introduce arena spin lock selftests/bpf: Add tests for arena spin lock selftests/bpf: Fix arena_spin_lock compilation on PowerPC bpf, x86: Fix objtool warning for timed may_goto Levi Zim (1): bpf: Add comment about helper freeze Mahe Tardy (2): bpf: add get_netns_cookie helper to cgroup_skb programs selftests/bpf: add cgroup_skb netns cookie tests Martin KaFai Lau (6): bpf: Use kallsyms to find the function name of a struct_ops's stub function Merge branch 'selftests-bpf-migrate-test_xdp_redirect_multi-sh-to-test_progs' Merge branch 'selftests-bpf-migrate-test_xdp_redirect_multi-sh-to-test_progs' Merge branch 'selftests-bpf-migrate-test_tunnel-sh-to-test_progs' bpf: Only fails the busy counter check in bpf_cgrp_storage_get if it creates storage Merge branch 'selftests-bpf-migrate-test_xdp_vlan-sh-into-test_progs' Mykyta Yatsenko (13): selftests/bpf: Implement setting global variables in veristat selftests/bpf: Introduce veristat test bpf/helpers: Refactor bpf_dynptr_read and bpf_dynptr_write bpf/helpers: Introduce bpf_dynptr_copy kfunc selftests/bpf: Add tests for bpf_dynptr_copy libbpf: Use map_is_created helper in map setters libbpf: Introduce more granular state for bpf_object libbpf: Split bpf object load into prepare/load selftests/bpf: Add tests for bpf_object__prepare bpf: BPF token support for BPF_BTF_GET_FD_BY_ID bpf: Return prog btf_id without capable check libbpf: Pass BPF token from find_prog_btf_id to BPF_BTF_GET_FD_BY_ID selftests/bpf: Test freplace from user namespace Nandakumar Edamana (1): libbpf: Fix out-of-bound read Peilin Ye (9): bpf: Factor out atomic_ptr_type_ok() bpf: Factor out check_atomic_rmw() bpf: Factor out check_load_mem() and check_store_reg() bpf: Introduce load-acquire and store-release instructions arm64: insn: Add BIT(23) to {load,store}_ex's mask arm64: insn: Add load-acquire and store-release instructions bpf, arm64: Support load-acquire and store-release instructions bpf, x86: Support load-acquire and store-release instructions selftests/bpf: Add selftests for load-acquire and store-release instructions Pu Lehui (1): kbuild, bpf: Correct pahole version that supports distilled base btf feature Rong Tao (1): bpftool: Check map name length when map create Saket Kumar Bhaskar (3): selftests/bpf: Define SYS_PREFIX for powerpc selftests/bpf: Select NUMA_NO_NODE to create map selftests/bpf: Fix sockopt selftest failure on powerpc Sewon Nam (1): bpf: bpftool: Setting error code in do_loader() Song Liu (6): fs/xattr: bpf: Introduce security.bpf. xattr name prefix selftests/bpf: Extend test fs_kfuncs to cover security.bpf. xattr names bpf: lsm: Add two more sleepable hooks bpf: fs/xattr: Add BPF kfuncs to set and remove xattrs selftests/bpf: Test kfuncs that set and remove xattr from BPF programs bpf: arm64: Silence "UBSAN: negation-overflow" warning T.J. Mercier (1): bpf, docs: Fix broken link to renamed bpf_iter_task_vmas.c Tao Chen (1): libbpf: Wrap libbpf API direct err with libbpf_err Tengda Wu (1): selftests/bpf: Fix freplace_link segfault in tailcalls prog test Tony Ambardar (2): libbpf: Fix accessing BTF.ext core_relo header selftests/bpf: Fix runqslower cross-endian build Viktor Malik (2): bpftool: Fix readlink usage in get_fd_type selftests/bpf: Fix string read in strncmp benchmark Yafang Shao (2): bpf: Reject attaching fexit/fmod_ret to __noreturn functions selftests/bpf: Add selftest for attaching fexit to __noreturn functions Yonghong Song (5): bpf: Sync uapi bpf.h header for the tooling infra bpf: Fix kmemleak warning for percpu hashmap docs/bpf: Document some special sdiv/smod operations bpf: Allow pre-ordering for bpf cgroup progs selftests/bpf: Add selftests allowing cgroup prog pre-ordering Documentation/bpf/bpf_iterators.rst | 2 +- Documentation/bpf/btf.rst | 25 +- .../bpf/standardization/instruction-set.rst | 20 +- arch/arm64/include/asm/insn.h | 12 +- arch/arm64/lib/insn.c | 29 + arch/arm64/net/bpf_jit.h | 20 + arch/arm64/net/bpf_jit_comp.c | 92 +- arch/s390/net/bpf_jit_comp.c | 14 +- arch/x86/net/Makefile | 2 +- arch/x86/net/bpf_jit_comp.c | 100 +- arch/x86/net/bpf_timed_may_goto.S | 55 + fs/bpf_fs_kfuncs.c | 225 +++- include/linux/bpf-cgroup.h | 1 + include/linux/bpf.h | 31 +- include/linux/bpf_lsm.h | 18 + include/linux/bpf_verifier.h | 32 +- include/linux/btf.h | 3 + include/linux/filter.h | 20 + include/linux/lsm_hook_defs.h | 6 +- include/linux/mm.h | 5 + include/linux/security.h | 12 +- include/uapi/linux/bpf.h | 10 +- include/uapi/linux/btf.h | 3 +- include/uapi/linux/xattr.h | 4 + kernel/bpf/arena.c | 4 +- kernel/bpf/bpf_cgrp_storage.c | 11 +- kernel/bpf/bpf_iter.c | 13 +- kernel/bpf/bpf_lsm.c | 2 + kernel/bpf/bpf_struct_ops.c | 135 +- kernel/bpf/btf.c | 127 +- kernel/bpf/cgroup.c | 33 +- kernel/bpf/core.c | 117 +- kernel/bpf/cpumask.c | 53 + kernel/bpf/disasm.c | 16 +- kernel/bpf/hashtab.c | 9 +- kernel/bpf/helpers.c | 123 +- kernel/bpf/preload/bpf_preload_kern.c | 1 + kernel/bpf/syscall.c | 48 +- kernel/bpf/verifier.c | 1376 +++++++++++++++----- kernel/trace/bpf_trace.c | 14 +- mm/memory.c | 118 ++ mm/nommu.c | 79 ++ net/core/filter.c | 6 +- samples/bpf/Makefile | 2 +- scripts/Makefile.btf | 2 +- security/security.c | 15 +- security/selinux/hooks.c | 6 +- tools/bpf/bpftool/Makefile | 7 +- tools/bpf/bpftool/btf.c | 14 +- tools/bpf/bpftool/btf_dumper.c | 2 +- tools/bpf/bpftool/cgroup.c | 2 +- tools/bpf/bpftool/common.c | 7 +- tools/bpf/bpftool/gen.c | 12 +- tools/bpf/bpftool/jit_disasm.c | 3 +- tools/bpf/bpftool/link.c | 14 +- tools/bpf/bpftool/main.c | 8 +- tools/bpf/bpftool/map.c | 14 +- tools/bpf/bpftool/map_perf_ring.c | 6 +- tools/bpf/bpftool/net.c | 4 +- tools/bpf/bpftool/netlink_dumper.c | 6 +- tools/bpf/bpftool/prog.c | 13 +- tools/bpf/bpftool/tracelog.c | 2 +- tools/bpf/bpftool/xlated_dumper.c | 6 +- tools/bpf/runqslower/Makefile | 3 +- tools/include/uapi/linux/bpf.h | 10 +- tools/include/uapi/linux/btf.h | 3 +- tools/lib/bpf/bpf.c | 3 +- tools/lib/bpf/bpf.h | 3 +- tools/lib/bpf/btf.c | 105 +- tools/lib/bpf/btf.h | 3 + tools/lib/bpf/btf_dump.c | 5 +- tools/lib/bpf/libbpf.c | 237 ++-- tools/lib/bpf/libbpf.h | 13 + tools/lib/bpf/libbpf.map | 3 + tools/lib/bpf/libbpf_internal.h | 1 + tools/lib/bpf/linker.c | 2 +- tools/lib/bpf/relo_core.c | 24 +- tools/lib/bpf/str_error.c | 2 +- tools/lib/bpf/str_error.h | 7 +- tools/lib/bpf/usdt.bpf.h | 32 + tools/testing/selftests/bpf/DENYLIST.aarch64 | 9 - tools/testing/selftests/bpf/Makefile | 28 +- tools/testing/selftests/bpf/bpf_arena_spin_lock.h | 533 ++++++++ tools/testing/selftests/bpf/bpf_atomic.h | 140 ++ tools/testing/selftests/bpf/bpf_experimental.h | 15 +- tools/testing/selftests/bpf/bpf_kfuncs.h | 5 + tools/testing/selftests/bpf/cap_helpers.c | 8 +- tools/testing/selftests/bpf/cap_helpers.h | 1 + tools/testing/selftests/bpf/network_helpers.c | 111 +- tools/testing/selftests/bpf/network_helpers.h | 21 + tools/testing/selftests/bpf/prog_tests/align.c | 11 +- .../selftests/bpf/prog_tests/arena_atomics.c | 66 +- .../selftests/bpf/prog_tests/arena_spin_lock.c | 108 ++ .../selftests/bpf/prog_tests/bloom_filter_map.c | 5 + tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 68 + tools/testing/selftests/bpf/prog_tests/bpf_nf.c | 9 +- tools/testing/selftests/bpf/prog_tests/btf.c | 23 +- tools/testing/selftests/bpf/prog_tests/btf_dump.c | 147 ++- .../selftests/bpf/prog_tests/cgroup_preorder.c | 128 ++ .../testing/selftests/bpf/prog_tests/cgroup_v1v2.c | 13 +- .../selftests/bpf/prog_tests/changes_pkt_data.c | 107 -- .../bpf/prog_tests/compute_live_registers.c | 9 + .../testing/selftests/bpf/prog_tests/core_reloc.c | 6 +- tools/testing/selftests/bpf/prog_tests/cpumask.c | 5 +- tools/testing/selftests/bpf/prog_tests/dynptr.c | 21 + tools/testing/selftests/bpf/prog_tests/fd_array.c | 4 +- .../selftests/bpf/prog_tests/fexit_noreturns.c | 9 + tools/testing/selftests/bpf/prog_tests/fs_kfuncs.c | 162 ++- .../testing/selftests/bpf/prog_tests/kernel_flag.c | 43 + .../selftests/bpf/prog_tests/lwt_ip_encap.c | 540 ++++++++ .../selftests/bpf/prog_tests/lwt_seg6local.c | 176 +++ .../selftests/bpf/prog_tests/netns_cookie.c | 21 +- .../selftests/bpf/prog_tests/ns_current_pid_tgid.c | 47 +- tools/testing/selftests/bpf/prog_tests/prepare.c | 99 ++ .../selftests/bpf/prog_tests/pro_epilogue.c | 2 + .../selftests/bpf/prog_tests/rcu_read_lock.c | 3 + .../selftests/bpf/prog_tests/read_vsyscall.c | 1 + .../selftests/bpf/prog_tests/setget_sockopt.c | 2 +- tools/testing/selftests/bpf/prog_tests/spin_lock.c | 3 + .../selftests/bpf/prog_tests/summarization.c | 144 ++ tools/testing/selftests/bpf/prog_tests/tailcalls.c | 1 + tools/testing/selftests/bpf/prog_tests/tc_links.c | 28 +- tools/testing/selftests/bpf/prog_tests/tc_opts.c | 40 +- .../bpf/prog_tests/test_struct_ops_kptr_return.c | 16 + .../bpf/prog_tests/test_struct_ops_refcounted.c | 14 + .../testing/selftests/bpf/prog_tests/test_tunnel.c | 633 +++++++-- .../selftests/bpf/prog_tests/test_veristat.c | 139 ++ .../selftests/bpf/prog_tests/test_xdp_veth.c | 638 +++++++-- tools/testing/selftests/bpf/prog_tests/token.c | 97 +- tools/testing/selftests/bpf/prog_tests/usdt.c | 11 +- tools/testing/selftests/bpf/prog_tests/verifier.c | 8 +- tools/testing/selftests/bpf/prog_tests/xdp_vlan.c | 175 +++ tools/testing/selftests/bpf/progs/arena_atomics.c | 121 +- .../testing/selftests/bpf/progs/arena_spin_lock.c | 51 + tools/testing/selftests/bpf/progs/bpf_iter_tasks.c | 110 ++ tools/testing/selftests/bpf/progs/bpf_misc.h | 22 + .../testing/selftests/bpf/progs/bpf_tracing_net.h | 4 + ...ore_reloc_arrays___err_bad_signed_arr_elem_sz.c | 3 + .../testing/selftests/bpf/progs/cgroup_preorder.c | 41 + .../testing/selftests/bpf/progs/changes_pkt_data.c | 39 - .../selftests/bpf/progs/compute_live_registers.c | 424 ++++++ .../testing/selftests/bpf/progs/connect4_dropper.c | 4 +- .../testing/selftests/bpf/progs/core_reloc_types.h | 10 + tools/testing/selftests/bpf/progs/cpumask_common.h | 1 + .../testing/selftests/bpf/progs/cpumask_failure.c | 38 + .../testing/selftests/bpf/progs/cpumask_success.c | 120 +- tools/testing/selftests/bpf/progs/dynptr_success.c | 123 +- .../testing/selftests/bpf/progs/fexit_noreturns.c | 15 + tools/testing/selftests/bpf/progs/irq.c | 71 +- tools/testing/selftests/bpf/progs/iters.c | 139 ++ .../selftests/bpf/progs/netns_cookie_prog.c | 9 + tools/testing/selftests/bpf/progs/preempt_lock.c | 68 +- tools/testing/selftests/bpf/progs/prepare.c | 28 + .../selftests/bpf/progs/priv_freplace_prog.c | 13 + tools/testing/selftests/bpf/progs/priv_prog.c | 6 +- .../selftests/bpf/progs/pro_epilogue_with_kfunc.c | 88 ++ tools/testing/selftests/bpf/progs/rcu_read_lock.c | 61 +- tools/testing/selftests/bpf/progs/read_vsyscall.c | 11 +- .../testing/selftests/bpf/progs/set_global_vars.c | 47 + tools/testing/selftests/bpf/progs/strncmp_bench.c | 5 +- .../selftests/bpf/progs/struct_ops_kptr_return.c | 30 + .../struct_ops_kptr_return_fail__invalid_scalar.c | 26 + .../struct_ops_kptr_return_fail__local_kptr.c | 34 + .../struct_ops_kptr_return_fail__nonzero_offset.c | 25 + .../struct_ops_kptr_return_fail__wrong_type.c | 30 + .../selftests/bpf/progs/struct_ops_refcounted.c | 31 + .../struct_ops_refcounted_fail__global_subprog.c | 39 + .../progs/struct_ops_refcounted_fail__ref_leak.c | 22 + .../progs/struct_ops_refcounted_fail__tail_call.c | 36 + tools/testing/selftests/bpf/progs/summarization.c | 78 ++ ...kt_data_freplace.c => summarization_freplace.c} | 17 +- .../selftests/bpf/progs/test_cgroup1_hierarchy.c | 4 +- .../selftests/bpf/progs/test_core_reloc_arrays.c | 5 + tools/testing/selftests/bpf/progs/test_get_xattr.c | 28 +- .../testing/selftests/bpf/progs/test_kernel_flag.c | 28 + .../selftests/bpf/progs/test_kfunc_dynptr_param.c | 6 +- .../testing/selftests/bpf/progs/test_lookup_key.c | 2 +- .../selftests/bpf/progs/test_ptr_untrusted.c | 2 +- .../bpf/progs/test_select_reuseport_kern.c | 1 - .../selftests/bpf/progs/test_set_remove_xattr.c | 133 ++ .../selftests/bpf/progs/test_spin_lock_fail.c | 69 + .../selftests/bpf/progs/test_task_under_cgroup.c | 2 +- tools/testing/selftests/bpf/progs/test_usdt.c | 14 + .../selftests/bpf/progs/test_verify_pkcs7_sig.c | 2 +- tools/testing/selftests/bpf/progs/test_xdp_vlan.c | 20 +- .../selftests/bpf/progs/verifier_bpf_fastcall.c | 58 +- tools/testing/selftests/bpf/progs/verifier_gotol.c | 6 +- .../bpf/progs/verifier_iterating_callbacks.c | 6 +- .../selftests/bpf/progs/verifier_load_acquire.c | 218 ++++ .../selftests/bpf/progs/verifier_may_goto_1.c | 34 +- .../selftests/bpf/progs/verifier_precision.c | 49 + .../selftests/bpf/progs/verifier_stack_ptr.c | 52 + .../selftests/bpf/progs/verifier_store_release.c | 286 ++++ .../testing/selftests/bpf/progs/xdp_redirect_map.c | 88 ++ .../selftests/bpf/progs/xdp_redirect_multi_kern.c | 41 +- tools/testing/selftests/bpf/test_btf.h | 6 + .../testing/selftests/bpf/test_kmods/bpf_testmod.c | 108 ++ .../testing/selftests/bpf/test_kmods/bpf_testmod.h | 6 + tools/testing/selftests/bpf/test_loader.c | 32 +- tools/testing/selftests/bpf/test_lwt_ip_encap.sh | 476 ------- tools/testing/selftests/bpf/test_lwt_seg6local.sh | 156 --- tools/testing/selftests/bpf/test_maps.c | 9 +- tools/testing/selftests/bpf/test_progs.c | 72 +- tools/testing/selftests/bpf/test_progs.h | 8 + tools/testing/selftests/bpf/test_tunnel.sh | 645 --------- .../selftests/bpf/test_xdp_redirect_multi.sh | 214 --- tools/testing/selftests/bpf/test_xdp_vlan.sh | 233 ---- .../selftests/bpf/test_xdp_vlan_mode_generic.sh | 9 - .../selftests/bpf/test_xdp_vlan_mode_native.sh | 9 - tools/testing/selftests/bpf/veristat.c | 367 +++++- tools/testing/selftests/bpf/with_addr.sh | 54 - tools/testing/selftests/bpf/with_tunnels.sh | 36 - tools/testing/selftests/bpf/xdp_redirect_multi.c | 226 ---- 213 files changed, 10643 insertions(+), 3497 deletions(-) create mode 100644 arch/x86/net/bpf_timed_may_goto.S create mode 100644 tools/testing/selftests/bpf/bpf_arena_spin_lock.h create mode 100644 tools/testing/selftests/bpf/bpf_atomic.h create mode 100644 tools/testing/selftests/bpf/prog_tests/arena_spin_lock.c create mode 100644 tools/testing/selftests/bpf/prog_tests/cgroup_preorder.c delete mode 100644 tools/testing/selftests/bpf/prog_tests/changes_pkt_data.c create mode 100644 tools/testing/selftests/bpf/prog_tests/compute_live_registers.c create mode 100644 tools/testing/selftests/bpf/prog_tests/fexit_noreturns.c create mode 100644 tools/testing/selftests/bpf/prog_tests/kernel_flag.c create mode 100644 tools/testing/selftests/bpf/prog_tests/lwt_ip_encap.c create mode 100644 tools/testing/selftests/bpf/prog_tests/lwt_seg6local.c create mode 100644 tools/testing/selftests/bpf/prog_tests/prepare.c create mode 100644 tools/testing/selftests/bpf/prog_tests/summarization.c create mode 100644 tools/testing/selftests/bpf/prog_tests/test_struct_ops_kptr_return.c create mode 100644 tools/testing/selftests/bpf/prog_tests/test_struct_ops_refcounted.c create mode 100644 tools/testing/selftests/bpf/prog_tests/test_veristat.c create mode 100644 tools/testing/selftests/bpf/prog_tests/xdp_vlan.c create mode 100644 tools/testing/selftests/bpf/progs/arena_spin_lock.c create mode 100644 tools/testing/selftests/bpf/progs/btf__core_reloc_arrays___err_bad_signed_arr_elem_sz.c create mode 100644 tools/testing/selftests/bpf/progs/cgroup_preorder.c delete mode 100644 tools/testing/selftests/bpf/progs/changes_pkt_data.c create mode 100644 tools/testing/selftests/bpf/progs/compute_live_registers.c create mode 100644 tools/testing/selftests/bpf/progs/fexit_noreturns.c create mode 100644 tools/testing/selftests/bpf/progs/prepare.c create mode 100644 tools/testing/selftests/bpf/progs/priv_freplace_prog.c create mode 100644 tools/testing/selftests/bpf/progs/pro_epilogue_with_kfunc.c create mode 100644 tools/testing/selftests/bpf/progs/set_global_vars.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_kptr_return.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_kptr_return_fail__invalid_scalar.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_kptr_return_fail__local_kptr.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_kptr_return_fail__nonzero_offset.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_kptr_return_fail__wrong_type.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_refcounted.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_refcounted_fail__global_subprog.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_refcounted_fail__ref_leak.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_refcounted_fail__tail_call.c create mode 100644 tools/testing/selftests/bpf/progs/summarization.c rename tools/testing/selftests/bpf/progs/{changes_pkt_data_freplace.c => summarization_freplace.c} (57%) create mode 100644 tools/testing/selftests/bpf/progs/test_kernel_flag.c create mode 100644 tools/testing/selftests/bpf/progs/test_set_remove_xattr.c create mode 100644 tools/testing/selftests/bpf/progs/verifier_load_acquire.c create mode 100644 tools/testing/selftests/bpf/progs/verifier_store_release.c delete mode 100755 tools/testing/selftests/bpf/test_lwt_ip_encap.sh delete mode 100755 tools/testing/selftests/bpf/test_lwt_seg6local.sh delete mode 100755 tools/testing/selftests/bpf/test_tunnel.sh delete mode 100755 tools/testing/selftests/bpf/test_xdp_redirect_multi.sh delete mode 100755 tools/testing/selftests/bpf/test_xdp_vlan.sh delete mode 100755 tools/testing/selftests/bpf/test_xdp_vlan_mode_generic.sh delete mode 100755 tools/testing/selftests/bpf/test_xdp_vlan_mode_native.sh delete mode 100755 tools/testing/selftests/bpf/with_addr.sh delete mode 100755 tools/testing/selftests/bpf/with_tunnels.sh delete mode 100644 tools/testing/selftests/bpf/xdp_redirect_multi.c