[GIT PULL] BPF changes for 6.16

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

The following changes since commit b4432656b36e5cc1d50a1f2dc15357543add530e:

  Linux 6.15-rc4 (2025-04-27 15:19:23 -0700)

are available in the Git repository at:

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

for you to fetch changes up to c5cebb241e27ed0c3f4c1d2ce63089398e0ed17e:

  bpf, arm64: Remove unused-but-set function and variable. (2025-05-27 20:16:57 -0700)

----------------------------------------------------------------
Single PR this time with BPF changes.
There should be no conflicts.

- Fix and improve BTF deduplication of identical BTF types
  (Alan Maguire and Andrii Nakryiko)

- Support up to 12 arguments in BPF trampoline on arm64
  (Xu Kuohai and Alexis Lothoré) 

- Support load-acquire and store-release instructions in BPF JIT
  on riscv64 (Andrea Parri)

- Fix uninitialized values in BPF_{CORE,PROBE}_READ macros
  (Anton Protopopov)

- Streamline allowed helpers across program types (Feng Yang)

- Support atomic update for hashtab of BPF maps (Hou Tao)

- Implement json output for BPF helpers (Ihor Solodrai)

- Several s390 JIT fixes (Ilya Leoshkevich)

- Various sockmap fixes (Jiayuan Chen)

- Support mmap of vmlinux BTF data (Lorenz Bauer)

- Support BPF rbtree traversal and list peeking (Martin KaFai Lau)

- Tests for sockmap/sockhash redirection (Michal Luczaj)

- Introduce kfuncs for memory reads into dynptrs (Mykyta Yatsenko)

- Add support for dma-buf iterators in BPF (T.J. Mercier)

- The verifier support for __bpf_trap() (Yonghong Song)

Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx>
----------------------------------------------------------------
Alan Maguire (4):
      libbpf: Add identical pointer detection to btf_dedup_is_equiv()
      selftests/bpf: Add btf dedup test covering module BTF dedup
      libbpf/btf: Fix string handling to support multi-split BTF
      selftests/bpf: Test multi-split BTF

Alexei Starovoitov (15):
      Merge branch 'bpf-fix-ktls-panic-with-sockmap-and-add-tests'
      Merge branch 'bpf-sockmap-fix-data-loss-and-panic-issues'
      Merge branch 'bpf-support-atomic-update-for-htab-of-maps'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf after rc3
      Merge branch 'selftests-bpf-fix-a-few-issues-in-arena_spin_lock'
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf after rc4
      Merge branch 'bpf-support-bpf-rbtree-traversal-and-list-peeking'
      Merge branch 'bpf-riscv64-support-load-acquire-and-store-release-instructions'
      Merge branch 'fix-verifier-test-failures-in-verbose-mode'
      Merge branch 'introduce-kfuncs-for-memory-reads-into-dynptrs'
      Merge branch 's390-bpf-remove-the-orig_call-null-check'
      Merge branch 's390-bpf-use-kernel-s-expoline-thunks'
      Merge branch 'replace-config_dmabuf_sysfs_stats-with-bpf'
      Merge branch 'bpf-arm64-support-up-to-12-arguments'
      bpf, arm64: Remove unused-but-set function and variable.

Alexis Lothoré (eBPF Foundation) (1):
      selftests/bpf: enable many-args tests for arm64

Andrea Parri (2):
      bpf, riscv64: Introduce emit_load_*() and emit_store_*()
      bpf, riscv64: Support load-acquire and store-release instructions

Andrii Nakryiko (10):
      Merge branch 'likely-unlikely-for-bpf_helpers-and-a-small-comment-fix'
      Merge branch 'libbpf-introduce-line_info-and-func_info-getters'
      Merge branch 'libbpf-fix-event-name-too-long-error-and-add-tests'
      Merge branch 'bpf-allow-access-to-const-void-pointer-arguments-in-tracing-programs'
      libbpf: Improve BTF dedup handling of "identical" BTF types
      Merge branch 'bpf-allow-some-trace-helpers-for-all-prog-types'
      Merge branch 'bpf-retrieve-ref_ctr_offset-from-uprobe-perf-link'
      bpf, docs: document open-coded BPF iterators
      Merge branch 'libbpf-support-multi-split-btf'
      Merge branch 'allow-mmap-of-sys-kernel-btf-vmlinux'

Anton Protopopov (5):
      bpf: Fix a comment describing bpf_attr
      libbpf: Add likely/unlikely macros and use them in selftests
      libbpf: Use proper errno value in linker
      bpf: Fix uninitialized values in BPF_{CORE,PROBE}_READ
      libbpf: Use proper errno value in nlattr

