mbox series

pull-request: bpf-next 2018-07-15

Message ID 20180714231949.14700-1-daniel@iogearbox.net
State Accepted, archived
Delegated to: David Miller
Headers show
Series pull-request: bpf-next 2018-07-15 | expand

Pull-request

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

Message

Daniel Borkmann July 14, 2018, 11:19 p.m. UTC
Hi David,

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

The main changes are:

1) Various different arm32 JIT improvements in order to optimize code emission
   and make the JIT code itself more robust, from Russell.

2) Support simultaneous driver and offloaded XDP in order to allow for advanced
   use-cases where some work is offloaded to the NIC and some to the host. Also
   add ability for bpftool to load programs and maps beyond just the cgroup case,
   from Jakub.

3) Add BPF JIT support in nfp for multiplication as well as division. For the
   latter in particular, it uses the reciprocal algorithm to emulate it, from Jiong.

4) Add BTF pretty print functionality to bpftool in plain and JSON output
   format, from Okash.

5) Add build and installation to the BPF helper man page into bpftool, from Quentin.

6) Add a TCP BPF callback for listening sockets which is triggered right after
   the socket transitions to TCP_LISTEN state, from Andrey.

7) Add a new cgroup tree command to bpftool which iterates over the whole cgroup
   tree and prints all attached programs, from Roman.

8) Improve xdp_redirect_cpu sample to support parsing of double VLAN tagged
   packets, from Jesper.

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 ab8565af68001ac5f9331daa311938ead3eb5636:

  Merge branch 'IP-listification-follow-ups' (2018-07-06 11:19:08 +0900)

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 13f7432bdd8eb2eb55eed2af1469d37c0f667617:

  Merge branch 'bpf-tcp-listen-cb' (2018-07-15 00:09:22 +0200)

----------------------------------------------------------------
Andrey Ignatov (6):
      bpf: Add BPF_SOCK_OPS_TCP_LISTEN_CB
      bpf: Sync bpf.h to tools/
      selftests/bpf: Fix const'ness in cgroup_helpers
      selftests/bpf: Switch test_tcpbpf_user to cgroup_helpers
      selftests/bpf: Better verification in test_tcpbpf
      selftests/bpf: Test case for BPF_SOCK_OPS_TCP_LISTEN_CB

Daniel Borkmann (7):
      Merge branch 'bpf-nfp-mul-div-support'
      Merge branch 'bpf-bpftool-improved-prog-load'
      Merge branch 'bpf-helper-man-install'
      Merge branch 'bpf-arm-jit-improvements'
      Merge branch 'bpf-arm-jit-improvements'
      Merge branch 'bpf-xdp-driver-and-hw'
      Merge branch 'bpf-tcp-listen-cb'

Jakub Kicinski (21):
      selftests/bpf: remove duplicated word from test offloads
      selftests/bpf: add Error: prefix in check_extack helper
      tools: bpftool: refactor argument parsing for prog load
      tools: bpftool: add support for loading programs for offload
      tools: libbpf: expose the prog type guessing from section name logic
      tools: bpftool: allow users to specify program type for prog load
      tools: libbpf: recognize offload neutral maps
      tools: libbpf: add extended attributes version of bpf_object__open()
      tools: bpftool: reimplement bpf_prog_load() for prog load
      tools: libbpf: move library error code into a separate file
      tools: bpf: make use of reallocarray
      tools: libbpf: allow map reuse
      tools: bpftool: allow reuse of maps with bpftool prog load
      xdp: add per mode attributes for attached programs
      xdp: don't make drivers report attachment mode
      xdp: factor out common program/flags handling from drivers
      xdp: support simultaneous driver and hw XDP attachment
      netdevsim: add support for simultaneous driver and hw XDP
      selftests/bpf: add test for multiple programs
      nfp: add support for simultaneous driver and hw XDP
      tools: include reallocarray feature test in FEATURE_TESTS_BASIC

Jesper Dangaard Brouer (1):
      samples/bpf: xdp_redirect_cpu handle parsing of double VLAN tagged packets

Jiong Wang (6):
      lib: reciprocal_div: implement the improved algorithm on the paper mentioned
      nfp: bpf: rename umin/umax to umin_src/umax_src
      nfp: bpf: copy range info for all operands of all ALU operations
      nfp: bpf: support u16 and u32 multiplications
      nfp: bpf: support u32 divide using reciprocal_div.h
      nfp: bpf: migrate to advanced reciprocal divide in reciprocal_div.h

Okash Khawaja (3):
      bpf: btf: export btf types and name by offset from lib
      bpf: btf: add btf print functionality
      bpf: btf: print map dump and lookup with btf info

Quentin Monnet (3):
      bpf: fix documentation for eBPF helpers
      tools: bpf: synchronise BPF UAPI header with tools
      tools: bpf: build and install man page for eBPF helpers from bpftool/

Roman Gushchin (3):
      bpftool: introduce cgroup tree command
      bpftool: document cgroup tree command
      bpftool: add bash completion for cgroup tree command

