pull-request: bpf-next 2022-03-04

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

 



Hi David, hi Jakub,

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

We've added 32 non-merge commits during the last 14 day(s) which contain
a total of 59 files changed, 1038 insertions(+), 473 deletions(-).

The main changes are:

1) Optimize BPF stackmap's build_id retrieval by caching last valid build_id,
   as consecutive stack frames are likely to be in the same VMA and therefore
   have the same build id, from Hao Luo.

2) Several improvements to arm64 BPF JIT, that is, support for JITing
   the atomic[64]_fetch_add, atomic[64]_[fetch_]{and,or,xor} and lastly
   atomic[64]_{xchg|cmpxchg}. Also fix the BTF line info dump for JITed
   programs, from Hou Tao.

3) Optimize generic BPF map batch deletion by only enforcing synchronize_rcu()
   barrier once upon return to user space, from Eric Dumazet.

4) For kernel build parse DWARF and generate BTF through pahole with enabled
   multithreading, from Kui-Feng Lee.

5) BPF verifier usability improvements by making log info more concise and
   replacing inv with scalar type name, from Mykola Lysenko.

6) Two follow-up fixes for BPF prog JIT pack allocator, from Song Liu.

7) Add a new Kconfig to allow for loading kernel modules with non-matching
   BTF type info; their BTF info is then removed on load, from Connor O'Brien.

8) Remove reallocarray() usage from bpftool and switch to libbpf_reallocarray()
   in order to fix compilation errors for older glibc, from Mauricio Vásquez.

9) Fix libbpf to error on conflicting name in BTF when type declaration
   appears before the definition, from Xu Kuohai.

10) Fix issue in BPF preload for in-kernel light skeleton where loaded BPF
    program fds prevent init process from setting up fd 0-2, from Yucong Sun.

11) Fix libbpf reuse of pinned perf RB map when max_entries is auto-determined
    by libbpf, from Stijn Tintel.

12) Several cleanups for libbpf and a fix to enforce perf RB map #pages to be
    non-zero, from Yuntao Wang.

Please consider pulling these changes from:

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

Thanks a lot!

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

Andrii Nakryiko, Hengqi Chen, kernel test robot, Kui-Feng Lee, Kumar 
Kartikeya Dwivedi, Marc Zyngier, Namhyung Kim, Pasha Tatashin, Quentin 
Monnet, Shung-Hsi Yu, Song Liu, Stanislav Fomichev, Yonghong Song, 
Yucong Sun

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

The following changes since commit 086d49058cd8471046ae9927524708820f5fd1c7:

  ipv6: annotate some data-races around sk->sk_prot (2022-02-18 11:53:28 +0000)

are available in the Git repository at:

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

for you to fetch changes up to 7df5072cc05fd1aab5823bbc465d033cd292fca8:

  bpf: Small BPF verifier log improvements (2022-03-03 16:54:10 +0100)

----------------------------------------------------------------
Alexei Starovoitov (1):
      Merge branch 'fixes for bpf_prog_pack'

Andrii Nakryiko (1):
      selftests/bpf: Fix btfgen tests

Connor O'Brien (1):
      bpf: Add config to allow loading modules with BTF mismatches

Daniel Borkmann (1):
      Merge branch 'for-next/insn' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Delyan Kratunov (1):
      bpftool: Bpf skeletons assert type sizes

Eric Dumazet (1):
      bpf: Call maybe_wait_bpf_programs() only once from generic_map_delete_batch()

Hao Luo (1):
      bpf: Cache the last valid build_id

Hou Tao (6):
      arm64: move AARCH64_BREAK_FAULT into insn-def.h
      arm64: insn: add encoders for atomic operations
      bpf, arm64: Call build_prologue() first in first JIT pass
      bpf, arm64: Feed byte-offset into bpf line info
      bpf, arm64: Support more atomic operations
      bpf, selftests: Use raw_tp program for atomic test

James Morse (1):
      arm64: insn: Generate 64 bit mask immediates correctly

Kui-Feng Lee (1):
      scripts/pahole-flags.sh: Parse DWARF and generate BTF with multithreading.

Kumar Kartikeya Dwivedi (1):
      selftests/bpf: Add test for reg2btf_ids out of bounds access

Mauricio Vásquez (1):
      bpftool: Remove usage of reallocarray()

Mykola Lysenko (1):
      bpf: Small BPF verifier log improvements

Song Liu (2):
      x86: Disable HAVE_ARCH_HUGE_VMALLOC on 32-bit x86
      bpf, x86: Set header->size properly before freeing it

Souptick Joarder (HPE) (1):
      bpf: Initialize ret to 0 inside btf_populate_kfunc_set()

Stanislav Fomichev (1):
      bpf, test_run: Fix overflow in XDP frags bpf_test_finish

Stijn Tintel (1):
      libbpf: Fix BPF_MAP_TYPE_PERF_EVENT_ARRAY auto-pinning

Tiezhu Yang (1):
      bpf: Add some description about BPF_JIT_ALWAYS_ON in Kconfig

Tom Rix (1):
      bpf: Cleanup comments

