mbox series

pull-request: bpf-next 2023-07-19

Message ID 20230719175424.75717-1-alexei.starovoitov@gmail.com (mailing list archive)
State Accepted
Commit e93165d5e75d025280763ff01eece98575b32901
Headers show
Series pull-request: bpf-next 2023-07-19 | expand

Pull-request

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

Checks

Context Check Description
netdev/tree_selection success Pull request for net-next, async
netdev/build_32bit success Errors and warnings before: 6497 this patch: 6497
netdev/build_clang success Errors and warnings before: 3335 this patch: 3335
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 6727 this patch: 6727

Message

Alexei Starovoitov July 19, 2023, 5:54 p.m. UTC
Hi David, hi Jakub, hi Paolo, hi Eric,

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

We've added 45 non-merge commits during the last 3 day(s) which contain
a total of 71 files changed, 7808 insertions(+), 592 deletions(-).

The main changes are:

1) multi-buffer support in AF_XDP, from Maciej Fijalkowski, Magnus Karlsson, Tirthendu Sarkar.

2) BPF link support for tc BPF programs, from Daniel Borkmann.

3) Enable bpf_map_sum_elem_count kfunc for all program types, from Anton Protopopov.

4) Add 'owner' field to bpf_rb_node to fix races in shared ownership, Dave Marchevsky.

5) Prevent potential skb_header_pointer() misuse, from Alexei Starovoitov.

There should be no merge conflicts.

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:

Andrii Nakryiko, Dan Carpenter, Jakub Kicinski, Quentin Monnet

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

The following changes since commit 60cc1f7d0605598b47ee3c0c2b4b6fbd4da50a06:

  Merge branch 'phy-at803x-support' (2023-07-17 10:15:14 +0100)

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 6f5a630d7c57cd79b1f526a95e757311e32d41e5:

  bpf, net: Introduce skb_pointer_if_linear(). (2023-07-19 10:27:33 -0700)

----------------------------------------------------------------
for-netdev

----------------------------------------------------------------
Alan Maguire (1):
      bpf: sync tools/ uapi header with

Alexei Starovoitov (5):
      Merge branch 'bpf-refcount-followups-2-owner-field'
      Merge branch 'allow-bpf_map_sum_elem_count-for-all-program-types'
      Merge branch 'xsk-multi-buffer-support'
      Merge branch 'bpf-link-support-for-tc-bpf-programs'
      bpf, net: Introduce skb_pointer_if_linear().

Anh Tuan Phan (1):
      samples/bpf: README: Update build dependencies required

Anton Protopopov (4):
      bpf: consider types listed in reg2btf_ids as trusted
      bpf: consider CONST_PTR_TO_MAP as trusted pointer to struct bpf_map
      bpf: make an argument const in the bpf_map_sum_elem_count kfunc
      bpf: allow any program to use the bpf_map_sum_elem_count kfunc

Daniel Borkmann (8):
      bpf: Add generic attach/detach/query API for multi-progs
      bpf: Add fd-based tcx multi-prog infra with link support
      libbpf: Add opts-based attach/detach/query API for tcx
      libbpf: Add link-based API for tcx
      libbpf: Add helper macro to clear opts structs
      bpftool: Extend net dump with tcx progs
      selftests/bpf: Add mprog API tests for BPF tcx opts
      selftests/bpf: Add mprog API tests for BPF tcx links

Dave Marchevsky (4):
      bpf: Introduce internal definitions for UAPI-opaque bpf_{rb,list}_node
      bpf: Add 'owner' field to bpf_{list,rb}_node
      selftests/bpf: Add rbtree test exercising race which 'owner' field prevents
      selftests/bpf: Disable newly-added 'owner' field test until refcount re-enabled

Geliang Tang (1):
      bpf: Drop useless btf_vmlinux in bpf_tcp_ca