Russell King (18):
      ARM: net: bpf: enumerate the JIT scratch stack layout
      ARM: net: bpf: provide load/store ops with negative immediates
      ARM: net: bpf: use negative numbers for stacked registers
      ARM: net: bpf: remove is_on_stack() and sstk/dstk
      ARM: net: bpf: provide accessor functions for BPF registers
      ARM: net: bpf: 64-bit accessor functions for BPF registers
      ARM: net: bpf: access eBPF scratch space using ARM FP register
      ARM: net: bpf: imm12 constant conversion
      ARM: net: bpf: use immediate forms of instructions where possible
      ARM: net: bpf: use ldr instructions with shifted rm register
      ARM: net: bpf: avoid reloading 'index'
      ARM: net: bpf: avoid reloading 'array'
      ARM: net: bpf: always use odd/even register pair
      ARM: net: bpf: use double-word load/stores where available
      ARM: net: bpf: improve 64-bit load immediate implementation
      ARM: net: bpf: improve 64-bit sign-extended immediate load
      ARM: net: bpf: improve 64-bit store implementation
      ARM: net: bpf: improve 64-bit ALU implementation

 arch/arm/net/bpf_jit_32.c                          | 1062 +++++++++++---------
 arch/arm/net/bpf_jit_32.h                          |   42 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c      |    1 -
 drivers/net/ethernet/cavium/thunder/nicvf_main.c   |    1 -
 drivers/net/ethernet/intel/i40e/i40e_main.c        |    1 -
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c      |    1 -
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c  |    1 -
 drivers/net/ethernet/mellanox/mlx4/en_netdev.c     |    1 -
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |    1 -
 drivers/net/ethernet/netronome/nfp/bpf/jit.c       |  249 ++++-
 drivers/net/ethernet/netronome/nfp/bpf/main.c      |   11 +-
 drivers/net/ethernet/netronome/nfp/bpf/main.h      |   43 +-
 drivers/net/ethernet/netronome/nfp/bpf/offload.c   |    6 +-
 drivers/net/ethernet/netronome/nfp/bpf/verifier.c  |   85 +-
 drivers/net/ethernet/netronome/nfp/nfp_asm.h       |   28 +
 drivers/net/ethernet/netronome/nfp/nfp_net.h       |   10 +-
 .../net/ethernet/netronome/nfp/nfp_net_common.c    |   58 +-
 drivers/net/ethernet/qlogic/qede/qede_filter.c     |    1 -
 drivers/net/netdevsim/bpf.c                        |   41 +-
 drivers/net/netdevsim/netdev.c                     |    3 +-
 drivers/net/netdevsim/netdevsim.h                  |    6 +-
 drivers/net/tun.c                                  |    1 -
 drivers/net/virtio_net.c                           |    1 -
 include/linux/netdevice.h                          |   12 +-
 include/linux/reciprocal_div.h                     |   68 ++
 include/net/xdp.h                                  |   13 +
 include/uapi/linux/bpf.h                           |    9 +-
 include/uapi/linux/if_link.h                       |    4 +
 lib/reciprocal_div.c                               |   41 +
 net/core/dev.c                                     |   48 +-
 net/core/rtnetlink.c                               |   71 +-
 net/core/xdp.c                                     |   34 +
 net/ipv4/af_inet.c                                 |    1 +
 samples/bpf/xdp_redirect_cpu_kern.c                |   11 +-
 tools/bpf/Makefile.helpers                         |   59 ++
 tools/bpf/bpftool/Documentation/Makefile           |   13 +-
 tools/bpf/bpftool/Documentation/bpftool-cgroup.rst |   12 +-
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |   33 +-
 tools/bpf/bpftool/Makefile                         |    6 +-
 tools/bpf/bpftool/bash-completion/bpftool          |  102 +-
 tools/bpf/bpftool/btf_dumper.c                     |  251 +++++
 tools/bpf/bpftool/cgroup.c                         |  170 +++-
 tools/bpf/bpftool/main.h                           |   34 +
 tools/bpf/bpftool/map.c                            |  221 +++-
 tools/bpf/bpftool/prog.c                           |  245 ++++-
 tools/bpf/bpftool/xlated_dumper.c                  |    6 +-
 tools/build/Makefile.feature                       |    1 +
 tools/build/feature/Makefile                       |    4 +
 tools/build/feature/test-reallocarray.c            |    8 +
 tools/include/linux/compiler-gcc.h                 |    4 +
 tools/include/linux/overflow.h                     |  278 +++++
 tools/include/tools/libc_compat.h                  |   20 +
 tools/include/uapi/linux/bpf.h                     |   35 +-
 tools/lib/bpf/Build                                |    2 +-
 tools/lib/bpf/Makefile                             |    6 +-
 tools/lib/bpf/btf.c                                |   65 +-
 tools/lib/bpf/btf.h                                |    3 +
 tools/lib/bpf/libbpf.c                             |  188 ++--
 tools/lib/bpf/libbpf.h                             |   11 +
 tools/lib/bpf/libbpf_errno.c                       |   74 ++
 tools/testing/selftests/bpf/Makefile               |    1 +
 tools/testing/selftests/bpf/cgroup_helpers.c       |    6 +-
 tools/testing/selftests/bpf/cgroup_helpers.h       |    6 +-
 tools/testing/selftests/bpf/test_offload.py        |   81 +-
 tools/testing/selftests/bpf/test_tcpbpf.h          |    1 +
 tools/testing/selftests/bpf/test_tcpbpf_kern.c     |   17 +-
 tools/testing/selftests/bpf/test_tcpbpf_user.c     |  119 +--
 67 files changed, 3119 insertions(+), 929 deletions(-)
 create mode 100644 tools/bpf/Makefile.helpers
 create mode 100644 tools/bpf/bpftool/btf_dumper.c
 create mode 100644 tools/build/feature/test-reallocarray.c
 create mode 100644 tools/include/linux/overflow.h
 create mode 100644 tools/include/tools/libc_compat.h
 create mode 100644 tools/lib/bpf/libbpf_errno.c

Comments

David Miller July 15, 2018, 1:48 a.m. UTC | #1
From: Daniel Borkmann <daniel@iogearbox.net>
Date: Sun, 15 Jul 2018 01:19:49 +0200

> The following pull-request contains BPF updates for your *net-next* tree.
> 
> The main changes are:
...
> Please consider pulling these changes from:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git

Pulled, thanks Daniel!