Wan Jiabing (1):
      bpf, docs: Add a missing colon in verifier.rst

Xu Kuohai (2):
      libbpf: Skip forward declaration when counting duplicated type names
      selftests/bpf: Update btf_dump case for conflicting names

Yonghong Song (1):
      selftests/bpf: Fix a clang deprecated-declarations compilation error

Yucong Sun (1):
      bpf: Fix issue with bpf preload module taking over stdout/stdin of kernel.

Yuntao Wang (4):
      libbpf: Remove redundant check in btf_fixup_datasec()
      libbpf: Simplify the find_elf_sec_sz() function
      bpftool: Remove redundant slashes
      libbpf: Add a check to ensure that page_cnt is non-zero

 Documentation/bpf/verifier.rst                     |   2 +-
 arch/arm64/include/asm/debug-monitors.h            |  12 -
 arch/arm64/include/asm/insn-def.h                  |  14 ++
 arch/arm64/include/asm/insn.h                      |  80 ++++++-
 arch/arm64/lib/insn.c                              | 187 ++++++++++++++--
 arch/arm64/net/bpf_jit.h                           |  44 +++-
 arch/arm64/net/bpf_jit_comp.c                      | 241 +++++++++++++++++----
 arch/x86/Kconfig                                   |   2 +-
 arch/x86/net/bpf_jit_comp.c                        |   5 +-
 kernel/bpf/Kconfig                                 |   4 +
 kernel/bpf/bpf_local_storage.c                     |   2 +-
 kernel/bpf/btf.c                                   |  11 +-
 kernel/bpf/cgroup.c                                |   8 +-
 kernel/bpf/core.c                                  |   9 +-
 kernel/bpf/hashtab.c                               |   2 +-
 kernel/bpf/helpers.c                               |   2 +-
 kernel/bpf/local_storage.c                         |   2 +-
 kernel/bpf/preload/bpf_preload_kern.c              |   7 +
 kernel/bpf/reuseport_array.c                       |   2 +-
 kernel/bpf/stackmap.c                              |  12 +-
 kernel/bpf/syscall.c                               |   5 +-
 kernel/bpf/trampoline.c                            |   2 +-
 kernel/bpf/verifier.c                              |  64 +++---
 lib/Kconfig.debug                                  |  10 +
 net/bpf/test_run.c                                 |   5 +
 scripts/pahole-flags.sh                            |   3 +
 tools/bpf/bpftool/Makefile                         |  20 +-
 tools/bpf/bpftool/gen.c                            | 127 +++++++++--
 tools/bpf/bpftool/main.h                           |   2 +-
 tools/bpf/bpftool/prog.c                           |   7 +-
 tools/bpf/bpftool/xlated_dumper.c                  |   5 +-
 tools/lib/bpf/btf_dump.c                           |   5 +
 tools/lib/bpf/libbpf.c                             |  56 ++---
 tools/testing/selftests/bpf/.gitignore             |   1 +
 tools/testing/selftests/bpf/Makefile               |   3 +-
 tools/testing/selftests/bpf/prog_tests/align.c     | 218 +++++++++----------
 tools/testing/selftests/bpf/prog_tests/atomics.c   |  91 ++------
 tools/testing/selftests/bpf/prog_tests/btf_dump.c  |  54 +++--
 .../testing/selftests/bpf/prog_tests/core_reloc.c  |  17 +-
 tools/testing/selftests/bpf/prog_tests/log_buf.c   |   4 +-
 tools/testing/selftests/bpf/progs/atomics.c        |  28 +--
 tools/testing/selftests/bpf/test_cpp.cpp           |   3 +
 .../selftests/bpf/verifier/atomic_invalid.c        |   6 +-
 tools/testing/selftests/bpf/verifier/bounds.c      |   4 +-
 tools/testing/selftests/bpf/verifier/calls.c       |  25 ++-
 tools/testing/selftests/bpf/verifier/ctx.c         |   4 +-
 .../selftests/bpf/verifier/direct_packet_access.c  |   2 +-
 .../selftests/bpf/verifier/helper_access_var_len.c |   6 +-
 tools/testing/selftests/bpf/verifier/jmp32.c       |  16 +-
 tools/testing/selftests/bpf/verifier/precise.c     |   4 +-
 tools/testing/selftests/bpf/verifier/raw_stack.c   |   4 +-
 .../testing/selftests/bpf/verifier/ref_tracking.c  |   6 +-
 .../selftests/bpf/verifier/search_pruning.c        |   2 +-
 tools/testing/selftests/bpf/verifier/sock.c        |   2 +-
 tools/testing/selftests/bpf/verifier/spill_fill.c  |  38 ++--
 tools/testing/selftests/bpf/verifier/unpriv.c      |   4 +-
 .../selftests/bpf/verifier/value_illegal_alu.c     |   4 +-
 .../selftests/bpf/verifier/value_ptr_arith.c       |   4 +-
 tools/testing/selftests/bpf/verifier/var_off.c     |   2 +-
 59 files changed, 1038 insertions(+), 473 deletions(-)



[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