Maciej Fijalkowski (8):
      xsk: prepare both copy and zero-copy modes to co-exist
      xsk: allow core/drivers to test EOP bit
      xsk: add new netlink attribute dedicated for ZC max frags
      xsk: support mbuf on ZC RX
      ice: xsk: add RX multi-buffer support
      xsk: support ZC Tx multi-buffer in batch API
      ice: xsk: Tx multi-buffer support
      selftests/xsk: reset NIC settings to default after running test suite

Magnus Karlsson (7):
      xsk: add multi-buffer documentation
      selftests/xsk: transmit and receive multi-buffer packets
      selftests/xsk: add basic multi-buffer test
      selftests/xsk: add unaligned mode test for multi-buffer
      selftests/xsk: add invalid descriptor test for multi-buffer
      selftests/xsk: add metadata copy test for multi-buff
      selftests/xsk: add test for too many frags

Menglong Dong (1):
      bpf, x86: initialize the variable "first_off" in save_args()

Tirthendu Sarkar (9):
      xsk: prepare 'options' in xdp_desc for multi-buffer use
      xsk: introduce XSK_USE_SG bind flag for xsk socket
      xsk: move xdp_buff's data length check to xsk_rcv_check
      xsk: add support for AF_XDP multi-buffer on Rx path
      xsk: introduce wrappers and helpers for supporting multi-buffer in Tx path
      xsk: add support for AF_XDP multi-buffer on Tx path
      xsk: discard zero length descriptors in Tx path
      i40e: xsk: add RX multi-buffer support
      i40e: xsk: add TX multi-buffer support

 Documentation/netlink/specs/netdev.yaml            |    6 +
 Documentation/networking/af_xdp.rst                |  211 +-
 MAINTAINERS                                        |    5 +-
 arch/x86/net/bpf_jit_comp.c                        |    2 +-
 drivers/net/ethernet/intel/i40e/i40e_main.c        |    6 +-
 drivers/net/ethernet/intel/i40e/i40e_txrx.c        |    4 +-
 drivers/net/ethernet/intel/i40e/i40e_txrx.h        |    2 +
 drivers/net/ethernet/intel/i40e/i40e_xsk.c         |  101 +-
 drivers/net/ethernet/intel/ice/ice_base.c          |    9 +-
 drivers/net/ethernet/intel/ice/ice_main.c          |    1 +
 drivers/net/ethernet/intel/ice/ice_xsk.c           |  221 +-
 include/linux/bpf.h                                |   12 +
 include/linux/bpf_mprog.h                          |  327 +++
 include/linux/btf_ids.h                            |    1 +
 include/linux/netdevice.h                          |   16 +-
 include/linux/skbuff.h                             |   14 +-
 include/net/sch_generic.h                          |    2 +-
 include/net/tcx.h                                  |  206 ++
 include/net/xdp_sock.h                             |    7 +
 include/net/xdp_sock_drv.h                         |   54 +
 include/net/xsk_buff_pool.h                        |    7 +
 include/uapi/linux/bpf.h                           |   72 +-
 include/uapi/linux/if_xdp.h                        |   13 +
 include/uapi/linux/netdev.h                        |    1 +
 kernel/bpf/Kconfig                                 |    1 +
 kernel/bpf/Makefile                                |    3 +-
 kernel/bpf/helpers.c                               |   55 +-
 kernel/bpf/map_iter.c                              |    7 +-
 kernel/bpf/mprog.c                                 |  445 ++++
 kernel/bpf/syscall.c                               |   82 +-
 kernel/bpf/tcx.c                                   |  348 +++
 kernel/bpf/verifier.c                              |   22 +-
 net/Kconfig                                        |    5 +
 net/core/dev.c                                     |  266 ++-
 net/core/filter.c                                  |   11 +-
 net/core/netdev-genl.c                             |    8 +
 net/ipv4/bpf_tcp_ca.c                              |    2 -
 net/sched/Kconfig                                  |    4 +-
 net/sched/sch_ingress.c                            |   61 +-
 net/xdp/xsk.c                                      |  365 +++-
 net/xdp/xsk_buff_pool.c                            |    7 +
 net/xdp/xsk_queue.h                                |   95 +-
 samples/bpf/README.rst                             |   14 +-
 tools/bpf/bpftool/Documentation/bpftool-net.rst    |   26 +-
 tools/bpf/bpftool/net.c                            |   98 +-
 tools/bpf/bpftool/netlink_dumper.h                 |    8 +
 tools/include/uapi/linux/bpf.h                     |   72 +-
 tools/include/uapi/linux/if_xdp.h                  |    9 +
 tools/include/uapi/linux/netdev.h                  |    1 +
 tools/lib/bpf/bpf.c                                |  127 +-
 tools/lib/bpf/bpf.h                                |   97 +-
 tools/lib/bpf/libbpf.c                             |   70 +-
 tools/lib/bpf/libbpf.h                             |   18 +-
 tools/lib/bpf/libbpf.map                           |    2 +
 tools/lib/bpf/libbpf_common.h                      |   16 +
 tools/lib/bpf/netlink.c                            |    5 +
 .../testing/selftests/bpf/prog_tests/linked_list.c |   78 +-
 .../selftests/bpf/prog_tests/refcounted_kptr.c     |    4 +
 .../testing/selftests/bpf/prog_tests/tc_helpers.h  |   72 +
 tools/testing/selftests/bpf/prog_tests/tc_links.c  | 1583 ++++++++++++++
 tools/testing/selftests/bpf/prog_tests/tc_opts.c   | 2239 ++++++++++++++++++++
 tools/testing/selftests/bpf/progs/map_ptr_kern.c   |    5 +
 .../testing/selftests/bpf/progs/refcounted_kptr.c  |   94 +-
 tools/testing/selftests/bpf/progs/test_tc_link.c   |   40 +
 tools/testing/selftests/bpf/progs/xsk_xdp_progs.c  |    6 +-
 tools/testing/selftests/bpf/test_xsk.sh            |    5 +
 tools/testing/selftests/bpf/xsk.c                  |  136 +-
 tools/testing/selftests/bpf/xsk.h                  |    2 +
 tools/testing/selftests/bpf/xsk_prereqs.sh         |    7 +
 tools/testing/selftests/bpf/xskxceiver.c           |  458 +++-
 tools/testing/selftests/bpf/xskxceiver.h           |   21 +-
 71 files changed, 7808 insertions(+), 592 deletions(-)
 create mode 100644 include/linux/bpf_mprog.h
 create mode 100644 include/net/tcx.h
 create mode 100644 kernel/bpf/mprog.c
 create mode 100644 kernel/bpf/tcx.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_helpers.h
 create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_links.c
 create mode 100644 tools/testing/selftests/bpf/prog_tests/tc_opts.c
 create mode 100644 tools/testing/selftests/bpf/progs/test_tc_link.c

