mbox series

pull-request: bpf-next 2020-10-12

Message ID 20201012205522.27023-1-alexei.starovoitov@gmail.com (mailing list archive)
State Not Applicable
Headers show
Series pull-request: bpf-next 2020-10-12 | expand

Pull-request

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

Message

Alexei Starovoitov Oct. 12, 2020, 8:55 p.m. UTC
Hi,

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

We've added 62 non-merge commits during the last 10 day(s) which contain
a total of 73 files changed, 4339 insertions(+), 772 deletions(-).

The main changes are:

1) The BPF verifier improvements to track register allocation pattern, from Alexei and Yonghong.

2) libbpf relocation support for different size load/store, from Andrii.

3) bpf_redirect_peer() helper and support for inner map array with different max_entries, from Daniel.

4) BPF support for per-cpu variables, form Hao.

5) sockmap improvements, from John.

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:

Alexei Starovoitov, Andrii Nakryiko, Christoph Hellwig, David Ahern, 
John Fastabend, Martin KaFai Lau, Petar Penkov, Samanta Navarro, 
Stanislav Fomichev, Yonghong Song

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

The following changes since commit 360f89874635b08057757376b8cc4faa221862e2:

  lib8390: Use netif_msg_init to initialize msg_enable bits (2020-10-01 19:08:46 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 376dcfe3a4e5a5475a84e6b5f926066a8614f887:

  Merge branch 'bpf, sockmap: allow verdict only sk_skb progs' (2020-10-11 18:09:45 -0700)

----------------------------------------------------------------
Alexei Starovoitov (13):
      Merge branch 'Do not limit cb_flags when creating child sk'
      Merge branch 'bpf: BTF support for ksyms'
      Merge branch 'Add skb_adjust_room() for SK_SKB'
      Merge branch 'Fix pining maps after reuse map fd'
      Merge branch 'libbpf: auto-resize relocatable LOAD/STORE instructions'
      bpf: Propagate scalar ranges through register assignments.
      selftests/bpf: Add profiler test
      selftests/bpf: Asm tests for the verifier regalloc tracking.
      Merge branch 'Follow-up BPF helper improvements'
      Merge branch 'samples: bpf: Refactor XDP programs with libbpf'
      bpf: Migrate from patchwork.ozlabs.org to patchwork.kernel.org.
      Merge branch 'sockmap/sk_skb program memory acct fixes'
      Merge branch 'bpf, sockmap: allow verdict only sk_skb progs'

Andrii Nakryiko (5):
      bpf, doc: Update Andrii's email in MAINTAINERS
      libbpf: Skip CO-RE relocations for not loaded BPF programs
      libbpf: Support safe subset of load/store instruction resizing with CO-RE
      libbpf: Allow specifying both ELF and raw BTF for CO-RE BTF override
      selftests/bpf: Validate libbpf's auto-sizing of LD/ST/STX instructions

Björn Töpel (1):
      xsk: Remove internal DMA headers

Ciara Loftus (3):
      samples: bpf: Split xdpsock stats into new struct
      samples: bpf: Count syscalls in xdpsock
      samples: bpf: Driver interrupt statistics in xdpsock

Daniel Borkmann (7):
      Merge branch 'bpf-llvm-reg-alloc-patterns'
      bpf: Improve bpf_redirect_neigh helper description
      bpf: Add redirect_peer helper
      bpf: Allow for map-in-map with dynamic inner array map entries
      bpf, selftests: Add test for different array inner map size
      bpf, selftests: Make redirect_neigh test more extensible
      bpf, selftests: Add redirect_peer selftest

Daniel T. Lee (3):
      samples: bpf: Refactor xdp_monitor with libbpf
      samples: bpf: Replace attach_tracepoint() to attach() in xdp_redirect_cpu
      samples: bpf: Refactor XDP kern program maps with BTF-defined map

Gustavo A. R. Silva (1):
      bpf, verifier: Use fallthrough pseudo-keyword

Hangbin Liu (3):
      libbpf: Close map fd if init map slots failed
      libbpf: Check if pin_path was set even map fd exist
      selftest/bpf: Test pinning map with reused map fd

Hao Luo (7):
      bpf: Introduce pseudo_btf_id
      bpf/libbpf: BTF support for typed ksyms
      selftests/bpf: Ksyms_btf to test typed ksyms
      bpf: Introduce bpf_per_cpu_ptr()
      bpf: Introducte bpf_this_cpu_ptr()
      bpf/selftests: Test for bpf_per_cpu_ptr() and bpf_this_cpu_ptr()
      selftests/bpf: Fix test_verifier after introducing resolve_pseudo_ldimm64

Jakub Wilk (1):
      bpf: Fix typo in uapi/linux/bpf.h

John Fastabend (12):
      bpf, sockmap: Add skb_adjust_room to pop bytes off ingress payload
      bpf, sockmap: Update selftests to use skb_adjust_room
      bpf, sockmap: Skb verdict SK_PASS to self already checked rmem limits
      bpf, sockmap: On receive programs try to fast track SK_PASS ingress
      bpf, sockmap: Remove skb_set_owner_w wmem will be taken later from sendpage
      bpf, sockmap: Remove dropped data on errors in redirect case
      bpf, sockmap: Remove skb_orphan and let normal skb_kfree do cleanup
      bpf, sockmap: Add memory accounting so skbs on ingress lists are visible
      bpf, sockmap: Check skb_verdict and skb_parser programs explicitly
      bpf, sockmap: Allow skipping sk_skb parser program
      bpf, selftests: Add option to test_sockmap to omit adding parser program
      bpf, selftests: Add three new sockmap tests for verdict only programs

Luigi Rizzo (1):
      bpf, libbpf: Use valid btf in bpf_program__set_attach_target

Magnus Karlsson (2):
      libbpf: Fix compatibility problem in xsk_socket__create
      xsk: Introduce padding between ring pointers

Martin KaFai Lau (2):
      bpf: tcp: Do not limit cb_flags when creating child sk from listen sk
      bpf: selftest: Ensure the child sk inherited all bpf_sock_ops_cb_flags

Nikita V. Shirokov (1):
      bpf: Add tcp_notsent_lowat bpf setsockopt

Randy Dunlap (1):
      kernel/bpf/verifier: Fix build when NET is not enabled

Song Liu (1):
      bpf: Use raw_spin_trylock() for pcpu_freelist_push/pop in NMI

Stanislav Fomichev (3):
      selftests/bpf: Initialize duration in xdp_noinline.c
      selftests/bpf: Properly initialize linfo in sockmap_basic
      bpf: Deref map in BPF_PROG_BIND_MAP when it's already used

Toke Høiland-Jørgensen (1):
      bpf: Always return target ifindex in bpf_fib_lookup

Yonghong Song (4):
      samples/bpf: Change Makefile to cope with latest llvm
      samples/bpf: Fix a compilation error with fallthrough marking
      bpf: Fix build failure for kernel/trace/bpf_trace.c with CONFIG_NET=n
      bpf: Track spill/fill of bounded scalars.

 Documentation/bpf/bpf_devel_QA.rst                 |   4 +-
 MAINTAINERS                                        |   2 +-
 drivers/net/veth.c                                 |   9 +
 include/linux/bpf.h                                |   8 +-
 include/linux/bpf_verifier.h                       |   7 +
 include/linux/btf.h                                |  26 +
 include/linux/netdevice.h                          |   4 +
 include/linux/skmsg.h                              |   2 +
 include/net/tcp.h                                  |  33 -
 include/uapi/linux/bpf.h                           | 101 ++-
 kernel/bpf/arraymap.c                              |  17 +-
 kernel/bpf/btf.c                                   |  25 -
 kernel/bpf/hashtab.c                               |   6 +-
 kernel/bpf/helpers.c                               |  32 +
 kernel/bpf/percpu_freelist.c                       | 101 ++-
 kernel/bpf/percpu_freelist.h                       |   1 +
 kernel/bpf/syscall.c                               |   4 +-
 kernel/bpf/verifier.c                              | 270 +++++-
 kernel/trace/bpf_trace.c                           |   6 +
 net/core/dev.c                                     |  15 +-
 net/core/filter.c                                  | 107 ++-
 net/core/skmsg.c                                   | 161 +++-
 net/core/sock_map.c                                |  37 +-
 net/ipv4/tcp_minisocks.c                           |   1 -
 net/xdp/xsk_buff_pool.c                            |   3 -
 net/xdp/xsk_queue.h                                |   4 +
 net/xdp/xskmap.c                                   |   2 +-
 samples/bpf/Makefile                               |  15 +-
 samples/bpf/hbm.c                                  |   3 +-
 samples/bpf/xdp_monitor_kern.c                     |  60 +-
 samples/bpf/xdp_monitor_user.c                     | 159 +++-
 samples/bpf/xdp_redirect_cpu_user.c                | 153 ++--
 samples/bpf/xdp_sample_pkts_kern.c                 |  14 +-
 samples/bpf/xdp_sample_pkts_user.c                 |   1 -
 samples/bpf/xdpsock_user.c                         | 354 ++++++--
 tools/include/uapi/linux/bpf.h                     | 101 ++-
 tools/lib/bpf/libbpf.c                             | 348 ++++++--
 tools/lib/bpf/xsk.c                                |   7 +-
 tools/testing/selftests/bpf/README.rst             |  38 +
 tools/testing/selftests/bpf/prog_tests/align.c     |  16 +-
 .../selftests/bpf/prog_tests/btf_map_in_map.c      |  39 +-
 .../selftests/bpf/prog_tests/core_autosize.c       | 225 +++++
 tools/testing/selftests/bpf/prog_tests/ksyms.c     |  38 +-
 tools/testing/selftests/bpf/prog_tests/ksyms_btf.c |  88 ++
 tools/testing/selftests/bpf/prog_tests/pinning.c   |  49 +-
 .../selftests/bpf/prog_tests/sockmap_basic.c       |   2 +-
 .../selftests/bpf/prog_tests/tcp_hdr_options.c     |  12 +
 .../selftests/bpf/prog_tests/test_profiler.c       |  72 ++
 .../selftests/bpf/prog_tests/xdp_noinline.c        |   2 +-
 tools/testing/selftests/bpf/progs/connect4_prog.c  |  19 +
 tools/testing/selftests/bpf/progs/profiler.h       | 177 ++++
 tools/testing/selftests/bpf/progs/profiler.inc.h   | 969 +++++++++++++++++++++
 tools/testing/selftests/bpf/progs/profiler1.c      |   6 +
 tools/testing/selftests/bpf/progs/profiler2.c      |   6 +
 tools/testing/selftests/bpf/progs/profiler3.c      |   6 +
 .../selftests/bpf/progs/test_btf_map_in_map.c      |  43 +
 .../selftests/bpf/progs/test_core_autosize.c       | 172 ++++
 tools/testing/selftests/bpf/progs/test_ksyms_btf.c |  55 ++
 .../bpf/progs/test_misc_tcp_hdr_options.c          |   4 +-
 .../selftests/bpf/progs/test_sockmap_kern.h        |  34 +-
 tools/testing/selftests/bpf/progs/test_tc_neigh.c  |  40 +-
 tools/testing/selftests/bpf/progs/test_tc_peer.c   |  45 +
 .../selftests/bpf/progs/test_tcp_hdr_options.c     |   7 +-
 tools/testing/selftests/bpf/test_sockmap.c         |  81 +-
 tools/testing/selftests/bpf/test_tc_neigh.sh       | 168 ----
 tools/testing/selftests/bpf/test_tc_redirect.sh    | 204 +++++
 tools/testing/selftests/bpf/test_tcp_hdr_options.h |   5 +-
 tools/testing/selftests/bpf/trace_helpers.c        |  27 +
 tools/testing/selftests/bpf/trace_helpers.h        |   4 +
 tools/testing/selftests/bpf/verifier/basic.c       |   2 +-
 .../selftests/bpf/verifier/direct_packet_access.c  |   2 +-
 tools/testing/selftests/bpf/verifier/ld_imm64.c    |   8 -
 tools/testing/selftests/bpf/verifier/regalloc.c    | 243 ++++++
 73 files changed, 4339 insertions(+), 772 deletions(-)
 create mode 100644 tools/testing/selftests/bpf/prog_tests/core_autosize.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/ksyms_btf.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/test_profiler.c
 create mode 100644 tools/testing/selftests/bpf/progs/profiler.h
 create mode 100644 tools/testing/selftests/bpf/progs/profiler.inc.h
 create mode 100644 tools/testing/selftests/bpf/progs/profiler1.c
 create mode 100644 tools/testing/selftests/bpf/progs/profiler2.c
 create mode 100644 tools/testing/selftests/bpf/progs/profiler3.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_core_autosize.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_ksyms_btf.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_tc_peer.c
 delete mode 100755 tools/testing/selftests/bpf/test_tc_neigh.sh
 create mode 100755 tools/testing/selftests/bpf/test_tc_redirect.sh
 create mode 100644 tools/testing/selftests/bpf/verifier/regalloc.c

Comments

Jakub Kicinski Oct. 13, 2020, 12:50 a.m. UTC | #1
On Mon, 12 Oct 2020 13:55:22 -0700 Alexei Starovoitov wrote:
> The following pull-request contains BPF updates for your *net-next* tree.
> 
> We've added 62 non-merge commits during the last 10 day(s) which contain
> a total of 73 files changed, 4339 insertions(+), 772 deletions(-).
> 
> The main changes are:
> 
> 1) The BPF verifier improvements to track register allocation pattern, from Alexei and Yonghong.
> 
> 2) libbpf relocation support for different size load/store, from Andrii.
> 
> 3) bpf_redirect_peer() helper and support for inner map array with different max_entries, from Daniel.
> 
> 4) BPF support for per-cpu variables, form Hao.
> 
> 5) sockmap improvements, from John.

Pulled, thanks!