Carlos Llamas (1):
      libbpf: Fix implicit memfd_create() for bionic

Chen Ni (1):
      selftests/bpf: Convert comma to semicolon

Di Shen (1):
      bpf: Revert "bpf: remove unnecessary rcu_read_{lock,unlock}() in multi-uprobe attach logic"

Feng Yang (6):
      libbpf: Fix event name too long error
      selftests/bpf: Add test for attaching uprobe with long event names
      selftests/bpf: Add test for attaching kprobe with long event names
      bpf: Streamline allowed helpers between tracing and base sets
      bpf: Allow some trace helpers for all prog types
      sched_ext: Remove bpf_scx_get_func_proto

Gregory Bell (2):
      selftests/bpf: test_verifier verbose causes erroneous failures
      selftests/bpf: test_verifier verbose log overflows

Hou Tao (7):
      bpf: Factor out htab_elem_value helper()
      bpf: Rename __htab_percpu_map_update_elem to htab_map_update_elem_in_place
      bpf: Support atomic update for htab of maps
      bpf: Add is_fd_htab() helper
      bpf: Don't allocate per-cpu extra_elems for fd htab
      selftests/bpf: Add test case for atomic update of fd htab
      bpf: Check rcu_read_lock_trace_held() in bpf_map_lookup_percpu_elem()

Ihor Solodrai (4):
      kbuild, bpf: Enable --btf_features=attributes
      libbpf: Verify section type in btf_find_elf_sections
      selftests/bpf: Remove sockmap_ktls disconnect_after_delete test
      scripts/bpf_doc.py: implement json output format

Ilya Leoshkevich (10):
      selftests/bpf: Set MACs during veth creation in tc_redirect
      selftests/bpf: Fix arena_spin_lock.c build dependency
      selftests/bpf: Fix arena_spin_lock on systems with less than 16 CPUs
      selftests/bpf: Fix endianness issue in __qspinlock declaration
      s390/bpf: Store backchain even for leaf progs
      bpf: Pass the same orig_call value to trampoline functions
      s390/bpf: Remove the orig_call NULL check
      s390: always declare expoline thunks
      s390/bpf: Add macros for calling external functions
      s390/bpf: Use kernel's expoline thunks

Jiapeng Chong (1):
      selftest/bpf/benchs: Remove duplicate sys/types.h header

Jiayuan Chen (10):
      bpf: fix ktls panic with sockmap
      selftests/bpf: add ktls selftest
      bpf, sockmap: Fix data lost during EAGAIN retries
      bpf, sockmap: fix duplicated data transmission
      bpf, sockmap: Fix panic when calling skb_linearize
      selftest/bpf/benchs: Add benchmark for sockmap usage
      ktls, sockmap: Fix missing uncharge operation
      selftests/bpf: Add test to cover sockmap with ktls
      bpf, sockmap: Avoid using sk_socket after free when sending
      bpftool: Add support for custom BTF path in prog load/loadall

Jiri Olsa (3):
      bpf: Add support to retrieve ref_ctr_offset for uprobe perf link
      selftests/bpf: Add link info test for ref_ctr_offset retrieval
      bpftool: Display ref_ctr_offset for uprobe link info

Jonathan Wiepert (1):
      Use thread-safe function pointer in libbpf_print

KaFai Wan (3):
      bpf: Allow access to const void pointer arguments in tracing programs
      selftests/bpf: Add test to access const void pointer argument in tracing program
      bpf: Avoid __bpf_prog_ret0_warn when jit fails

Khaled Elnaggar (1):
      docs: bpf: Fix bullet point formatting warning

Kumar Kartikeya Dwivedi (1):
      bpf: Add support for __prog argument suffix to pass in prog->aux

Kuniyuki Iwashima (1):
      selftests/bpf: Relax TCPOPT_WINDOW validation in test_tcp_custom_syncookie.c.

Lorenz Bauer (3):
      btf: Allow mmap of vmlinux btf
      selftests: bpf: Add a test for mmapable vmlinux BTF
      libbpf: Use mmap to parse vmlinux BTF from sysfs

Lorenzo Bianconi (2):
      bpf: Allow XDP dev-bound programs to perform XDP_REDIRECT into maps
      selftests/bpf: xdp_metadata: Check XDP_REDIRCT support for dev-bound progs

Luis Gerhorst (1):
      selftests/bpf: Fix caps for __xlated/jited_unpriv

Malaya Kumar Rout (1):
      selftests/bpf: Close the file descriptor to avoid resource leaks

