Hi Linus, The following changes since commit 9f8e716d46c68112484a23d1742d9ec725e082fc: Merge tag 'bpf-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf (2024-11-13 09:14:19 -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.13 for you to fetch changes up to 2c8b09ac2537299511c898bc71b1a5f2756c831c: libbpf: Change hash_combine parameters from long to unsigned long (2024-11-16 11:01:38 -0800) ---------------------------------------------------------------- = BPF networking changes will come via net-next PR = Several arch/x86/ and uprobe patches are also in Ingo's PR: https://lore.kernel.org/all/Zzt5lYZGF8IOrgpB@xxxxxxxxx/ They were pulled into bpf-next via stable tag 'perf-core-for-bpf-next'. Then Jiri's uprobe session patches were applied on top. tip or bpf-next PRs can be pulled in any order. sha-s are the same. = The following are the main BPF changes (there should be no conflicts): - Add BPF uprobe session support (Jiri Olsa) - Optimize uprobe performance (Andrii Nakryiko) - Add bpf_fastcall support to helpers and kfuncs (Eduard Zingerman) - Avoid calling free_htab_elem() under hash map bucket lock (Hou Tao) - Prevent tailcall infinite loop caused by freplace (Leon Hwang) - Mark raw_tracepoint arguments as nullable (Kumar Kartikeya Dwivedi) - Introduce uptr support in the task local storage map (Martin KaFai Lau) - Stringify errno log messages in libbpf (Mykyta Yatsenko) - Add kmem_cache BPF iterator for perf's lock profiling (Namhyung Kim) - Support BPF objects of either endianness in libbpf (Tony Ambardar) - Add ksym to struct_ops trampoline to fix stack trace (Xu Kuohai) - Introduce private stack for eligible BPF programs (Yonghong Song) - Migrate samples/bpf tests to selftests/bpf test_progs (Daniel T. Lee) - Migrate test_sock to selftests/bpf test_progs (Jordan Rife) Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx> ---------------------------------------------------------------- Abhinav Saxena (1): bpf: Remove trailing whitespace in verifier.rst Alan Maguire (2): selftests/bpf: Fix uprobe_multi compilation error docs/bpf: Add description of .BTF.base section Alexei Starovoitov (17): Merge branch 'selftests-bpf-migrate-and-remove-cgroup-tracing-related-tests' Merge branch 'bpf-add-kmem_cache-iterator-and-kfunc' Merge branch 'bpf-fix-tailcall-infinite-loop-caused-by-freplace' Merge branch 'fix-libbpf-s-bpf_object-and-bpf-subskel-interoperability' Merge branch 'share-user-memory-to-bpf-program-through-task-storage-map' Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf Merge branch 'fix-resource-leak-checks-for-tail-calls' Merge branch 'handle-possible-null-trusted-raw_tp-arguments' Merge branch 'fix-lockdep-warning-for-htab-of-map' Merge branch 'refactor-lock-management' Merge branch 'selftests-bpf-fix-for-bpf_signal-stalls-watchdog-for-test_progs' Merge branch 'bpf-support-private-stack-for-bpf-progs' Merge branch 'add-kernel-symbol-for-struct_ops-trampoline' Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf bpf: Introduce range_tree data structure and use it in bpf arena selftests/bpf: Add a test for arena range tree algorithm selftests/bpf: Fix build error with llvm 19 Alistair Francis (1): bpf: Move btf_type_is_struct_ptr() under CONFIG_BPF_SYSCALL Andrii Nakryiko (21): Merge branch 'libbpf-selftests-bpf-support-cross-endian-usage' Merge branch 'bpf_fastcall-attribute-in-vmlinux-h-and-bpf_helper_defs-h' uprobes: switch to RCU Tasks Trace flavor for better performance Merge branch 'bpf-static-linker-fix-linking-duplicate-extern-functions' libbpf: fix sym_is_subprog() logic for weak global subprogs libbpf: never interpret subprogs in .text as entry programs selftests/bpf: add subprog to BPF object file with no entry programs Merge branch 'implement-mechanism-to-signal-other-threads' Merge branch 'fix-wmaybe-uninitialized-warnings-errors' selftests/bpf: fix test_spin_lock_fail.c's global vars usage libbpf: move global data mmap()'ing into bpf_object__load() selftests/bpf: validate generic bpf_object and subskel APIs work together libbpf: start v1.6 development cycle selftests/bpf: drop unnecessary bpf_iter.h type duplication uprobes: allow put_uprobe() from non-sleepable softirq context uprobes: SRCU-protect uretprobe lifetime (with timeout) Merge tag 'perf-core-for-bpf-next' from tip tree Merge branch 'bpf-add-uprobe-session-support' Merge branch 'libbpf-stringify-error-codes-in-log-messages' Merge branch 'bpf-range_tree-for-bpf-arena' bpf: use common instruction history across all states Björn Töpel (2): libbpf: Add missing per-arch include path selftests: bpf: Add missing per-arch include path Breno Leitao (1): perf/x86/amd: Warn only on new bits set Chen Ni (1): libbpf: Remove unneeded semicolon Christophe JAILLET (1): bpf: Constify struct btf_kind_operations Daniel T. Lee (4): selftests/bpf: migrate cgroup sock create test for setting iface/mark/prio selftests/bpf: migrate cgroup sock create test for prohibiting sockets samples/bpf: remove obsolete cgroup related tests samples/bpf: remove obsolete tracing related tests Dapeng Mi (4): perf/x86: Refine hybrid_pmu_type defination x86/cpu/intel: Define helper to get CPU core native ID perf/x86/intel: Support hybrid PMU with multiple atom uarchs perf/x86/intel: Add PMU support for ArrowLake-H Eder Zulian (3): resolve_btfids: Fix compiler warnings libbpf: Prevent compiler warnings/errors libsubcmd: Silence compiler warning Eduard Zingerman (9): bpf: Allow specifying bpf_fastcall attribute for BPF helpers bpf: __bpf_fastcall for bpf_get_smp_processor_id in uapi bpf: Use KF_FASTCALL to mark kfuncs supporting fastcall contract bpftool: __bpf_fastcall for kfuncs marked with special decl_tag selftests/bpf: Fix backtrace printing for selftests crashes selftests/bpf: watchdog timer for test_progs selftests/bpf: add read_with_timeout() utility function selftests/bpf: allow send_signal test to timeout selftests/bpf: update send_signal to lower perf evemts frequency Eric Long (2): libbpf: Do not resolve size on duplicate FUNCs selftests/bpf: Test linking with duplicate extern functions Florian Schmaus (1): kbuild,bpf: Pass make jobs' value to pahole Hou Tao (3): bpf: Call free_htab_elem() after htab_unlock_bucket() selftests/bpf: Move ENOTSUPP from bpf_util.h selftests/bpf: Test the update operations for htab of maps Ihor Solodrai (5): selftests/bpf: Remove test_skb_cgroup_id.sh from TEST_PROGS selftests/bpf: Set vpath in Makefile to search for skels libbpf: Change log level of BTF loading error message selftests/bpf: Check for timeout in perf_link test selftests/bpf: Set test path for token/obj_priv_implicit_token_envvar Jason Xing (2): bpf: syscall_nrs: Disable no previous prototype warnning bpf: handle implicit declaration of function gettid in bpf_iter.c Jiri Olsa (19): selftests/bpf: Fix uprobe consumer test selftests/bpf: Bail out quickly from failing consumer test uprobe: Add data pointer to consumer handlers uprobe: Add support for session consumer selftests/bpf: Fix uprobe consumer test (again) bpf: Allow return values 0 and 1 for kprobe session bpf: Force uprobe bpf program to always return 0 bpf: Add support for uprobe multi session attach bpf: Add support for uprobe multi session context libbpf: Add support for uprobe multi session attach selftests/bpf: Add uprobe session test selftests/bpf: Add uprobe session cookie test selftests/bpf: Add uprobe session recursive test selftests/bpf: Add uprobe session verifier test for return value selftests/bpf: Add kprobe session verifier test for return value selftests/bpf: Add uprobe session single consumer test selftests/bpf: Add uprobe sessions to consumer test selftests/bpf: Add threads to consumer test libbpf: Fix memory leak in bpf_program__attach_uprobe_multi Jordan Rife (4): selftests/bpf: Migrate *_POST_BIND test cases to prog_tests selftests/bpf: Migrate LOAD_REJECT test cases to prog_tests selftests/bpf: Migrate BPF_CGROUP_INET_SOCK_CREATE test cases to prog_tests selftests/bpf: Retire test_sock.c Juntong Deng (2): bpf: Add bpf_task_from_vpid() kfunc selftests/bpf: Add tests for bpf_task_from_vpid() kfunc Kan Liang (2): perf/x86/rapl: Move the pmu allocation out of CPU hotplug perf/x86/rapl: Clean up cpumask and hotplug Kui-Feng Lee (4): bpf: Support __uptr type tag in BTF bpf: Handle BPF_UPTR in verifier libbpf: define __uptr. selftests/bpf: Some basic __uptr tests Kumar Kartikeya Dwivedi (8): bpf: Tighten tail call checks for lingering locks, RCU, preempt_disable bpf: Unify resource leak checks selftests/bpf: Add tests for tail calls with locks and refs bpf: Mark raw_tp arguments with PTR_MAYBE_NULL selftests/bpf: Clean up open-coded gettid syscall invocations selftests/bpf: Add tests for raw_tp null handling bpf: Refactor active lock management bpf: Drop special callback reference handling Leon Hwang (4): bpf: Prevent tailcall infinite loop caused by freplace selftests/bpf: Add test to verify tailcall and freplace restrictions bpf, bpftool: Fix incorrect disasm pc bpf, x86: Propagate tailcall info only for subprogs Luo Yifan (2): tools/bpf: Fix the wrong format specifier in bpf_jit_disasm bpftool: Cast variable `var` to long long Manu Bretelle (1): selftests/bpf: vm: Add support for VIRTIO_FS Markus Elfring (1): bpf: Call kfree(obj) only once in free_one() Martin KaFai Lau (9): Merge branch 'Retire test_sock.c' bpf: Add "bool swap_uptrs" arg to bpf_local_storage_update() and bpf_selem_alloc() bpf: Postpone bpf_selem_free() in bpf_selem_unlink_storage_nolock() bpf: Postpone bpf_obj_free_fields to the rcu callback bpf: Add uptr support in the map_value of the task local storage. selftests/bpf: Test a uptr struct spanning across pages. selftests/bpf: Add update_elem failure test for task storage uptr selftests/bpf: Add uptr failure verifier tests selftests/bpf: Create task_local_storage map with invalid uptr's struct Martin Kelly (1): bpf: Update bpf_override_return() comment Matteo Croce (1): bpf: fix argument type in bpf_loop documentation Menglong Dong (1): bpf: Replace the document for PTR_TO_BTF_ID_OR_NULL Mykyta Yatsenko (6): selftests/bpf: Emit top frequent code lines in veristat selftests/bpf: Increase verifier log limit in veristat libbpf: Introduce errstr() for stringifying errno libbpf: Stringify errno in log messages in libbpf.c libbpf: Stringify errno in log messages in btf*.c libbpf: Stringify errno in log messages in the remaining code Namhyung Kim (6): libbpf: Fix possible compiler warnings in hashmap bpf: Add kmem_cache iterator mm/bpf: Add bpf_get_kmem_cache() kfunc selftests/bpf: Add a test for kmem_cache_iter bpf: Add open coded version of kmem_cache iterator selftests/bpf: Add a test for open coded kmem_cache iter Oleg Nesterov (9): uprobes: don't abuse get_utask() in pre_ssout() and prepare_uretprobe() uprobes: sanitiize xol_free_insn_slot() uprobes: kill the unnecessary put_uprobe/xol_free_insn_slot in uprobe_free_utask() uprobes: simplify xol_take_insn_slot() and its caller uprobes: move the initialization of utask->xol_vaddr from pre_ssout() to xol_get_insn_slot() uprobes: pass utask to xol_get_insn_slot() and xol_free_insn_slot() uprobes: deny mremap(xol_vma) uprobes: kill xol_area->slot_count uprobes: fold xol_take_insn_slot() into xol_get_insn_slot() Puranjay Mohan (2): bpf: Implement bpf_send_signal_task() kfunc selftests/bpf: Augment send_signal test with remote signaling Sidong Yang (1): libbpf: Change hash_combine parameters from long to unsigned long Tao Chen (1): libbpf: Fix expected_attach_type set handling in program load callback Tony Ambardar (8): libbpf: Improve log message formatting libbpf: Fix header comment typos for BTF.ext libbpf: Fix output .symtab byte-order during linking libbpf: Support BTF.ext loading and output in either endianness libbpf: Support opening bpf objects of either endianness libbpf: Support linking bpf objects of either endianness libbpf: Support creating light skeleton of either endianness selftests/bpf: Support cross-endian building Viktor Malik (5): bpftool: Prevent setting duplicate _GNU_SOURCE in Makefile selftests/bpf: Disable warnings on unused flags for Clang builds selftests/bpf: Allow building with extra flags selftests/bpf: skip the timer_lockup test for single-CPU nodes bpf: Do not alloc arena on unsupported arches Xu Kuohai (4): bpf, arm64: Remove garbage frame for struct_ops trampoline bpf: Remove unused member rcu from bpf_struct_ops_map bpf: Use function pointers count as struct_ops links count bpf: Add kernel symbol for struct_ops trampoline Yonghong Song (8): bpf: Find eligible subprogs for private stack support bpf: Enable private stack for eligible subprogs bpf, x86: Avoid repeated usage of bpf_prog->aux->stack_depth bpf, x86: Support private stack in jit selftests/bpf: Add tracing prog private stack tests bpf: Support private stack for struct_ops progs selftests/bpf: Add struct_ops prog private stack tests bpf: Add necessary migrate_disable to range_tree. Yuan Chen (1): bpf: Fix the xdp_adjust_tail sample prog issue Zhang Jiao (1): selftests/bpf: Add missing va_end. Zhu Jun (6): tools/bpf: Remove unused variable from runqslower samples/bpf: Remove unused variables samples/bpf: Fix a resource leak selftests/bpf: Removed redundant fd after close in bpf_prog_load_log_buf samples/bpf: Remove unused variables in tc_l2_redirect_kern.c samples/bpf: Remove unused variable in xdp2skb_meta_kern.c Documentation/bpf/btf.rst | 77 ++- Documentation/bpf/verifier.rst | 4 +- arch/Kconfig | 1 + arch/arm64/net/bpf_jit_comp.c | 47 +- arch/x86/events/amd/core.c | 10 +- arch/x86/events/intel/core.c | 133 ++++- arch/x86/events/intel/ds.c | 21 + arch/x86/events/perf_event.h | 34 +- arch/x86/events/rapl.c | 130 ++--- arch/x86/include/asm/cpu.h | 6 + arch/x86/kernel/cpu/intel.c | 15 + arch/x86/net/bpf_jit_comp.c | 149 ++++- include/linux/bpf.h | 63 ++- include/linux/bpf_local_storage.h | 12 +- include/linux/bpf_verifier.h | 67 ++- include/linux/btf.h | 22 +- include/linux/btf_ids.h | 1 + include/linux/cpuhotplug.h | 1 - include/linux/filter.h | 1 + include/linux/uprobes.h | 79 ++- include/uapi/linux/bpf.h | 9 +- kernel/bpf/Makefile | 3 +- kernel/bpf/arena.c | 38 +- kernel/bpf/arraymap.c | 26 +- kernel/bpf/bpf_cgrp_storage.c | 4 +- kernel/bpf/bpf_inode_storage.c | 4 +- kernel/bpf/bpf_local_storage.c | 79 ++- kernel/bpf/bpf_struct_ops.c | 115 +++- kernel/bpf/bpf_task_storage.c | 7 +- kernel/bpf/btf.c | 57 +- kernel/bpf/core.c | 6 + kernel/bpf/dispatcher.c | 3 +- kernel/bpf/hashtab.c | 56 +- kernel/bpf/helpers.c | 29 +- kernel/bpf/kmem_cache_iter.c | 238 ++++++++ kernel/bpf/memalloc.c | 5 +- kernel/bpf/range_tree.c | 272 +++++++++ kernel/bpf/range_tree.h | 21 + kernel/bpf/syscall.c | 124 ++++- kernel/bpf/trampoline.c | 60 +- kernel/bpf/verifier.c | 597 ++++++++++++++------ kernel/events/uprobes.c | 608 +++++++++++++++------ kernel/trace/bpf_trace.c | 116 +++- kernel/trace/trace_uprobe.c | 12 +- mm/slab_common.c | 19 + net/core/bpf_sk_storage.c | 6 +- samples/bpf/Makefile | 25 - samples/bpf/sock_flags.bpf.c | 47 -- samples/bpf/syscall_nrs.c | 5 + samples/bpf/tc_l2_redirect_kern.c | 6 - samples/bpf/test_cgrp2_array_pin.c | 106 ---- samples/bpf/test_cgrp2_attach.c | 177 ------ samples/bpf/test_cgrp2_sock.c | 294 ---------- samples/bpf/test_cgrp2_sock.sh | 137 ----- samples/bpf/test_cgrp2_sock2.c | 95 ---- samples/bpf/test_cgrp2_sock2.sh | 103 ---- samples/bpf/test_cgrp2_tc.bpf.c | 56 -- samples/bpf/test_cgrp2_tc.sh | 187 ------- samples/bpf/test_current_task_under_cgroup.bpf.c | 43 -- samples/bpf/test_current_task_under_cgroup_user.c | 115 ---- samples/bpf/test_overhead_kprobe.bpf.c | 41 -- samples/bpf/test_overhead_raw_tp.bpf.c | 17 - samples/bpf/test_overhead_tp.bpf.c | 23 - samples/bpf/test_overhead_user.c | 225 -------- samples/bpf/test_override_return.sh | 16 - samples/bpf/test_probe_write_user.bpf.c | 52 -- samples/bpf/test_probe_write_user_user.c | 108 ---- samples/bpf/tracex7.bpf.c | 15 - samples/bpf/tracex7_user.c | 56 -- samples/bpf/xdp2skb_meta_kern.c | 2 +- samples/bpf/xdp_adjust_tail_kern.c | 1 + scripts/Makefile.btf | 6 +- scripts/bpf_doc.py | 53 +- tools/bpf/bpf_jit_disasm.c | 2 +- tools/bpf/bpftool/Makefile | 6 +- tools/bpf/bpftool/btf.c | 100 +++- tools/bpf/bpftool/jit_disasm.c | 40 +- tools/bpf/resolve_btfids/main.c | 4 +- tools/bpf/runqslower/runqslower.bpf.c | 1 - tools/include/uapi/linux/bpf.h | 9 +- tools/lib/bpf/Makefile | 3 +- tools/lib/bpf/bpf.c | 1 + tools/lib/bpf/bpf_gen_internal.h | 1 + tools/lib/bpf/bpf_helpers.h | 1 + tools/lib/bpf/btf.c | 308 ++++++++--- tools/lib/bpf/btf.h | 3 + tools/lib/bpf/btf_dump.c | 7 +- tools/lib/bpf/btf_relocate.c | 2 +- tools/lib/bpf/elf.c | 4 +- tools/lib/bpf/features.c | 15 +- tools/lib/bpf/gen_loader.c | 190 +++++-- tools/lib/bpf/hashmap.h | 20 +- tools/lib/bpf/libbpf.c | 526 +++++++++--------- tools/lib/bpf/libbpf.h | 4 +- tools/lib/bpf/libbpf.map | 5 + tools/lib/bpf/libbpf_internal.h | 43 +- tools/lib/bpf/libbpf_version.h | 2 +- tools/lib/bpf/linker.c | 105 +++- tools/lib/bpf/relo_core.c | 2 +- tools/lib/bpf/ringbuf.c | 34 +- tools/lib/bpf/skel_internal.h | 3 +- tools/lib/bpf/str_error.c | 71 +++ tools/lib/bpf/str_error.h | 7 + tools/lib/bpf/usdt.c | 32 +- tools/lib/bpf/zip.c | 2 +- tools/lib/subcmd/parse-options.c | 2 +- tools/testing/selftests/bpf/.gitignore | 1 - tools/testing/selftests/bpf/Makefile | 60 +- tools/testing/selftests/bpf/benchs/bench_trigger.c | 3 +- tools/testing/selftests/bpf/bpf_experimental.h | 6 + .../selftests/bpf/bpf_testmod/bpf_testmod-events.h | 8 + .../selftests/bpf/bpf_testmod/bpf_testmod.c | 108 +++- .../selftests/bpf/bpf_testmod/bpf_testmod.h | 5 + tools/testing/selftests/bpf/bpf_util.h | 12 + tools/testing/selftests/bpf/config.vm | 7 +- tools/testing/selftests/bpf/io_helpers.c | 21 + tools/testing/selftests/bpf/io_helpers.h | 7 + .../selftests/bpf/map_tests/task_storage_map.c | 3 +- .../testing/selftests/bpf/prog_tests/bpf_cookie.c | 2 +- tools/testing/selftests/bpf/prog_tests/bpf_iter.c | 14 +- .../testing/selftests/bpf/prog_tests/bpf_tcp_ca.c | 4 - tools/testing/selftests/bpf/prog_tests/cb_refs.c | 4 +- .../selftests/bpf/prog_tests/cgrp_local_storage.c | 10 +- .../testing/selftests/bpf/prog_tests/core_reloc.c | 2 +- tools/testing/selftests/bpf/prog_tests/iters.c | 4 +- .../selftests/bpf/prog_tests/kmem_cache_iter.c | 126 +++++ .../selftests/bpf/prog_tests/kprobe_multi_test.c | 2 + .../selftests/bpf/prog_tests/linked_funcs.c | 2 +- tools/testing/selftests/bpf/prog_tests/log_buf.c | 3 - .../testing/selftests/bpf/prog_tests/lsm_cgroup.c | 4 - .../testing/selftests/bpf/prog_tests/map_in_map.c | 132 ++++- .../selftests/bpf/prog_tests/ns_current_pid_tgid.c | 2 +- tools/testing/selftests/bpf/prog_tests/perf_link.c | 15 +- .../testing/selftests/bpf/prog_tests/raw_tp_null.c | 25 + .../selftests/bpf/prog_tests/rcu_read_lock.c | 4 +- .../testing/selftests/bpf/prog_tests/send_signal.c | 146 +++-- tools/testing/selftests/bpf/prog_tests/sock_addr.c | 4 - .../testing/selftests/bpf/prog_tests/sock_create.c | 348 ++++++++++++ .../{test_sock.c => prog_tests/sock_post_bind.c} | 254 +++------ .../bpf/prog_tests/struct_ops_private_stack.c | 106 ++++ .../testing/selftests/bpf/prog_tests/subskeleton.c | 76 ++- tools/testing/selftests/bpf/prog_tests/tailcalls.c | 128 ++++- .../testing/selftests/bpf/prog_tests/task_kfunc.c | 80 +++ .../selftests/bpf/prog_tests/task_local_storage.c | 286 +++++++++- .../selftests/bpf/prog_tests/timer_lockup.c | 6 + tools/testing/selftests/bpf/prog_tests/token.c | 19 +- .../selftests/bpf/prog_tests/uprobe_multi_test.c | 361 ++++++++++-- tools/testing/selftests/bpf/prog_tests/verifier.c | 2 + tools/testing/selftests/bpf/progs/bpf_iter.h | 167 ------ .../selftests/bpf/progs/bpf_iter_bpf_array_map.c | 2 +- .../selftests/bpf/progs/bpf_iter_bpf_hash_map.c | 2 +- .../selftests/bpf/progs/bpf_iter_bpf_link.c | 2 +- .../testing/selftests/bpf/progs/bpf_iter_bpf_map.c | 2 +- .../bpf/progs/bpf_iter_bpf_percpu_array_map.c | 2 +- .../bpf/progs/bpf_iter_bpf_percpu_hash_map.c | 2 +- .../bpf/progs/bpf_iter_bpf_sk_storage_helpers.c | 2 +- .../bpf/progs/bpf_iter_bpf_sk_storage_map.c | 2 +- .../selftests/bpf/progs/bpf_iter_ipv6_route.c | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_ksym.c | 2 +- .../testing/selftests/bpf/progs/bpf_iter_netlink.c | 2 +- .../selftests/bpf/progs/bpf_iter_setsockopt.c | 2 +- .../selftests/bpf/progs/bpf_iter_setsockopt_unix.c | 2 +- .../testing/selftests/bpf/progs/bpf_iter_sockmap.c | 2 +- .../selftests/bpf/progs/bpf_iter_task_btf.c | 2 +- .../selftests/bpf/progs/bpf_iter_task_file.c | 2 +- .../selftests/bpf/progs/bpf_iter_task_stack.c | 2 +- .../selftests/bpf/progs/bpf_iter_task_vmas.c | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_tasks.c | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_tcp4.c | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_tcp6.c | 2 +- .../selftests/bpf/progs/bpf_iter_test_kern3.c | 2 +- .../selftests/bpf/progs/bpf_iter_test_kern4.c | 2 +- .../selftests/bpf/progs/bpf_iter_test_kern5.c | 2 +- .../selftests/bpf/progs/bpf_iter_test_kern6.c | 2 +- .../bpf/progs/bpf_iter_test_kern_common.h | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_udp4.c | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_udp6.c | 2 +- tools/testing/selftests/bpf/progs/bpf_iter_unix.c | 2 +- .../selftests/bpf/progs/bpf_iter_vma_offset.c | 2 +- tools/testing/selftests/bpf/progs/cgroup_iter.c | 3 +- .../selftests/bpf/progs/cgrp_ls_sleepable.c | 3 +- .../testing/selftests/bpf/progs/exceptions_fail.c | 4 +- .../testing/selftests/bpf/progs/kmem_cache_iter.c | 108 ++++ .../selftests/bpf/progs/kprobe_multi_verifier.c | 31 ++ tools/testing/selftests/bpf/progs/linked_funcs1.c | 8 + tools/testing/selftests/bpf/progs/linked_funcs2.c | 8 + tools/testing/selftests/bpf/progs/preempt_lock.c | 14 +- tools/testing/selftests/bpf/progs/raw_tp_null.c | 32 ++ .../selftests/bpf/progs/struct_ops_detach.c | 12 + .../selftests/bpf/progs/struct_ops_private_stack.c | 62 +++ .../bpf/progs/struct_ops_private_stack_fail.c | 62 +++ .../bpf/progs/struct_ops_private_stack_recur.c | 50 ++ tools/testing/selftests/bpf/progs/tailcall_fail.c | 64 +++ .../selftests/bpf/progs/task_kfunc_common.h | 1 + .../selftests/bpf/progs/task_kfunc_failure.c | 14 + .../selftests/bpf/progs/task_kfunc_success.c | 51 ++ tools/testing/selftests/bpf/progs/task_ls_uptr.c | 63 +++ tools/testing/selftests/bpf/progs/tc_bpf2bpf.c | 5 +- .../selftests/bpf/progs/test_send_signal_kern.c | 35 +- .../selftests/bpf/progs/test_spin_lock_fail.c | 4 +- .../selftests/bpf/progs/test_tp_btf_nullable.c | 6 +- .../selftests/bpf/progs/update_map_in_htab.c | 30 + .../selftests/bpf/progs/uprobe_multi_consumers.c | 6 +- .../selftests/bpf/progs/uprobe_multi_session.c | 71 +++ .../bpf/progs/uprobe_multi_session_cookie.c | 48 ++ .../bpf/progs/uprobe_multi_session_recursive.c | 44 ++ .../bpf/progs/uprobe_multi_session_single.c | 44 ++ .../selftests/bpf/progs/uprobe_multi_verifier.c | 31 ++ tools/testing/selftests/bpf/progs/uptr_failure.c | 105 ++++ .../testing/selftests/bpf/progs/uptr_map_failure.c | 27 + .../selftests/bpf/progs/uptr_update_failure.c | 42 ++ .../selftests/bpf/progs/verifier_arena_large.c | 110 +++- .../selftests/bpf/progs/verifier_private_stack.c | 272 +++++++++ .../selftests/bpf/progs/verifier_ref_tracking.c | 4 +- tools/testing/selftests/bpf/progs/verifier_sock.c | 60 ++ .../selftests/bpf/progs/verifier_spin_lock.c | 2 +- tools/testing/selftests/bpf/test_maps.c | 4 - tools/testing/selftests/bpf/test_progs.c | 114 +++- tools/testing/selftests/bpf/test_progs.h | 14 + tools/testing/selftests/bpf/test_verifier.c | 4 - tools/testing/selftests/bpf/uprobe_multi.c | 4 + tools/testing/selftests/bpf/uptr_test_common.h | 63 +++ tools/testing/selftests/bpf/veristat.c | 161 +++++- 223 files changed, 7718 insertions(+), 3774 deletions(-) create mode 100644 kernel/bpf/kmem_cache_iter.c create mode 100644 kernel/bpf/range_tree.c create mode 100644 kernel/bpf/range_tree.h delete mode 100644 samples/bpf/sock_flags.bpf.c delete mode 100644 samples/bpf/test_cgrp2_array_pin.c delete mode 100644 samples/bpf/test_cgrp2_attach.c delete mode 100644 samples/bpf/test_cgrp2_sock.c delete mode 100755 samples/bpf/test_cgrp2_sock.sh delete mode 100644 samples/bpf/test_cgrp2_sock2.c delete mode 100755 samples/bpf/test_cgrp2_sock2.sh delete mode 100644 samples/bpf/test_cgrp2_tc.bpf.c delete mode 100755 samples/bpf/test_cgrp2_tc.sh delete mode 100644 samples/bpf/test_current_task_under_cgroup.bpf.c delete mode 100644 samples/bpf/test_current_task_under_cgroup_user.c delete mode 100644 samples/bpf/test_overhead_kprobe.bpf.c delete mode 100644 samples/bpf/test_overhead_raw_tp.bpf.c delete mode 100644 samples/bpf/test_overhead_tp.bpf.c delete mode 100644 samples/bpf/test_overhead_user.c delete mode 100755 samples/bpf/test_override_return.sh delete mode 100644 samples/bpf/test_probe_write_user.bpf.c delete mode 100644 samples/bpf/test_probe_write_user_user.c delete mode 100644 samples/bpf/tracex7.bpf.c delete mode 100644 samples/bpf/tracex7_user.c create mode 100644 tools/testing/selftests/bpf/io_helpers.c create mode 100644 tools/testing/selftests/bpf/io_helpers.h create mode 100644 tools/testing/selftests/bpf/prog_tests/kmem_cache_iter.c create mode 100644 tools/testing/selftests/bpf/prog_tests/raw_tp_null.c create mode 100644 tools/testing/selftests/bpf/prog_tests/sock_create.c rename tools/testing/selftests/bpf/{test_sock.c => prog_tests/sock_post_bind.c} (64%) create mode 100644 tools/testing/selftests/bpf/prog_tests/struct_ops_private_stack.c delete mode 100644 tools/testing/selftests/bpf/progs/bpf_iter.h create mode 100644 tools/testing/selftests/bpf/progs/kmem_cache_iter.c create mode 100644 tools/testing/selftests/bpf/progs/kprobe_multi_verifier.c create mode 100644 tools/testing/selftests/bpf/progs/raw_tp_null.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_private_stack.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_private_stack_fail.c create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_private_stack_recur.c create mode 100644 tools/testing/selftests/bpf/progs/tailcall_fail.c create mode 100644 tools/testing/selftests/bpf/progs/task_ls_uptr.c create mode 100644 tools/testing/selftests/bpf/progs/update_map_in_htab.c create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_session.c create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_session_cookie.c create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_session_recursive.c create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_session_single.c create mode 100644 tools/testing/selftests/bpf/progs/uprobe_multi_verifier.c create mode 100644 tools/testing/selftests/bpf/progs/uptr_failure.c create mode 100644 tools/testing/selftests/bpf/progs/uptr_map_failure.c create mode 100644 tools/testing/selftests/bpf/progs/uptr_update_failure.c create mode 100644 tools/testing/selftests/bpf/progs/verifier_private_stack.c create mode 100644 tools/testing/selftests/bpf/uptr_test_common.h