mbox series

pull-request: bpf-next 2018-05-24

Message ID 20180525020351.3634582-1-ast@kernel.org
State Accepted, archived
Delegated to: David Miller
Headers show
Series pull-request: bpf-next 2018-05-24 | expand

Pull-request

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

Message

Alexei Starovoitov May 25, 2018, 2:03 a.m. UTC
Hi David,

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

The main changes are:

1) Björn Töpel cleans up AF_XDP (removes rebind, explicit cache alignment from uapi, etc).

2) David Ahern adds mtu checks to bpf_ipv{4,6}_fib_lookup() helpers.

3) Jesper Dangaard Brouer adds bulking support to ndo_xdp_xmit.

4) Jiong Wang adds support for indirect and arithmetic shifts to NFP

5) Martin KaFai Lau cleans up BTF uapi and makes the btf_header extensible.

6) Mathieu Xhonneux adds an End.BPF action to seg6local with BPF helpers allowing
   to edit/grow/shrink a SRH and apply on a packet generic SRv6 actions.

7) Sandipan Das adds support for bpf2bpf function calls in ppc64 JIT.

8) Yonghong Song adds BPF_TASK_FD_QUERY command for introspection of tracing events.

9) other misc fixes from Gustavo A. R. Silva, Sirio Balmelli, John Fastabend, and Magnus Karlsson

Please consider pulling these changes from:

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

Thanks a lot!

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

The following changes since commit b9f672af148bf7a08a6031743156faffd58dbc7e:

  Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next (2018-05-16 22:47:11 -0400)

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 10f678683e4026e43524b0492068a371d00fdeed:

  Merge branch 'xdp_xmit-bulking' (2018-05-24 18:36:16 -0700)

----------------------------------------------------------------
Alexei Starovoitov (2):
      Merge branch 'bpf-task-fd-query'
      Merge branch 'xdp_xmit-bulking'

Björn Töpel (11):
      xsk: clean up SPDX headers
      xsk: remove newline at end of file
      xsk: fixed some cases of unnecessary parentheses
      xsk: proper '=' alignment
      xsk: remove rebind support
      xsk: fill hole in struct sockaddr_xdp
      xsk: remove explicit ring structure from uapi
      samples/bpf: adapt xdpsock to the new uapi
      xsk: add missing write- and data-dependency barrier
      xsk: simplified umem setup
      xsk: convert atomic_t to refcount_t

Daniel Borkmann (8):
      Merge branch 'bpf-af-xdp-cleanups'
      Merge branch 'bpf-nfp-shift-insns'
      Merge branch 'bpf-sk-msg-fields'
      Merge branch 'bpf-af-xdp-cleanups'
      Merge branch 'bpf-fib-mtu-check'
      Merge branch 'btf-uapi-cleanups'
      Merge branch 'bpf-multi-prog-improvements'
      Merge branch 'bpf-ipv6-seg6-bpf-action'

David Ahern (3):
      net/ipv4: Add helper to return path MTU based on fib result
      net/ipv6: Add helper to return path MTU based on fib result
      bpf: Add mtu checking to FIB forwarding helper

Gustavo A. R. Silva (2):
      bpf: sockmap, fix uninitialized variable
      bpf: sockmap, fix double-free

Jesper Dangaard Brouer (8):
      bpf: devmap introduce dev_map_enqueue
      bpf: devmap prepare xdp frames for bulking
      xdp: add tracepoint for devmap like cpumap have
      samples/bpf: xdp_monitor use tracepoint xdp:xdp_devmap_xmit
      xdp: introduce xdp_return_frame_rx_napi
      xdp: change ndo_xdp_xmit API to support bulking
      xdp/trace: extend tracepoint in devmap with an err
      samples/bpf: xdp_monitor use err code from tracepoint xdp:xdp_devmap_xmit

Jiong Wang (3):
      nfp: bpf: support logic indirect shifts (BPF_[L|R]SH | BPF_X)
      nfp: bpf: support arithmetic right shift by constant (BPF_ARSH | BPF_K)
      nfp: bpf: support arithmetic indirect right shift (BPF_ARSH | BPF_X)

John Fastabend (2):
      bpf: allow sk_msg programs to read sock fields
      bpf: add sk_msg prog sk access tests to test_verifier

Magnus Karlsson (1):
      xsk: proper queue id check at bind

