pull-request: bpf-next 2023-05-16

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

 



Hi David, hi Jakub, hi Paolo, hi Eric,

The following pull-request contains BPF updates for your *net-next* tree.

We've added 57 non-merge commits during the last 19 day(s) which contain
a total of 63 files changed, 3293 insertions(+), 690 deletions(-).

The main changes are:

1) Add precision propagation to verifier for subprogs and callbacks, from Andrii Nakryiko.

2) Improve BPF's {g,s}setsockopt() handling with wrong option lengths, from Stanislav Fomichev.

3) Utilize pahole v1.25 for the kernel's BTF generation to filter out inconsistent
   function prototypes, from Alan Maguire.

4) Various dyn-pointer verifier improvements to relax restrictions, from Daniel Rosenberg.

5) Add a new bpf_task_under_cgroup() kfunc for designated task, from Feng Zhou.

6) Unblock tests for arm64 BPF CI after ftrace supporting direct call, from Florent Revest.

7) Add XDP hint kfunc metadata for RX hash/timestamp for igc, from Jesper Dangaard Brouer.

8) Add several new dyn-pointer kfuncs to ease their usability, from Joanne Koong.

9) Add in-depth LRU internals description and dot function graph, from Joe Stringer.

10) Fix KCSAN report on bpf_lru_list when accessing node->ref, from Martin KaFai Lau.

11) Only dump unprivileged_bpf_disabled log warning upon write, from Kui-Feng Lee.

12) Extend test_progs to directly passing allow/denylist file, from Stephen Veiss.

13) Fix BPF trampoline memleak upon failure attaching to fentry, from Yafang Shao.

14) Fix emitting struct bpf_tcp_sock type in vmlinux BTF, from Yonghong Song.

Please consider pulling these changes from:

  git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git tags/for-netdev

Thanks a lot!

Also thanks to reporters, reviewers and testers of commits in this pull-request:

Alexei Starovoitov, Andrii Nakryiko, Bagas Sanjaya, Jiri Olsa, John 
Fastabend, Lennart Poettering, Magnus Karlsson, Manu Bretelle, Nicky 
Veitch, Quentin Monnet, Song Liu, Song Yoong Siang, Stanislav Fomichev, 
Xuan Zhuo, Xu Kuohai, Yonghong Song

----------------------------------------------------------------

The following changes since commit 6e98b09da931a00bf4e0477d0fa52748bf28fcce:

  Merge tag 'net-next-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next (2023-04-26 16:07:23 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 108598c39eefbedc9882273ac0df96127a629220:

  bpf: Fix memleak due to fentry attach failure (2023-05-15 23:41:59 +0200)

----------------------------------------------------------------
bpf-next-for-netdev

----------------------------------------------------------------
Alan Maguire (2):
      bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
      bpftool: JIT limited misreported as negative value on aarch64

Alexei Starovoitov (3):
      Merge branch 'Add precision propagation for subprogs and callbacks'
      Merge branch 'Introduce a new kfunc of bpf_task_under_cgroup'
      Merge branch 'Dynptr Verifier Adjustments'

Andrii Nakryiko (13):
      Merge branch 'selftests/bpf: test_progs can read test lists from file'
      veristat: add -t flag for adding BPF_F_TEST_STATE_FREQ program flag
      bpf: mark relevant stack slots scratched for register read instructions
      bpf: encapsulate precision backtracking bookkeeping
      bpf: improve precision backtrack logging
      bpf: maintain bitmasks across all active frames in __mark_chain_precision
      bpf: fix propagate_precision() logic for inner frames
      bpf: fix mark_all_scalars_precise use in mark_chain_precision
      bpf: support precision propagation in the presence of subprogs
      selftests/bpf: add precision propagation tests in the presence of subprogs
      selftests/bpf: revert iter test subprog precision workaround
      libbpf: fix offsetof() and container_of() to work with CO-RE
      bpf: fix calculation of subseq_idx during precision backtracking

Daniel Borkmann (1):
      selftests/bpf: Add test case to assert precise scalar path pruning