Comments

patchwork-bot+netdevbpf@kernel.org July 19, 2023, 11:50 p.m. UTC | #1
Hello:

This pull request was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 19 Jul 2023 10:54:24 -0700 you wrote:
> Hi David, hi Jakub, hi Paolo, hi Eric,
> 
> The following pull-request contains BPF updates for your *net-next* tree.
> 
> We've added 45 non-merge commits during the last 3 day(s) which contain
> a total of 71 files changed, 7808 insertions(+), 592 deletions(-).
> 
> [...]

Here is the summary with links:
  - pull-request: bpf-next 2023-07-19
    https://git.kernel.org/netdev/net-next/c/e93165d5e75d

You are awesome, thank you!
Eric Dumazet July 20, 2023, 11:25 a.m. UTC | #2
On Thu, Jul 20, 2023 at 1:50 AM <patchwork-bot+netdevbpf@kernel.org> wrote:
>
> Hello:
>
> This pull request was applied to netdev/net-next.git (main)
> by Jakub Kicinski <kuba@kernel.org>:
>
> On Wed, 19 Jul 2023 10:54:24 -0700 you wrote:
> > Hi David, hi Jakub, hi Paolo, hi Eric,
> >
> > The following pull-request contains BPF updates for your *net-next* tree.
> >
> > We've added 45 non-merge commits during the last 3 day(s) which contain
> > a total of 71 files changed, 7808 insertions(+), 592 deletions(-).
> >
> > [...]
>
> Here is the summary with links:
>   - pull-request: bpf-next 2023-07-19
>     https://git.kernel.org/netdev/net-next/c/e93165d5e75d
>
> You are awesome, thank you!
> --
> Deet-doot-dot, I am a bot.
> https://korg.docs.kernel.org/patchwork/pwbot.html
>
>