Martin KaFai Lau (8):
      bpf: Expose check_uarg_tail_zero()
      bpf: btf: Change how section is supported in btf_header
      bpf: btf: Check array->index_type
      bpf: btf: Remove unused bits from uapi/linux/btf.h
      bpf: btf: Rename btf_key_id and btf_value_id in bpf_map_info
      bpf: btf: Sync bpf.h and btf.h to tools
      bpf: btf: Add tests for the btf uapi changes
      bpf: btf: Avoid variable length array

Mathieu Xhonneux (6):
      ipv6: sr: make seg6.h includable without IPv6
      ipv6: sr: export function lookup_nexthop
      bpf: Add IPv6 Segment Routing helpers
      bpf: Split lwt inout verifier structures
      ipv6: sr: Add seg6local action End.BPF
      selftests/bpf: test for seg6local End.BPF action

Quentin Monnet (1):
      bpf: change eBPF helper doc parsing script to allow for smaller indent

Sandipan Das (10):
      bpf: support 64-bit offsets for bpf function calls
      bpf: powerpc64: pad function address loads with NOPs
      bpf: powerpc64: add JIT support for multi-function programs
      bpf: get kernel symbol addresses via syscall
      tools: bpf: sync bpf uapi header
      tools: bpftool: resolve calls without using imm field
      bpf: fix multi-function JITed dump obtained via syscall
      bpf: get JITed image lengths of functions via syscall
      tools: bpf: sync bpf uapi header
      tools: bpftool: add delimiters to multi-function JITed dumps

Sirio Balmelli (2):
      selftests/bpf: Makefile fix "missing" headers on build with -idirafter
      tools/lib/libbpf.c: fix string format to allow build on arm32