Daniel Rosenberg (5):
      bpf: Allow NULL buffers in bpf_dynptr_slice(_rw)
      selftests/bpf: Test allowing NULL buffer in dynptr slice
      selftests/bpf: Check overflow in optional buffer
      bpf: verifier: Accept dynptr mem as mem in helpers
      selftests/bpf: Accept mem from dynptr in helper funcs

Dave Marchevsky (1):
      bpf: Remove anonymous union in bpf_kfunc_call_arg_meta

Feng Zhou (2):
      bpf: Add bpf_task_under_cgroup() kfunc
      selftests/bpf: Add testcase for bpf_task_under_cgroup

Florent Revest (2):
      selftests/bpf: Update the aarch64 tests deny list
      bpf, arm64: Support struct arguments in the BPF trampoline

Jesper Dangaard Brouer (5):
      igc: Enable and fix RX hash usage by netstack
      igc: Add igc_xdp_buff wrapper for xdp_buff in driver
      igc: Add XDP hints kfuncs for RX hash
      igc: Add XDP hints kfuncs for RX timestamp
      selftests/bpf: xdp_hw_metadata track more timestamps

Joanne Koong (5):
      bpf: Add bpf_dynptr_adjust
      bpf: Add bpf_dynptr_is_null and bpf_dynptr_is_rdonly
      bpf: Add bpf_dynptr_size
      bpf: Add bpf_dynptr_clone
      selftests/bpf: Add tests for dynptr convenience helpers

Joe Stringer (2):
      docs/bpf: Add table to describe LRU properties
      docs/bpf: Add LRU internals description and graph

Kal Conley (1):
      xsk: Use pool->dma_pages to check for DMA

Kenjiro Nakayama (1):
      libbpf: Fix comment about arc and riscv arch in bpf_tracing.h

Kui-Feng Lee (2):
      bpftool: Show map IDs along with struct_ops links.
      bpf: Print a warning only if writing to unprivileged_bpf_disabled.

Martin KaFai Lau (4):
      selftests/bpf: Add fexit_sleep to DENYLIST.aarch64
      libbpf: btf_dump_type_data_check_overflow needs to consider BTF_MEMBER_BITFIELD_SIZE
      bpf: Address KCSAN report on bpf_lru_list
      Merge branch 'bpf: Don't EFAULT for {g,s}setsockopt with wrong optlen'

Pengcheng Yang (1):
      samples/bpf: Fix buffer overflow in tcp_basertt

Stanislav Fomichev (4):
      bpf: Don't EFAULT for {g,s}setsockopt with wrong optlen
      selftests/bpf: Update EFAULT {g,s}etsockopt selftests
      selftests/bpf: Correctly handle optlen > 4096
      bpf: Document EFAULT changes for sockopt

Stephen Veiss (2):
      selftests/bpf: Extract insert_test from parse_test_list
      selftests/bpf: Test_progs can read test lists from file

Will Hawkins (1):
      bpf, docs: Update llvm_relocs.rst with typo fixes

Xueming Feng (1):
      bpftool: Dump map id instead of value for map_of_maps types

Yafang Shao (2):
      bpf: Remove bpf trampoline selector
      bpf: Fix memleak due to fentry attach failure

