mbox series

[GIT,PULL] BPF changes for v6.13

Message ID 20241118193635.77842-1-alexei.starovoitov@gmail.com (mailing list archive)
State New
Headers show
Series [GIT,PULL] BPF changes for v6.13 | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git tags/bpf-next-6.13

Checks

Context Check Description
netdev/tree_selection success Pull request for net, async
netdev/build_32bit success Errors and warnings before: 549 this patch: 549
netdev/build_tools success Errors and warnings before: 2 (+0) this patch: 2 (+0)
netdev/build_clang fail Errors and warnings before: 1024 this patch: 1026
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn fail Errors and warnings before: 14746 this patch: 14758
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 20 this patch: 20

Message

Alexei Starovoitov Nov. 18, 2024, 7:36 p.m. UTC
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@gmail.com/
  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@kernel.org>
----------------------------------------------------------------
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