All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH bpf-next v3 00/16] AF_XDP infrastructure improvements and mlx5e support
@ 2019-05-24  9:35 Maxim Mikityanskiy
  2019-05-24  9:35 ` [PATCH bpf-next v3 01/16] xsk: Add API to check for available entries in FQ Maxim Mikityanskiy
                   ` (16 more replies)
  0 siblings, 17 replies; 21+ messages in thread
From: Maxim Mikityanskiy @ 2019-05-24  9:35 UTC (permalink / raw)
  To: Alexei Starovoitov, Daniel Borkmann, Björn Töpel,
	Magnus Karlsson
  Cc: bpf, netdev, David S. Miller, Saeed Mahameed, Jonathan Lemon,
	Tariq Toukan, Martin KaFai Lau, Song Liu, Yonghong Song,
	Jakub Kicinski, Maciej Fijalkowski, Maxim Mikityanskiy

This series contains improvements to the AF_XDP kernel infrastructure
and AF_XDP support in mlx5e. The infrastructure improvements are
required for mlx5e, but also some of them benefit to all drivers, and
some can be useful for other drivers that want to implement AF_XDP.

The performance testing was performed on a machine with the following
configuration:

- 24 cores of Intel Xeon E5-2620 v3 @ 2.40 GHz
- Mellanox ConnectX-5 Ex with 100 Gbit/s link

The results with retpoline disabled, single stream:

txonly: 33.3 Mpps (21.5 Mpps with queue and app pinned to the same CPU)
rxdrop: 12.2 Mpps
l2fwd: 9.4 Mpps

The results with retpoline enabled, single stream:

txonly: 21.3 Mpps (14.1 Mpps with queue and app pinned to the same CPU)
rxdrop: 9.9 Mpps
l2fwd: 6.8 Mpps

v2 changes:

Added patches for mlx5e and addressed the comments for v1. Rebased for
bpf-next.

v3 changes:

Rebased for the newer bpf-next, resolved conflicts in libbpf. Addressed
Björn's comments for coding style. Fixed a bug in error handling flow in
mlx5e_open_xsk.

Maxim Mikityanskiy (16):
  xsk: Add API to check for available entries in FQ
  xsk: Add getsockopt XDP_OPTIONS
  libbpf: Support getsockopt XDP_OPTIONS
  xsk: Extend channels to support combined XSK/non-XSK traffic
  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 support

 drivers/net/ethernet/intel/i40e/i40e_xsk.c    |  12 +-
 drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c  |  15 +-
 .../net/ethernet/mellanox/mlx5/core/Makefile  |   2 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h  | 147 +++-
 .../ethernet/mellanox/mlx5/core/en/params.c   | 108 ++-
 .../ethernet/mellanox/mlx5/core/en/params.h   |  87 ++-
 .../net/ethernet/mellanox/mlx5/core/en/xdp.c  | 231 ++++--
 .../net/ethernet/mellanox/mlx5/core/en/xdp.h  |  36 +-
 .../mellanox/mlx5/core/en/xsk/Makefile        |   1 +
 .../ethernet/mellanox/mlx5/core/en/xsk/rx.c   | 192 +++++
 .../ethernet/mellanox/mlx5/core/en/xsk/rx.h   |  27 +
 .../mellanox/mlx5/core/en/xsk/setup.c         | 223 ++++++
 .../mellanox/mlx5/core/en/xsk/setup.h         |  25 +
 .../ethernet/mellanox/mlx5/core/en/xsk/tx.c   | 108 +++
 .../ethernet/mellanox/mlx5/core/en/xsk/tx.h   |  15 +
 .../ethernet/mellanox/mlx5/core/en/xsk/umem.c | 252 +++++++
 .../ethernet/mellanox/mlx5/core/en/xsk/umem.h |  34 +
 .../ethernet/mellanox/mlx5/core/en_ethtool.c  |  21 +-
 .../mellanox/mlx5/core/en_fs_ethtool.c        |  44 +-
 .../net/ethernet/mellanox/mlx5/core/en_main.c | 680 +++++++++++-------
 .../net/ethernet/mellanox/mlx5/core/en_rep.c  |  12 +-
 .../net/ethernet/mellanox/mlx5/core/en_rx.c   | 104 ++-
 .../ethernet/mellanox/mlx5/core/en_stats.c    | 115 ++-
 .../ethernet/mellanox/mlx5/core/en_stats.h    |  30 +
 .../net/ethernet/mellanox/mlx5/core/en_txrx.c |  42 +-
 .../ethernet/mellanox/mlx5/core/ipoib/ipoib.c |  14 +-
 drivers/net/ethernet/mellanox/mlx5/core/wq.h  |   5 -
 include/net/xdp_sock.h                        |  27 +-
 include/uapi/linux/if_xdp.h                   |  19 +
 net/xdp/xsk.c                                 |  41 +-
 net/xdp/xsk_queue.h                           |  14 +
 samples/bpf/xdpsock_user.c                    |  52 +-
 tools/include/uapi/linux/if_xdp.h             |  19 +
 tools/lib/bpf/xsk.c                           | 131 +++-
 tools/lib/bpf/xsk.h                           |   6 +-
 35 files changed, 2389 insertions(+), 502 deletions(-)
 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

-- 
2.19.1


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2019-06-03  8:27 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-24  9:35 [PATCH bpf-next v3 00/16] AF_XDP infrastructure improvements and mlx5e support Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 01/16] xsk: Add API to check for available entries in FQ Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 02/16] xsk: Add getsockopt XDP_OPTIONS Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 03/16] libbpf: Support " Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 04/16] xsk: Extend channels to support combined XSK/non-XSK traffic Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 05/16] xsk: Change the default frame size to 4096 and allow controlling it Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 06/16] xsk: Return the whole xdp_desc from xsk_umem_consume_tx Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 07/16] net/mlx5e: Replace deprecated PCI_DMA_TODEVICE Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 08/16] net/mlx5e: Calculate linear RX frag size considering XSK Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 09/16] net/mlx5e: Allow ICO SQ to be used by multiple RQs Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 10/16] net/mlx5e: Refactor struct mlx5e_xdp_info Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 11/16] net/mlx5e: Share the XDP SQ for XDP_TX between RQs Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 12/16] net/mlx5e: XDP_TX from UMEM support Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 13/16] net/mlx5e: Consider XSK in XDP MTU limit calculation Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 14/16] net/mlx5e: Encapsulate open/close queues into a function Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 15/16] net/mlx5e: Move queue param structs to en/params.h Maxim Mikityanskiy
2019-05-24  9:35 ` [PATCH bpf-next v3 16/16] net/mlx5e: Add XSK support Maxim Mikityanskiy
2019-05-24 10:18 ` [PATCH bpf-next v3 00/16] AF_XDP infrastructure improvements and mlx5e support Björn Töpel
2019-05-24 17:58   ` Jakub Kicinski
2019-05-31 21:56   ` Saeed Mahameed
2019-06-03  8:27     ` Magnus Karlsson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.