"bpf: Add fd-based tcx multi-prog infra with link support" seems to
cause a bunch of syzbot reports.

I am waiting a bit for more entropy before releasing them to the public.
Eric Dumazet July 20, 2023, 2:53 p.m. UTC | #3
On Thu, Jul 20, 2023 at 1:25 PM Eric Dumazet <edumazet@google.com> wrote:
>
> On Thu, Jul 20, 2023 at 1:50 AM <patchwork-bot+netdevbpf@kernel.org> wrote:
> >
> > Hello:
> >
> > This pull request was applied to netdev/net-next.git (main)
> > by Jakub Kicinski <kuba@kernel.org>:
> >
> > On Wed, 19 Jul 2023 10:54:24 -0700 you wrote:
> > > Hi David, hi Jakub, hi Paolo, hi Eric,
> > >
> > > The following pull-request contains BPF updates for your *net-next* tree.
> > >
> > > We've added 45 non-merge commits during the last 3 day(s) which contain
> > > a total of 71 files changed, 7808 insertions(+), 592 deletions(-).
> > >
> > > [...]
> >
> > Here is the summary with links:
> >   - pull-request: bpf-next 2023-07-19
> >     https://git.kernel.org/netdev/net-next/c/e93165d5e75d
> >
> > You are awesome, thank you!
> > --
> > Deet-doot-dot, I am a bot.
> > https://korg.docs.kernel.org/patchwork/pwbot.html
> >
> >
>
> "bpf: Add fd-based tcx multi-prog infra with link support" seems to
> cause a bunch of syzbot reports.
>
> I am waiting a bit for more entropy before releasing them to the public.

OK, syzbot found one repro for one of the reports, time to release it
for investigations.
Alexei Starovoitov July 20, 2023, 3:02 p.m. UTC | #4
On Thu, Jul 20, 2023 at 7:53 AM Eric Dumazet <edumazet@google.com> wrote:
>
> On Thu, Jul 20, 2023 at 1:25 PM Eric Dumazet <edumazet@google.com> wrote:
> >
> > On Thu, Jul 20, 2023 at 1:50 AM <patchwork-bot+netdevbpf@kernel.org> wrote:
> > >
> > > Hello:
> > >
> > > This pull request was applied to netdev/net-next.git (main)
> > > by Jakub Kicinski <kuba@kernel.org>:
> > >
> > > On Wed, 19 Jul 2023 10:54:24 -0700 you wrote:
> > > > Hi David, hi Jakub, hi Paolo, hi Eric,
> > > >
> > > > The following pull-request contains BPF updates for your *net-next* tree.
> > > >
> > > > We've added 45 non-merge commits during the last 3 day(s) which contain
> > > > a total of 71 files changed, 7808 insertions(+), 592 deletions(-).
> > > >
> > > > [...]
> > >
> > > Here is the summary with links:
> > >   - pull-request: bpf-next 2023-07-19
> > >     https://git.kernel.org/netdev/net-next/c/e93165d5e75d
> > >
> > > You are awesome, thank you!
> > > --
> > > Deet-doot-dot, I am a bot.
> > > https://korg.docs.kernel.org/patchwork/pwbot.html
> > >
> > >
> >
> > "bpf: Add fd-based tcx multi-prog infra with link support" seems to
> > cause a bunch of syzbot reports.
> >
> > I am waiting a bit for more entropy before releasing them to the public.
>
> OK, syzbot found one repro for one of the reports, time to release it
> for investigations.

Thanks for the headsup.
That's an impressive speed for syzbot to track upstream so closely.
Does it do it for net-next only? Can it be taught to do the same for
bpf-next too?