Martin KaFai Lau (12):
      Merge branch 'bpf-allow-xdp_redirect-for-xdp-dev-bound-programs'
      bpf: Check KF_bpf_rbtree_add_impl for the "case KF_ARG_PTR_TO_RB_NODE"
      bpf: Simplify reg0 marking for the rbtree kfuncs that return a bpf_rb_node pointer
      bpf: Add bpf_rbtree_{root,left,right} kfunc
      bpf: Allow refcounted bpf_rb_node used in bpf_rbtree_{remove,left,right}
      selftests/bpf: Add tests for bpf_rbtree_{root,left,right}
      bpf: Simplify reg0 marking for the list kfuncs that return a bpf_list_node pointer
      bpf: Add bpf_list_{front,back} kfunc
      selftests/bpf: Add test for bpf_list_{front,back}
      bpftool: Fix cgroup command to only show cgroup bpf programs
      Merge branch 'ktls-sockmap-fix-missing-uncharge-operation-and-add-selfttest'
      Merge branch 'selftests-bpf-test-sockmap-sockhash-redirection'

Michal Luczaj (8):
      selftests/bpf: Support af_unix SOCK_DGRAM socket pair creation
      selftests/bpf: Add socket_kind_to_str() to socket_helpers
      selftests/bpf: Add u32()/u64() to sockmap_helpers
      selftests/bpf: Introduce verdict programs for sockmap_redir
      selftests/bpf: Add selftest for sockmap/hashmap redirection
      selftests/bpf: sockmap_listen cleanup: Drop af_vsock redir tests
      selftests/bpf: sockmap_listen cleanup: Drop af_unix redir tests
      selftests/bpf: sockmap_listen cleanup: Drop af_inet SOCK_DGRAM redir tests

Mykyta Yatsenko (11):
      selftests/bpf: Support struct/union presets in veristat
      libbpf: Add getters for BTF.ext func and line info
      selftests/bpf: Add BTF.ext line/func info getter tests
      selftests/bpf: Allow skipping docs compilation
      helpers: make few bpf helpers public
      bpf: Implement dynptr copy kfuncs
      selftests/bpf: introduce tests for dynptr copy kfuncs
      libbpf: Check bpf_map_skeleton link for NULL
      selftests/bpf: Remove unnecessary link dependencies
      selftests/bpf: Add SKIP_LLVM makefile variable
      bpf: Fix error return value in bpf_copy_from_user_dynptr

Paul Chaignon (3):
      bpf: Clarify role of BPF_F_RECOMPUTE_CSUM
      bpf: Clarify the meaning of BPF_F_PSEUDO_HDR
      bpf: WARN_ONCE on verifier bugs

Peilin Ye (6):
      bpf/verifier: Handle BPF_LOAD_ACQ instructions in insn_def_regno()
      bpf, riscv64: Skip redundant zext instruction after load-acquire
      selftests/bpf: Use CAN_USE_LOAD_ACQ_STORE_REL when appropriate
      selftests/bpf: Avoid passing out-of-range values to __retval()
      selftests/bpf: Verify zero-extension behavior in load-acquire tests
      selftests/bpf: Enable non-arena load-acquire/store-release selftests for riscv64

Saket Kumar Bhaskar (1):
      selftests/bpf: Fix bpf_nf selftest failure

Shung-Hsi Yu (1):
      bpf: Use proper type to calculate bpf_raw_tp_null_args.mask index

T.J. Mercier (6):
      selftests/bpf: Fix kmem_cache iterator draining
      dma-buf: Rename debugfs symbols
      bpf: Add dmabuf iterator
      bpf: Add open coded dmabuf iterator
      selftests/bpf: Add test for dmabuf_iter
      selftests/bpf: Add test for open coded dmabuf_iter

Tao Chen (4):
      bpf: Check link_create.flags parameter for multi_kprobe
      bpf: Check link_create.flags parameter for multi_uprobe
      libbpf: Remove sample_period init in perf_buffer
      bpf: Fix WARN() in get_bpf_raw_tp_regs

Thorsten Blum (2):
      bpf: Replace offsetof() with struct_size()
      bpf: Replace offsetof() with struct_size()

Viktor Malik (1):
      libbpf: Fix buffer overflow in bpf_object__init_prog

WangYuli (1):
      bpf, docs: Fix non-standard line break

Xu Kuohai (1):
      bpf, arm64: Support up to 12 function arguments

YiFei Zhu (1):
      bpftool: Fix regression of "bpftool cgroup tree" EINVAL on older kernels