Yonghong Song (7):
      perf/core: add perf_get_event() to return perf_event given a struct file
      bpf: introduce bpf subcommand BPF_TASK_FD_QUERY
      tools/bpf: sync kernel header bpf.h and add bpf_task_fd_query in libbpf
      tools/bpf: add ksym_get_addr() in trace_helpers
      samples/bpf: add a samples/bpf test for BPF_TASK_FD_QUERY
      tools/bpf: add two BPF_TASK_FD_QUERY tests in test_progs
      tools/bpftool: add perf subcommand

 arch/powerpc/net/bpf_jit_comp64.c                 | 110 ++++-
 drivers/net/ethernet/intel/i40e/i40e_txrx.c       |  26 +-
 drivers/net/ethernet/intel/i40e/i40e_txrx.h       |   2 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c     |  21 +-
 drivers/net/ethernet/netronome/nfp/bpf/jit.c      | 410 ++++++++++++++--
 drivers/net/ethernet/netronome/nfp/bpf/main.h     |  28 ++
 drivers/net/ethernet/netronome/nfp/bpf/offload.c  |   2 +
 drivers/net/ethernet/netronome/nfp/bpf/verifier.c |   8 +
 drivers/net/ethernet/netronome/nfp/nfp_asm.h      |  18 +-
 drivers/net/tun.c                                 |  37 +-
 drivers/net/virtio_net.c                          |  66 ++-
 include/linux/bpf.h                               |  24 +-
 include/linux/bpf_types.h                         |   5 +-
 include/linux/filter.h                            |   1 +
 include/linux/netdevice.h                         |  14 +-
 include/linux/perf_event.h                        |   5 +
 include/linux/trace_events.h                      |  17 +
 include/net/addrconf.h                            |   2 +
 include/net/ip6_fib.h                             |   6 +
 include/net/ip6_route.h                           |   3 +
 include/net/ip_fib.h                              |   2 +
 include/net/page_pool.h                           |   5 +-
 include/net/seg6.h                                |   7 +-
 include/net/seg6_local.h                          |  32 ++
 include/net/xdp.h                                 |   1 +
 include/net/xdp_sock.h                            |  13 +-
 include/trace/events/xdp.h                        |  50 +-
 include/uapi/linux/bpf.h                          | 143 +++++-
 include/uapi/linux/btf.h                          |  37 +-
 include/uapi/linux/if_xdp.h                       |  59 +--
 include/uapi/linux/seg6_local.h                   |  12 +
 kernel/bpf/arraymap.c                             |   2 +-
 kernel/bpf/btf.c                                  | 334 +++++++++----
 kernel/bpf/cpumap.c                               |   2 +-
 kernel/bpf/devmap.c                               | 131 ++++-
 kernel/bpf/sockmap.c                              |   4 +-
 kernel/bpf/syscall.c                              | 245 ++++++++-
 kernel/bpf/verifier.c                             |  23 +-
 kernel/bpf/xskmap.c                               |   9 -
 kernel/events/core.c                              |   8 +
 kernel/trace/bpf_trace.c                          |  48 ++
 kernel/trace/trace_kprobe.c                       |  29 ++
 kernel/trace/trace_uprobe.c                       |  22 +
 net/core/filter.c                                 | 572 +++++++++++++++++++---
 net/core/xdp.c                                    |  20 +-
 net/ipv4/route.c                                  |  31 ++
 net/ipv6/Kconfig                                  |   5 +
 net/ipv6/addrconf_core.c                          |   8 +
 net/ipv6/af_inet6.c                               |   1 +
 net/ipv6/route.c                                  |  48 ++
 net/ipv6/seg6_local.c                             | 190 ++++++-
 net/xdp/Makefile                                  |   1 -
 net/xdp/xdp_umem.c                                |  96 ++--
 net/xdp/xdp_umem.h                                |  18 +-
 net/xdp/xdp_umem_props.h                          |  13 +-
 net/xdp/xsk.c                                     | 150 +++---
 net/xdp/xsk_queue.c                               |  12 +-
 net/xdp/xsk_queue.h                               |  34 +-
 samples/bpf/Makefile                              |   4 +
 samples/bpf/task_fd_query_kern.c                  |  19 +
 samples/bpf/task_fd_query_user.c                  | 382 +++++++++++++++
 samples/bpf/xdp_monitor_kern.c                    |  49 ++
 samples/bpf/xdp_monitor_user.c                    |  69 ++-
 samples/bpf/xdpsock_user.c                        | 135 ++---
 scripts/bpf_helpers_doc.py                        |   8 +-
 tools/bpf/bpftool/Documentation/bpftool-perf.rst  |  81 +++
 tools/bpf/bpftool/Documentation/bpftool.rst       |   5 +-
 tools/bpf/bpftool/bash-completion/bpftool         |   9 +
 tools/bpf/bpftool/main.c                          |   3 +-
 tools/bpf/bpftool/main.h                          |   1 +
 tools/bpf/bpftool/perf.c                          | 246 ++++++++++
 tools/bpf/bpftool/prog.c                          |  97 +++-
 tools/bpf/bpftool/xlated_dumper.c                 |  14 +-
 tools/bpf/bpftool/xlated_dumper.h                 |   3 +
 tools/include/uapi/linux/bpf.h                    | 143 +++++-
 tools/include/uapi/linux/btf.h                    |  37 +-
 tools/lib/bpf/bpf.c                               |  27 +-
 tools/lib/bpf/bpf.h                               |   7 +-
 tools/lib/bpf/btf.c                               |   5 +-
 tools/lib/bpf/libbpf.c                            |  43 +-
 tools/lib/bpf/libbpf.h                            |   4 +-
 tools/testing/selftests/bpf/Makefile              |  16 +-
 tools/testing/selftests/bpf/bpf_helpers.h         |  12 +
 tools/testing/selftests/bpf/test_btf.c            | 521 ++++++++++++++++----
 tools/testing/selftests/bpf/test_lwt_seg6local.c  | 437 +++++++++++++++++
 tools/testing/selftests/bpf/test_lwt_seg6local.sh | 140 ++++++
 tools/testing/selftests/bpf/test_progs.c          | 158 ++++++
 tools/testing/selftests/bpf/test_verifier.c       | 115 +++++
 tools/testing/selftests/bpf/trace_helpers.c       |  12 +
 tools/testing/selftests/bpf/trace_helpers.h       |   1 +
 90 files changed, 5213 insertions(+), 812 deletions(-)
 create mode 100644 include/net/seg6_local.h
 create mode 100644 samples/bpf/task_fd_query_kern.c
 create mode 100644 samples/bpf/task_fd_query_user.c
 create mode 100644 tools/bpf/bpftool/Documentation/bpftool-perf.rst
 create mode 100644 tools/bpf/bpftool/perf.c
 create mode 100644 tools/testing/selftests/bpf/test_lwt_seg6local.c
 create mode 100755 tools/testing/selftests/bpf/test_lwt_seg6local.sh

Comments

David Miller May 25, 2018, 2:21 a.m. UTC | #1
From: Alexei Starovoitov <ast@kernel.org>
Date: Thu, 24 May 2018 19:03:51 -0700

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

Pulled, thanks Alexei.