Yonghong Song (2):
      selftests/bpf: Fix selftest test_global_funcs/global_func1 failure with latest clang
      bpf: Emit struct bpf_tcp_sock type in vmlinux BTF

 Documentation/bpf/kfuncs.rst                       |  23 +-
 Documentation/bpf/llvm_reloc.rst                   |  18 +-
 Documentation/bpf/map_hash.rst                     |  53 +-
 Documentation/bpf/map_lru_hash_update.dot          | 172 +++++
 Documentation/bpf/prog_cgroup_sockopt.rst          |  57 +-
 arch/arm64/net/bpf_jit_comp.c                      |  55 +-
 drivers/net/ethernet/intel/igc/igc.h               |  35 +
 drivers/net/ethernet/intel/igc/igc_main.c          | 116 ++-
 include/linux/bpf.h                                |   3 +-
 include/linux/bpf_verifier.h                       |  27 +-
 include/linux/skbuff.h                             |   2 +-
 include/net/xsk_buff_pool.h                        |   2 +-
 kernel/bpf/bpf_lru_list.c                          |  21 +-
 kernel/bpf/bpf_lru_list.h                          |   7 +-
 kernel/bpf/cgroup.c                                |  15 +
 kernel/bpf/helpers.c                               | 123 +++-
 kernel/bpf/syscall.c                               |   3 +-
 kernel/bpf/trampoline.c                            |  32 +-
 kernel/bpf/verifier.c                              | 787 ++++++++++++++++-----
 kernel/trace/bpf_trace.c                           |   4 +-
 net/core/filter.c                                  |   2 +
 net/xdp/xsk_buff_pool.c                            |   7 +-
 samples/bpf/tcp_basertt_kern.c                     |   2 +-
 scripts/pahole-flags.sh                            |   3 +
 tools/bpf/bpftool/feature.c                        |  24 +-
 tools/bpf/bpftool/link.c                           |  10 +-
 tools/bpf/bpftool/map.c                            |  12 +-
 tools/lib/bpf/bpf_helpers.h                        |  15 +-
 tools/lib/bpf/bpf_tracing.h                        |   3 +-
 tools/lib/bpf/btf_dump.c                           |  22 +-
 tools/testing/selftests/bpf/DENYLIST.aarch64       |  83 +--
 tools/testing/selftests/bpf/DENYLIST.s390x         |   1 +
 tools/testing/selftests/bpf/bpf_kfuncs.h           |   6 +
 .../testing/selftests/bpf/prog_tests/arg_parsing.c |  68 ++
 .../bpf/prog_tests/cgroup_getset_retval.c          |  20 +
 tools/testing/selftests/bpf/prog_tests/dynptr.c    |   8 +
 tools/testing/selftests/bpf/prog_tests/sockopt.c   |  96 ++-
 .../selftests/bpf/prog_tests/sockopt_inherit.c     |  59 +-
 .../selftests/bpf/prog_tests/sockopt_multi.c       | 108 +--
 .../selftests/bpf/prog_tests/sockopt_qos_to_cc.c   |   2 +
 .../selftests/bpf/prog_tests/task_under_cgroup.c   |  53 ++
 tools/testing/selftests/bpf/prog_tests/verifier.c  |   2 +
 tools/testing/selftests/bpf/progs/bpf_misc.h       |   4 +
 .../bpf/progs/cgroup_getset_retval_getsockopt.c    |  13 +
 .../bpf/progs/cgroup_getset_retval_setsockopt.c    |  17 +
 tools/testing/selftests/bpf/progs/dynptr_fail.c    | 307 ++++++++
 tools/testing/selftests/bpf/progs/dynptr_success.c | 336 +++++++++
 tools/testing/selftests/bpf/progs/iters.c          |  26 +-
 .../testing/selftests/bpf/progs/sockopt_inherit.c  |  18 +-
 tools/testing/selftests/bpf/progs/sockopt_multi.c  |  26 +-
 .../selftests/bpf/progs/sockopt_qos_to_cc.c        |  10 +-
 tools/testing/selftests/bpf/progs/sockopt_sk.c     |  25 +-
 .../selftests/bpf/progs/test_global_func1.c        |   2 +
 .../selftests/bpf/progs/test_task_under_cgroup.c   |  51 ++
 .../bpf/progs/verifier_subprog_precision.c         | 536 ++++++++++++++
 .../testing/selftests/bpf/progs/xdp_hw_metadata.c  |   4 +-
 tools/testing/selftests/bpf/test_progs.c           |  37 +-
 tools/testing/selftests/bpf/testing_helpers.c      | 207 ++++--
 tools/testing/selftests/bpf/testing_helpers.h      |   3 +
 tools/testing/selftests/bpf/verifier/precise.c     | 143 ++--
 tools/testing/selftests/bpf/veristat.c             |   9 +
 tools/testing/selftests/bpf/xdp_hw_metadata.c      |  47 +-
 tools/testing/selftests/bpf/xdp_metadata.h         |   1 +
 63 files changed, 3293 insertions(+), 690 deletions(-)
 create mode 100644 Documentation/bpf/map_lru_hash_update.dot
 create mode 100644 tools/testing/selftests/bpf/prog_tests/task_under_cgroup.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_task_under_cgroup.c
 create mode 100644 tools/testing/selftests/bpf/progs/verifier_subprog_precision.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