Yonghong Song (5):
      bpf: Remove special_kfunc_set from verifier
      bpf: Warn with __bpf_trap() kfunc maybe due to uninitialized variable
      selftests/bpf: Add unit tests with __bpf_trap() kfunc
      bpf: Do not include stack ptr register in precision backtracking bookkeeping
      selftests/bpf: Add tests with stack ptr register in conditional jmp

 Documentation/bpf/bpf_iterators.rst                | 117 +++-
 Documentation/bpf/kfuncs.rst                       |  17 +
 arch/arm64/net/bpf_jit_comp.c                      | 242 +++++---
 arch/riscv/net/bpf_jit.h                           |  15 +
 arch/riscv/net/bpf_jit_comp64.c                    | 332 +++++++----
 arch/riscv/net/bpf_jit_core.c                      |   3 +-
 arch/s390/include/asm/nospec-branch.h              |   4 -
 arch/s390/net/bpf_jit_comp.c                       | 138 +++--
 drivers/dma-buf/dma-buf.c                          |  98 +++-
 include/asm-generic/vmlinux.lds.h                  |   3 +-
 include/linux/bpf-cgroup.h                         |   8 -
 include/linux/bpf.h                                |  20 +
 include/linux/bpf_verifier.h                       |  24 +-
 include/linux/dma-buf.h                            |   4 +-
 include/uapi/linux/bpf.h                           |  19 +-
 kernel/bpf/Makefile                                |   3 +
 kernel/bpf/bpf_struct_ops.c                        |   2 +-
 kernel/bpf/btf.c                                   |  45 +-
 kernel/bpf/cgroup.c                                |  32 --
 kernel/bpf/core.c                                  |  29 +-
 kernel/bpf/dmabuf_iter.c                           | 150 +++++
 kernel/bpf/hashtab.c                               | 148 +++--
 kernel/bpf/helpers.c                               | 133 ++++-
 kernel/bpf/syscall.c                               |  10 +-
 kernel/bpf/sysfs_btf.c                             |  32 ++
 kernel/bpf/verifier.c                              | 636 +++++++++++----------
 kernel/sched/ext.c                                 |  15 +-
 kernel/trace/bpf_trace.c                           | 321 +++++++----
 kernel/trace/trace_uprobe.c                        |   2 +-
 net/bpf/test_run.c                                 |   8 +-
 net/core/filter.c                                  |  14 -
 net/core/skmsg.c                                   |  56 +-
 net/tls/tls_sw.c                                   |  15 +-
 scripts/Makefile.btf                               |   2 +
 scripts/bpf_doc.py                                 | 119 +++-
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |  10 +-
 tools/bpf/bpftool/bash-completion/bpftool          |   4 +-
 tools/bpf/bpftool/cgroup.c                         |  14 +-
 tools/bpf/bpftool/link.c                           |   3 +
 tools/bpf/bpftool/prog.c                           |  12 +-
 tools/include/uapi/linux/bpf.h                     |  19 +-
 tools/lib/bpf/bpf_core_read.h                      |   6 +
 tools/lib/bpf/bpf_helpers.h                        |   8 +
 tools/lib/bpf/btf.c                                | 226 ++++++--
 tools/lib/bpf/libbpf.c                             |  87 +--
 tools/lib/bpf/libbpf.h                             |   6 +
 tools/lib/bpf/libbpf.map                           |   4 +
 tools/lib/bpf/libbpf_internal.h                    |   9 +
 tools/lib/bpf/linker.c                             |   6 +-
 tools/lib/bpf/nlattr.c                             |  15 +-
 tools/testing/selftests/bpf/DENYLIST               |   1 +
 tools/testing/selftests/bpf/DENYLIST.aarch64       |   2 -
 tools/testing/selftests/bpf/Makefile               |  16 +-
 tools/testing/selftests/bpf/bench.c                |   4 +
 .../testing/selftests/bpf/benchs/bench_htab_mem.c  |   3 +-
 tools/testing/selftests/bpf/benchs/bench_sockmap.c | 598 +++++++++++++++++++
 tools/testing/selftests/bpf/bpf_experimental.h     |   5 +
 tools/testing/selftests/bpf/config                 |   3 +
 .../selftests/bpf/prog_tests/arena_spin_lock.c     |  14 +-
 .../selftests/bpf/prog_tests/attach_probe.c        |  84 +++
 tools/testing/selftests/bpf/prog_tests/bpf_nf.c    |   6 +
 .../selftests/bpf/prog_tests/btf_dedup_split.c     | 101 ++++
 tools/testing/selftests/bpf/prog_tests/btf_split.c |  58 +-
 tools/testing/selftests/bpf/prog_tests/btf_sysfs.c |  81 +++
 .../testing/selftests/bpf/prog_tests/dmabuf_iter.c | 285 +++++++++
 tools/testing/selftests/bpf/prog_tests/dynptr.c    |  13 +
 .../selftests/bpf/prog_tests/fd_htab_lookup.c      | 192 +++++++
 .../selftests/bpf/prog_tests/fill_link_info.c      |  18 +-
 .../selftests/bpf/prog_tests/kmem_cache_iter.c     |   2 +-
 .../testing/selftests/bpf/prog_tests/linked_list.c |   6 +
 tools/testing/selftests/bpf/prog_tests/rbtree.c    |   6 +
 tools/testing/selftests/bpf/prog_tests/sk_assign.c |   4 +-
 .../selftests/bpf/prog_tests/socket_helpers.h      |  84 ++-
 .../selftests/bpf/prog_tests/sockmap_helpers.h     |  25 +-
 .../selftests/bpf/prog_tests/sockmap_ktls.c        | 297 ++++++++--
 .../selftests/bpf/prog_tests/sockmap_listen.c      | 457 ---------------
 .../selftests/bpf/prog_tests/sockmap_redir.c       | 465 +++++++++++++++
 .../testing/selftests/bpf/prog_tests/tc_redirect.c |  11 +-
 .../selftests/bpf/prog_tests/test_btf_ext.c        |  64 +++
 .../selftests/bpf/prog_tests/test_veristat.c       |   5 +
 tools/testing/selftests/bpf/prog_tests/verifier.c  |   2 +
 .../selftests/bpf/prog_tests/xdp_metadata.c        |  22 +-
 .../selftests/bpf/progs/bench_sockmap_prog.c       |  65 +++
 .../bpf/{ => progs}/bpf_arena_spin_lock.h          |  15 +-
 tools/testing/selftests/bpf/progs/bpf_misc.h       |   5 +-
 tools/testing/selftests/bpf/progs/dmabuf_iter.c    | 101 ++++
 tools/testing/selftests/bpf/progs/dynptr_success.c | 230 ++++++++
 tools/testing/selftests/bpf/progs/fd_htab_lookup.c |  25 +
 tools/testing/selftests/bpf/progs/iters.c          |   2 -
 .../testing/selftests/bpf/progs/linked_list_peek.c | 113 ++++
 tools/testing/selftests/bpf/progs/prepare.c        |   1 -
 tools/testing/selftests/bpf/progs/rbtree_fail.c    |  29 +-
 tools/testing/selftests/bpf/progs/rbtree_search.c  | 206 +++++++
 .../testing/selftests/bpf/progs/set_global_vars.c  |  41 ++
 tools/testing/selftests/bpf/progs/test_btf_ext.c   |  22 +
 .../selftests/bpf/progs/test_sockmap_ktls.c        |  36 ++
 .../selftests/bpf/progs/test_sockmap_redir.c       |  68 +++
 .../bpf/progs/test_tcp_custom_syncookie.c          |   4 +-
 .../selftests/bpf/progs/verifier_bpf_trap.c        |  71 +++
 .../selftests/bpf/progs/verifier_btf_ctx_access.c  |  12 +
 .../selftests/bpf/progs/verifier_load_acquire.c    |  48 +-
 .../selftests/bpf/progs/verifier_precision.c       |  58 +-
 .../selftests/bpf/progs/verifier_store_release.c   |  39 +-
 tools/testing/selftests/bpf/progs/xdp_metadata.c   |  13 +
 .../testing/selftests/bpf/test_kmods/bpf_testmod.c |   8 +-
 tools/testing/selftests/bpf/test_loader.c          |  14 +-
 tools/testing/selftests/bpf/test_verifier.c        |   8 +-
 tools/testing/selftests/bpf/veristat.c             | 101 +++-
 108 files changed, 5801 insertions(+), 1713 deletions(-)
 create mode 100644 kernel/bpf/dmabuf_iter.c
 create mode 100644 tools/testing/selftests/bpf/benchs/bench_sockmap.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/btf_sysfs.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/dmabuf_iter.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/fd_htab_lookup.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/sockmap_redir.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/test_btf_ext.c
 create mode 100644 tools/testing/selftests/bpf/progs/bench_sockmap_prog.c
 rename tools/testing/selftests/bpf/{ => progs}/bpf_arena_spin_lock.h (98%)
 create mode 100644 tools/testing/selftests/bpf/progs/dmabuf_iter.c
 create mode 100644 tools/testing/selftests/bpf/progs/fd_htab_lookup.c
 create mode 100644 tools/testing/selftests/bpf/progs/linked_list_peek.c
 create mode 100644 tools/testing/selftests/bpf/progs/rbtree_search.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_btf_ext.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_sockmap_ktls.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_sockmap_redir.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_bpf_trap.c




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux