pull-request: bpf-next 2019-07-03

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

 



Hi David,

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

There is a minor merge conflict in mlx5 due to 8960b38932be ("linux/dim:
Rename externally used net_dim members") which has been pulled into your
tree in the meantime, but resolution seems not that bad ... getting current
bpf-next out now before there's coming more on mlx5. ;) I'm Cc'ing Saeed
just so he's aware of the resolution below:

** First conflict in drivers/net/ethernet/mellanox/mlx5/core/en_main.c:

  <<<<<<< HEAD
  static int mlx5e_open_cq(struct mlx5e_channel *c,
                           struct dim_cq_moder moder,
                           struct mlx5e_cq_param *param,
                           struct mlx5e_cq *cq)
  =======
  int mlx5e_open_cq(struct mlx5e_channel *c, struct net_dim_cq_moder moder,
                    struct mlx5e_cq_param *param, struct mlx5e_cq *cq)
  >>>>>>> e5a3e259ef239f443951d401db10db7d426c9497

Resolution is to take the second chunk and rename net_dim_cq_moder into
dim_cq_moder. Also the signature for mlx5e_open_cq() in ...

  drivers/net/ethernet/mellanox/mlx5/core/en.h +977

... and in mlx5e_open_xsk() ...

  drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c +64

... needs the same rename from net_dim_cq_moder into dim_cq_moder.

** Second conflict in drivers/net/ethernet/mellanox/mlx5/core/en_main.c:

  <<<<<<< HEAD
          int cpu = cpumask_first(mlx5_comp_irq_get_affinity_mask(priv->mdev, ix));
          struct dim_cq_moder icocq_moder = {0, 0};
          struct net_device *netdev = priv->netdev;
          struct mlx5e_channel *c;
          unsigned int irq;
  =======
          struct net_dim_cq_moder icocq_moder = {0, 0};
  >>>>>>> e5a3e259ef239f443951d401db10db7d426c9497

Take the second chunk and rename net_dim_cq_moder into dim_cq_moder
as well.

Let me know if you run into any issues. Anyway, the main changes are:

1) Long-awaited AF_XDP support for mlx5e driver, from Maxim.

2) Addition of two new per-cgroup BPF hooks for getsockopt and
   setsockopt along with a new sockopt program type which allows more
   fine-grained pass/reject settings for containers. Also add a sock_ops
   callback that can be selectively enabled on a per-socket basis and is
   executed for every RTT to help tracking TCP statistics, both features
   from Stanislav.

3) Follow-up fix from loops in precision tracking which was not propagating
   precision marks and as a result verifier assumed that some branches were
   not taken and therefore wrongly removed as dead code, from Alexei.

4) Fix BPF cgroup release synchronization race which could lead to a
   double-free if a leaf's cgroup_bpf object is released and a new BPF
   program is attached to the one of ancestor cgroups in parallel, from Roman.

5) Support for bulking XDP_TX on veth devices which improves performance
   in some cases by around 9%, from Toshiaki.

6) Allow for lookups into BPF devmap and improve feedback when calling into
   bpf_redirect_map() as lookup is now performed right away in the helper
   itself, from Toke.

7) Add support for fq's Earliest Departure Time to the Host Bandwidth
   Manager (HBM) sample BPF program, from Lawrence.

8) Various cleanups and minor fixes all over the place from many others.

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

  Merge branch 'ipv6-avoid-taking-refcnt-on-dst-during-route-lookup' (2019-06-23 13:24:17 -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 e5a3e259ef239f443951d401db10db7d426c9497:

  Merge branch 'bpf-tcp-rtt-hook' (2019-07-03 16:52:03 +0200)

----------------------------------------------------------------
Alexei Starovoitov (2):
      Merge branch 'bpf-sockopt-hooks'
      bpf: fix precision tracking

Andrii Nakryiko (2):
      selftests/bpf: build tests with debug info
      libbpf: fix GCC8 warning for strncpy

Colin Ian King (1):
      libbpf: fix spelling mistake "conflictling" -> "conflicting"

Daniel Borkmann (3):
      Merge branch 'bpf-af-xdp-mlx5e'
      Merge branch 'bpf-lookup-devmap'
      Merge branch 'bpf-tcp-rtt-hook'

Daniel T. Lee (1):
      samples: bpf: make the use of xdp samples consistent

Eric Leblond (1):
      xsk: sample kernel code is now in libbpf

Ivan Khoronzhuk (1):
      libbpf: fix max() type mismatch for 32bit

Jiri Benc (1):
      selftests: bpf: standardize to static __always_inline

Leo Yan (1):
      bpf, libbpf, smatch: Fix potential NULL pointer dereference

Maxim Mikityanskiy (16):
      net/mlx5e: Attach/detach XDP program safely
      xsk: Add API to check for available entries in FQ
      xsk: Add getsockopt XDP_OPTIONS
      libbpf: Support getsockopt XDP_OPTIONS
      xsk: Change the default frame size to 4096 and allow controlling it
      xsk: Return the whole xdp_desc from xsk_umem_consume_tx
      net/mlx5e: Replace deprecated PCI_DMA_TODEVICE
      net/mlx5e: Calculate linear RX frag size considering XSK
      net/mlx5e: Allow ICO SQ to be used by multiple RQs
      net/mlx5e: Refactor struct mlx5e_xdp_info
      net/mlx5e: Share the XDP SQ for XDP_TX between RQs
      net/mlx5e: XDP_TX from UMEM support
      net/mlx5e: Consider XSK in XDP MTU limit calculation
      net/mlx5e: Encapsulate open/close queues into a function
      net/mlx5e: Move queue param structs to en/params.h
      net/mlx5e: Add XSK zero-copy support

Michal Rostecki (1):
      samples: bpf: Remove bpf_debug macro in favor of bpf_printk

Roman Gushchin (1):
      bpf: fix cgroup bpf release synchronization

Stanislav Fomichev (18):
      bpf: implement getsockopt and setsockopt hooks
      bpf: sync bpf.h to tools/
      libbpf: support sockopt hooks
      selftests/bpf: test sockopt section name
      selftests/bpf: add sockopt test
      selftests/bpf: add sockopt test that exercises sk helpers
      selftests/bpf: add sockopt test that exercises BPF_F_ALLOW_MULTI
      bpf: add sockopt documentation
      bpftool: support cgroup sockopt
      selftests/bpf: fix -Wstrict-aliasing in test_sockopt_sk.c
      bpf: add BPF_CGROUP_SOCK_OPS callback that is executed on every RTT
      bpf: split shared bpf_tcp_sock and bpf_sock_ops implementation
      bpf: add dsack_dups/delivered{, _ce} to bpf_tcp_sock
      bpf: add icsk_retransmits to bpf_tcp_sock
      bpf/tools: sync bpf.h
      selftests/bpf: test BPF_SOCK_OPS_RTT_CB
      samples/bpf: add sample program that periodically dumps TCP stats
      samples/bpf: fix tcp_bpf.readme detach command

Toke Høiland-Jørgensen (5):
      xskmap: Move non-standard list manipulation to helper
      devmap/cpumap: Use flush list instead of bitmap
      devmap: Rename ifindex member in bpf_redirect_info
      bpf_xdp_redirect_map: Perform map lookup in eBPF helper
      devmap: Allow map lookups from eBPF

Toshiaki Makita (3):
      selftests, bpf: Add test for veth native XDP
      xdp: Add tracepoint for bulk XDP_TX
      veth: Support bulk XDP_TX

Yonghong Song (1):
      bpf: fix compiler warning with CONFIG_MODULES=n

YueHaibing (1):
      xdp: Make __mem_id_disconnect static

brakmo (1):
      bpf: Add support for fq's EDT to HBM

 Documentation/bpf/index.rst                        |    1 +
 Documentation/bpf/prog_cgroup_sockopt.rst          |   93 ++
 Documentation/networking/af_xdp.rst                |   16 +-
 drivers/net/ethernet/intel/i40e/i40e_xsk.c         |   12 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c       |   15 +-
 drivers/net/ethernet/mellanox/mlx5/core/Makefile   |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |  155 ++-
 .../net/ethernet/mellanox/mlx5/core/en/params.c    |  108 ++-
 .../net/ethernet/mellanox/mlx5/core/en/params.h    |  118 ++-
 drivers/net/ethernet/mellanox/mlx5/core/en/xdp.c   |  231 +++--
 drivers/net/ethernet/mellanox/mlx5/core/en/xdp.h   |   36 +-
 .../ethernet/mellanox/mlx5/core/en/xsk/Makefile    |    1 +
 .../net/ethernet/mellanox/mlx5/core/en/xsk/rx.c    |  192 ++++
 .../net/ethernet/mellanox/mlx5/core/en/xsk/rx.h    |   27 +
 .../net/ethernet/mellanox/mlx5/core/en/xsk/setup.c |  223 +++++
 .../net/ethernet/mellanox/mlx5/core/en/xsk/setup.h |   25 +
 .../net/ethernet/mellanox/mlx5/core/en/xsk/tx.c    |  111 +++
 .../net/ethernet/mellanox/mlx5/core/en/xsk/tx.h    |   15 +
 .../net/ethernet/mellanox/mlx5/core/en/xsk/umem.c  |  267 +++++
 .../net/ethernet/mellanox/mlx5/core/en/xsk/umem.h  |   31 +
 .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |   25 +-
 .../ethernet/mellanox/mlx5/core/en_fs_ethtool.c    |   18 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |  730 +++++++++-----
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |   12 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c    |  104 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_stats.c |  115 ++-
 drivers/net/ethernet/mellanox/mlx5/core/en_stats.h |   30 +
 drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c  |   42 +-
 .../net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c  |   14 +-
 drivers/net/ethernet/mellanox/mlx5/core/wq.h       |    5 -
 drivers/net/veth.c                                 |   60 +-
 include/linux/bpf-cgroup.h                         |   45 +
 include/linux/bpf.h                                |    2 +
 include/linux/bpf_types.h                          |    1 +
 include/linux/filter.h                             |   13 +-
 include/linux/list.h                               |   14 +
 include/net/tcp.h                                  |    8 +
 include/net/xdp_sock.h                             |   27 +-
 include/trace/events/xdp.h                         |   34 +-
 include/uapi/linux/bpf.h                           |   33 +-
 include/uapi/linux/if_xdp.h                        |    8 +
 kernel/bpf/cgroup.c                                |  352 ++++++-
 kernel/bpf/core.c                                  |   10 +
 kernel/bpf/cpumap.c                                |  105 +-
 kernel/bpf/devmap.c                                |  112 +--
 kernel/bpf/syscall.c                               |   19 +
 kernel/bpf/verifier.c                              |  136 ++-
 kernel/bpf/xskmap.c                                |    3 +-
 kernel/trace/bpf_trace.c                           |   27 +-
 net/core/filter.c                                  |  269 ++++--
 net/core/xdp.c                                     |    2 +-
 net/ipv4/tcp_input.c                               |    4 +
 net/socket.c                                       |   30 +
 net/xdp/xsk.c                                      |   36 +-
 net/xdp/xsk_queue.h                                |   14 +
 samples/bpf/Makefile                               |    3 +
 samples/bpf/do_hbm_test.sh                         |   22 +-
 samples/bpf/hbm.c                                  |   18 +-
 samples/bpf/hbm_edt_kern.c                         |  168 ++++
 samples/bpf/hbm_kern.h                             |   40 +-
 samples/bpf/ibumad_kern.c                          |   18 +-
 samples/bpf/tcp_bpf.readme                         |    2 +-
 samples/bpf/tcp_dumpstats_kern.c                   |   68 ++
 samples/bpf/xdp_adjust_tail_user.c                 |   12 +-
 samples/bpf/xdp_redirect_map_user.c                |   15 +-
 samples/bpf/xdp_redirect_user.c                    |   15 +-
 samples/bpf/xdp_tx_iptunnel_user.c                 |   12 +-
 samples/bpf/xdpsock_user.c                         |   44 +-
 tools/bpf/bpftool/Documentation/bpftool-cgroup.rst |    7 +-
 tools/bpf/bpftool/Documentation/bpftool-prog.rst   |    3 +-
 tools/bpf/bpftool/bash-completion/bpftool          |    9 +-
 tools/bpf/bpftool/cgroup.c                         |    5 +-
 tools/bpf/bpftool/main.h                           |    1 +
 tools/bpf/bpftool/prog.c                           |    3 +-
 tools/include/uapi/linux/bpf.h                     |   26 +-
 tools/include/uapi/linux/if_xdp.h                  |    8 +
 tools/lib/bpf/libbpf.c                             |   23 +-
 tools/lib/bpf/libbpf_probes.c                      |    1 +
 tools/lib/bpf/xsk.c                                |   15 +-
 tools/lib/bpf/xsk.h                                |    2 +-
 tools/testing/selftests/bpf/.gitignore             |    3 +
 tools/testing/selftests/bpf/Makefile               |   10 +-
 tools/testing/selftests/bpf/progs/pyperf.h         |    9 +-
 tools/testing/selftests/bpf/progs/sockopt_multi.c  |   71 ++
 tools/testing/selftests/bpf/progs/sockopt_sk.c     |  111 +++
 tools/testing/selftests/bpf/progs/strobemeta.h     |   36 +-
 tools/testing/selftests/bpf/progs/tcp_rtt.c        |   61 ++
 tools/testing/selftests/bpf/progs/test_jhash.h     |    3 +-
 tools/testing/selftests/bpf/progs/test_seg6_loop.c |   23 +-
 .../selftests/bpf/progs/test_verif_scale2.c        |    2 +-
 .../testing/selftests/bpf/progs/xdp_redirect_map.c |   31 +
 tools/testing/selftests/bpf/progs/xdp_tx.c         |   12 +
 tools/testing/selftests/bpf/test_section_names.c   |   10 +
 tools/testing/selftests/bpf/test_sockopt.c         | 1021 ++++++++++++++++++++
 tools/testing/selftests/bpf/test_sockopt_multi.c   |  374 +++++++
 tools/testing/selftests/bpf/test_sockopt_sk.c      |  211 ++++
 tools/testing/selftests/bpf/test_tcp_rtt.c         |  254 +++++
 tools/testing/selftests/bpf/test_xdp_veth.sh       |  118 +++
 98 files changed, 6197 insertions(+), 841 deletions(-)
 create mode 100644 Documentation/bpf/prog_cgroup_sockopt.rst
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/Makefile
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/tx.h
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/umem.c
 create mode 100644 drivers/net/ethernet/mellanox/mlx5/core/en/xsk/umem.h
 create mode 100644 samples/bpf/hbm_edt_kern.c
 create mode 100644 samples/bpf/tcp_dumpstats_kern.c
 create mode 100644 tools/testing/selftests/bpf/progs/sockopt_multi.c
 create mode 100644 tools/testing/selftests/bpf/progs/sockopt_sk.c
 create mode 100644 tools/testing/selftests/bpf/progs/tcp_rtt.c
 create mode 100644 tools/testing/selftests/bpf/progs/xdp_redirect_map.c
 create mode 100644 tools/testing/selftests/bpf/progs/xdp_tx.c
 create mode 100644 tools/testing/selftests/bpf/test_sockopt.c
 create mode 100644 tools/testing/selftests/bpf/test_sockopt_multi.c
 create mode 100644 tools/testing/selftests/bpf/test_sockopt_sk.c
 create mode 100644 tools/testing/selftests/bpf/test_tcp_rtt.c
 create mode 100755 tools/testing/selftests/bpf/test_xdp_veth.sh



[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