*** BLURB HERE ***
Alan Maguire (16):
kbuild,bpf: Switch to using --btf_features for pahole v1.26 and later
kbuild, bpf: Use test-ge check for v1.25-only pahole
libbpf: Add btf__distill_base() creating split BTF with distilled base
BTF
selftests/bpf: Test distilled base, split BTF generation
libbpf: Split BTF relocation
selftests/bpf: Extend distilled BTF tests to cover BTF relocation
resolve_btfids: Handle presence of .BTF.base section
libbpf: BTF relocation followup fixing naming, loop logic
module, bpf: Store BTF base pointer in struct module
libbpf: Split field iter code into its own file kernel
libbpf,bpf: Share BTF relocate-related code with kernel
kbuild,bpf: Add module-specific pahole flags for distilled base BTF
selftests/bpf: Add kfunc_call test for simple dtor in bpf_testmod
bpf: fix build when CONFIG_DEBUG_INFO_BTF[_MODULES] is undefined
libbpf: Fix error handling in btf__distill_base()
libbpf: Fix license for btf_relocate.c
Alexander Lobakin (1):
bitops: make BYTES_TO_BITS() treewide-available
Alexei Starovoitov (2):
s390/bpf: Fix indirect trampoline generation
bpf: Introduce "volatile compare" macros
Andrii Nakryiko (13):
bpf: Emit global subprog name in verifier logs
bpf: Validate global subprogs lazily
selftests/bpf: Add lazy global subprog validation tests
libbpf: Add btf__new_split() API that was declared but not implemented
bpf: move sleepable flag from bpf_prog_aux to bpf_prog
libbpf: Add BTF field iterator
libbpf: Make use of BTF field iterator in BPF linker code
libbpf: Make use of BTF field iterator in BTF handling code
bpftool: Use BTF field iterator in btfgen
libbpf: Remove callback-based type/string BTF field visitor helpers
bpf: extract iterator argument type and name validation logic
bpf: allow passing struct bpf_iter_<type> as kfunc arguments
selftests/bpf: test passing iterator to a kfunc
Benjamin Tissoires (1):
bpf: introduce in_sleepable() helper
Christophe Leroy (2):
bpf: Remove arch_unprotect_bpf_trampoline()
bpf: Check return from set_memory_rox()
Chuyi Zhou (13):
cgroup: Prepare for using css_task_iter_*() in BPF
bpf: Introduce css_task open-coded iterator kfuncs
bpf: Introduce task open coded iterator kfuncs
bpf: Introduce css open-coded iterator kfuncs
bpf: teach the verifier to enforce css_iter and task_iter in RCU CS
bpf: Let bpf_iter_task_new accept null task ptr
selftests/bpf: rename bpf_iter_task.c to bpf_iter_tasks.c
selftests/bpf: Add tests for open-coded task and css iter
bpf: Relax allowlist for css_task iter
selftests/bpf: Add tests for css_task iter combining with cgroup iter
selftests/bpf: Add test for using css_task iter in sleepable progs
bpf: Let verifier consider {task,cgroup} is trusted in bpf_iter_reg
selftests/bpf: get trusted cgrp from bpf_iter__cgroup directly
Daniel Xu (3):
bpf: btf: Support flags for BTF_SET8 sets
bpf: btf: Add BTF_KFUNCS_START/END macro pair
bpf: treewide: Annotate BPF kfuncs in BTF
Dave Marchevsky (6):
bpf: Don't explicitly emit BTF for struct btf_iter_num
selftests/bpf: Rename bpf_iter_task_vma.c to bpf_iter_task_vmas.c
bpf: Introduce task_vma open-coded iterator kfuncs
selftests/bpf: Add tests for open-coded task_vma iter
bpf: Add __bpf_kfunc_{start,end}_defs macros
bpf: Add __bpf_hook_{start,end} macros
David Vernet (2):
bpf: Add ability to pin bpf timer to calling CPU
selftests/bpf: Test pinning bpf timer to a core
Eduard Zingerman (2):
libbpf: Make btf_parse_elf process .BTF.base transparently
selftests/bpf: Check if distilled base inherits source endianness
Geliang Tang (1):
bpf, btf: Check btf for register_bpf_struct_ops
Hou Tao (6):
bpf: Free dynamically allocated bits in bpf_iter_bits_destroy()
bpf: Add bpf_mem_alloc_check_size() helper
bpf: Check the validity of nr_words in bpf_iter_bits_new()
bpf: Use __u64 to save the bits in bits iterator
selftests/bpf: Add three test cases for bits_iter
selftests/bpf: Use -4095 as the bad address for bits iterator
Kui-Feng Lee (29):
bpf: refactory struct_ops type initialization to a function.
bpf: get type information with BTF_ID_LIST
bpf, net: introduce bpf_struct_ops_desc.
bpf: add struct_ops_tab to btf.
bpf: make struct_ops_map support btfs other than btf_vmlinux.
bpf: pass btf object id in bpf_map_info.
bpf: lookup struct_ops types from a given module BTF.
bpf: pass attached BTF to the bpf_struct_ops subsystem
bpf: hold module refcnt in bpf_struct_ops map creation and prog
verification.
bpf: validate value_type
bpf, net: switch to dynamic registration
libbpf: Find correct module BTFs for struct_ops maps and progs.
bpf: export btf_ctx_access to modules.
selftests/bpf: test case for register_bpf_struct_ops().
bpf: Fix error checks against bpf_get_btf_vmlinux().
bpf: Remove an unnecessary check.
selftests/bpf: Suppress warning message of an unused variable.
bpf: add btf pointer to struct bpf_ctx_arg_aux.
bpf: Move __kfunc_param_match_suffix() to btf.c.
bpf: Create argument information for nullable arguments.
selftests/bpf: Test PTR_MAYBE_NULL arguments of struct_ops operators.
libbpf: Set btf_value_type_id of struct bpf_map for struct_ops.
libbpf: Convert st_ops->data to shadow type.
bpftool: Generated shadow variables for struct_ops maps.
bpftool: Add an example for struct_ops map and shadow type.
selftests/bpf: Test if shadow types work correctly.
bpf, net: validate struct_ops when updating value.
bpf: struct_ops supports more than one page for trampolines.
selftests/bpf: Test struct_ops maps with a large number of struct_ops
program.
Kumar Kartikeya Dwivedi (4):
bpf: Allow calling static subprogs while holding a bpf_spin_lock
selftests/bpf: Add test for static subprog call in lock cs
bpf: Transfer RCU lock state between subprog calls
selftests/bpf: Add tests for RCU lock transfer between subprogs
Luo Gengkun (7):
bpf: Fix kabi-breakage for bpf_func_info_aux
bpf: Fix kabi-breakage for bpf_tramp_image
bpf: Fix kabi for bpf_attr
bpf_verifier: Fix kabi for bpf_verifier_env
bpf: Fix kabi for bpf_ctx_arg_aux
bpf: Fix kabi for bpf_prog_aux and bpf_prog
selftests/bpf: modify test_loader that didn't support running
bpf_prog_type_syscall programs
Martin KaFai Lau (4):
libbpf: Ensure undefined bpf_attr field stays 0
bpf: Remove unnecessary err < 0 check in
bpf_struct_ops_map_update_elem
bpf: Fix a crash when btf_parse_base() returns an error pointer
bpf: Reject struct_ops registration that uses module ptr and the
module btf_id is missing
Masahiro Yamada (1):
kbuild: avoid too many execution of scripts/pahole-flags.sh
Matthieu Baerts (1):
bpf: fix compilation error without CGROUPS
Peter Zijlstra (6):
cfi: Flip headers
x86/cfi,bpf: Fix BPF JIT call
x86/cfi,bpf: Fix bpf_callback_t CFI
x86/cfi,bpf: Fix bpf_struct_ops CFI
cfi: Add CFI_NOSEAL()
bpf: Fix dtor CFI
Pu Lehui (8):
riscv, bpf: Fix unpredictable kernel crash about RV64 struct_ops
bpf: Fix kabi breakage in struct module
riscv, bpf: Fix out-of-bounds issue when preparing trampoline image
selftests/bpf: Fix btf leak on new btf alloc failure in btf_distill
test
libbpf: Fix return zero when elf_begin failed
libbpf: Fix incorrect traversal end type ID when marking
BTF_IS_EMBEDDED
selftests/bpf: Add distilled BTF test about marking BTF_IS_EMBEDDED
selftests/bpf: Add file_read_pattern to gitignore
Song Liu (8):
bpf: Charge modmem for struct_ops trampoline
bpf: Let bpf_prog_pack_free handle any pointer
bpf: Adjust argument names of arch_prepare_bpf_trampoline()
bpf: Add helpers for trampoline image management
bpf, x86: Adjust arch_prepare_bpf_trampoline return value
bpf: Add arch_bpf_trampoline_size()
bpf: Use arch_bpf_trampoline_size
x86, bpf: Use bpf_prog_pack for bpf trampoline
T.J. Mercier (1):
bpf, docs: Fix broken link to renamed bpf_iter_task_vmas.c
Tony Ambardar (1):
libbpf: Ensure new BTF objects inherit input endianness
Yafang Shao (2):
bpf: Add bits iterator
selftests/bpf: Add selftest for bits iter
Documentation/bpf/bpf_iterators.rst | 2 +-
Documentation/bpf/kfuncs.rst | 14 +-
MAINTAINERS | 2 +-
Makefile | 4 +-
arch/arm64/kernel/bpf-rvi.c | 4 +-
arch/arm64/net/bpf_jit_comp.c | 55 +-
arch/riscv/include/asm/cfi.h | 3 +-
arch/riscv/kernel/cfi.c | 2 +-
arch/riscv/net/bpf_jit_comp64.c | 48 +-
arch/s390/net/bpf_jit_comp.c | 59 +-
arch/x86/include/asm/cfi.h | 126 ++-
arch/x86/kernel/alternative.c | 87 +-
arch/x86/kernel/cfi.c | 4 +-
arch/x86/net/bpf_jit_comp.c | 261 ++++--
block/blk-cgroup.c | 4 +-
drivers/hid/bpf/hid_bpf_dispatch.c | 12 +-
fs/proc/stat.c | 4 +-
include/asm-generic/Kbuild | 1 +
include/asm-generic/cfi.h | 5 +
include/linux/bitops.h | 2 +
include/linux/bpf.h | 130 ++-
include/linux/bpf_mem_alloc.h | 3 +
include/linux/bpf_verifier.h | 21 +-
include/linux/btf.h | 105 +++
include/linux/btf_ids.h | 21 +-
include/linux/cfi.h | 12 +
include/linux/cgroup.h | 12 +-
include/linux/filter.h | 2 +-
include/linux/module.h | 5 +
include/uapi/linux/bpf.h | 16 +-
kernel/bpf-rvi/common_kfuncs.c | 4 +-
kernel/bpf/Makefile | 8 +-
kernel/bpf/bpf_iter.c | 12 +-
kernel/bpf/bpf_struct_ops.c | 748 ++++++++++++------
kernel/bpf/bpf_struct_ops_types.h | 12 -
kernel/bpf/btf.c | 431 ++++++++--
kernel/bpf/cgroup_iter.c | 65 +-
kernel/bpf/core.c | 76 +-
kernel/bpf/cpumask.c | 18 +-
kernel/bpf/dispatcher.c | 7 +-
kernel/bpf/helpers.c | 202 ++++-
kernel/bpf/map_iter.c | 10 +-
kernel/bpf/memalloc.c | 14 +-
kernel/bpf/syscall.c | 12 +-
kernel/bpf/task_iter.c | 242 +++++-
kernel/bpf/trampoline.c | 99 ++-
kernel/bpf/verifier.c | 317 ++++++--
kernel/cgroup/cgroup.c | 18 +-
kernel/cgroup/cpuset.c | 4 +-
kernel/cgroup/rstat.c | 13 +-
kernel/events/core.c | 2 +-
kernel/module/main.c | 5 +-
kernel/sched/bpf_sched.c | 8 +-
kernel/sched/cpuacct.c | 4 +-
kernel/trace/bpf_trace.c | 12 +-
kernel/trace/trace_probe.c | 2 -
net/bpf/bpf_dummy_struct_ops.c | 72 +-
net/bpf/test_run.c | 30 +-
net/core/filter.c | 33 +-
net/core/xdp.c | 10 +-
net/ipv4/bpf_tcp_ca.c | 93 ++-
net/ipv4/fou_bpf.c | 10 +-
net/ipv4/tcp_bbr.c | 4 +-
net/ipv4/tcp_cong.c | 6 +-
net/ipv4/tcp_cubic.c | 4 +-
net/ipv4/tcp_dctcp.c | 4 +-
net/netfilter/nf_conntrack_bpf.c | 10 +-
net/netfilter/nf_nat_bpf.c | 10 +-
net/socket.c | 8 +-
net/xfrm/xfrm_interface_bpf.c | 10 +-
scripts/Makefile.btf | 33 +
scripts/Makefile.modfinal | 2 +-
scripts/pahole-flags.sh | 30 -
.../bpf/bpftool/Documentation/bpftool-gen.rst | 58 +-
tools/bpf/bpftool/gen.c | 253 +++++-
tools/bpf/resolve_btfids/main.c | 8 +
tools/include/linux/bitops.h | 2 +
tools/include/uapi/linux/bpf.h | 14 +-
tools/lib/bpf/Build | 2 +-
tools/lib/bpf/bpf.c | 4 +-
tools/lib/bpf/bpf.h | 4 +-
tools/lib/bpf/btf.c | 704 ++++++++++++-----
tools/lib/bpf/btf.h | 36 +
tools/lib/bpf/btf_iter.c | 177 +++++
tools/lib/bpf/btf_relocate.c | 519 ++++++++++++
tools/lib/bpf/libbpf.c | 86 +-
tools/lib/bpf/libbpf.map | 4 +-
tools/lib/bpf/libbpf_internal.h | 29 +-
tools/lib/bpf/libbpf_probes.c | 1 +
tools/lib/bpf/linker.c | 58 +-
tools/perf/util/probe-finder.c | 4 +-
tools/testing/selftests/bpf/.gitignore | 1 +
.../testing/selftests/bpf/bpf_experimental.h | 96 +++
.../selftests/bpf/bpf_testmod/bpf_testmod.c | 160 +++-
.../selftests/bpf/bpf_testmod/bpf_testmod.h | 61 ++
.../bpf/bpf_testmod/bpf_testmod_kfunc.h | 9 +
.../selftests/bpf/prog_tests/bpf_iter.c | 44 +-
.../selftests/bpf/prog_tests/btf_distill.c | 692 ++++++++++++++++
.../selftests/bpf/prog_tests/cgroup_iter.c | 33 +
.../testing/selftests/bpf/prog_tests/iters.c | 209 +++++
.../selftests/bpf/prog_tests/kfunc_call.c | 1 +
.../selftests/bpf/prog_tests/rcu_read_lock.c | 6 +
.../selftests/bpf/prog_tests/spin_lock.c | 2 +
.../prog_tests/test_struct_ops_maybe_null.c | 46 ++
.../bpf/prog_tests/test_struct_ops_module.c | 86 ++
.../prog_tests/test_struct_ops_multi_pages.c | 30 +
.../testing/selftests/bpf/prog_tests/timer.c | 4 +
.../selftests/bpf/prog_tests/verifier.c | 4 +
...f_iter_task_vma.c => bpf_iter_task_vmas.c} | 0
.../{bpf_iter_task.c => bpf_iter_tasks.c} | 0
tools/testing/selftests/bpf/progs/iters_css.c | 72 ++
.../selftests/bpf/progs/iters_css_task.c | 102 +++
.../testing/selftests/bpf/progs/iters_task.c | 41 +
.../selftests/bpf/progs/iters_task_failure.c | 105 +++
.../selftests/bpf/progs/iters_task_vma.c | 43 +
.../selftests/bpf/progs/iters_testmod_seq.c | 50 ++
.../selftests/bpf/progs/kfunc_call_test.c | 37 +
.../selftests/bpf/progs/rcu_read_lock.c | 120 +++
.../bpf/progs/struct_ops_maybe_null.c | 29 +
.../bpf/progs/struct_ops_maybe_null_fail.c | 24 +
.../selftests/bpf/progs/struct_ops_module.c | 37 +
.../bpf/progs/struct_ops_multi_pages.c | 102 +++
.../selftests/bpf/progs/test_global_func12.c | 4 +-
.../selftests/bpf/progs/test_spin_lock.c | 65 ++
.../selftests/bpf/progs/test_spin_lock_fail.c | 44 ++
tools/testing/selftests/bpf/progs/timer.c | 63 +-
.../selftests/bpf/progs/verifier_bits_iter.c | 232 ++++++
.../bpf/progs/verifier_global_subprogs.c | 92 +++
.../selftests/bpf/progs/verifier_spin_lock.c | 2 +-
.../bpf/progs/verifier_subprog_precision.c | 4 +-
tools/testing/selftests/bpf/test_loader.c | 10 +-
131 files changed, 7326 insertions(+), 1139 deletions(-)
create mode 100644 include/asm-generic/cfi.h
delete mode 100644 kernel/bpf/bpf_struct_ops_types.h
create mode 100644 scripts/Makefile.btf
delete mode 100755 scripts/pahole-flags.sh
create mode 100644 tools/lib/bpf/btf_iter.c
create mode 100644 tools/lib/bpf/btf_relocate.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/btf_distill.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/test_struct_ops_maybe_null.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/test_struct_ops_module.c
create mode 100644 tools/testing/selftests/bpf/prog_tests/test_struct_ops_multi_pages.c
rename tools/testing/selftests/bpf/progs/{bpf_iter_task_vma.c => bpf_iter_task_vmas.c} (100%)
rename tools/testing/selftests/bpf/progs/{bpf_iter_task.c => bpf_iter_tasks.c} (100%)
create mode 100644 tools/testing/selftests/bpf/progs/iters_css.c
create mode 100644 tools/testing/selftests/bpf/progs/iters_css_task.c
create mode 100644 tools/testing/selftests/bpf/progs/iters_task.c
create mode 100644 tools/testing/selftests/bpf/progs/iters_task_failure.c
create mode 100644 tools/testing/selftests/bpf/progs/iters_task_vma.c
create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_maybe_null.c
create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_maybe_null_fail.c
create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_module.c
create mode 100644 tools/testing/selftests/bpf/progs/struct_ops_multi_pages.c
create mode 100644 tools/testing/selftests/bpf/progs/verifier_bits_iter.c
create mode 100644 tools/testing/selftests/bpf/progs/verifier_global_subprogs.c
--
2.34.1