[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190430181215.15305-1-maximmi@mellanox.com>
Date: Tue, 30 Apr 2019 18:12:32 +0000
From: Maxim Mikityanskiy <maximmi@...lanox.com>
To: Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>,
Björn Töpel <bjorn.topel@...el.com>,
Magnus Karlsson <magnus.karlsson@...el.com>
CC: "bpf@...r.kernel.org" <bpf@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"David S. Miller" <davem@...emloft.net>,
Saeed Mahameed <saeedm@...lanox.com>,
Jonathan Lemon <bsd@...com>,
Tariq Toukan <tariqt@...lanox.com>,
Martin KaFai Lau <kafai@...com>,
Song Liu <songliubraving@...com>, Yonghong Song <yhs@...com>,
Jakub Kicinski <jakub.kicinski@...ronome.com>,
Maciej Fijalkowski <maciejromanfijalkowski@...il.com>,
Maxim Mikityanskiy <maximmi@...lanox.com>
Subject: [PATCH bpf-next v2 00/16] AF_XDP infrastructure improvements and
mlx5e support
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 (net-next has to be merged first, because this series depends
on some patches from there).
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 | 220 ++++++
.../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 | 18 +
net/xdp/xsk.c | 43 +-
net/xdp/xsk_queue.h | 14 +
samples/bpf/xdpsock_user.c | 52 +-
tools/include/uapi/linux/if_xdp.h | 18 +
tools/lib/bpf/xsk.c | 127 +++-
tools/lib/bpf/xsk.h | 6 +-
35 files changed, 2384 insertions(+), 500 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
Powered by blists - more mailing lists