[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230417121903.46218-1-tariqt@nvidia.com>
Date: Mon, 17 Apr 2023 15:18:48 +0300
From: Tariq Toukan <tariqt@...dia.com>
To: "David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>
CC: Eric Dumazet <edumazet@...gle.com>,
Paolo Abeni <pabeni@...hat.com>,
Jesper Dangaard Brouer <brouer@...hat.com>,
Toke Hoiland-Jorgensen <toke@...hat.com>,
<netdev@...r.kernel.org>, Saeed Mahameed <saeedm@...dia.com>,
Lorenzo Bianconi <lorenzo@...nel.org>,
Gal Pressman <gal@...dia.com>,
Henning Fehrmann <henning.fehrmann@....mpg.de>,
"Oliver Behnke" <oliver.behnke@....mpg.de>,
Tariq Toukan <tariqt@...dia.com>
Subject: [PATCH net-next 00/15] net/mlx5e: Extend XDP multi-buffer capabilities
Hi,
This series extends the XDP multi-buffer support in the mlx5e driver.
Patchset breakdown:
- Infrastructural changes and preparations.
- Add XDP multi-buffer support for XDP redirect-in.
- Use TX MPWQE (multi-packet WQE) HW feature for non-linear
single-segmented XDP frames.
- Add XDP multi-buffer support for striding RQ.
In Striding RQ, we overcome the lack of headroom and tailroom between
the RQ strides by allocating a side page per packet and using it for the
xdp_buff descriptor. We structure the xdp_buff so that it contains
nothing in the linear part, and the whole packet resides in the
fragments.
Performance highlight:
Packet rate test, 64 bytes, 32 channels, MTU 9000 bytes.
CPU: Intel(R) Xeon(R) Platinum 8380 CPU @ 2.30GHz.
NIC: ConnectX-6 Dx, at 100 Gbps.
+----------+-------------+-------------+---------+
| Test | Legacy RQ | Striding RQ | Speedup |
+----------+-------------+-------------+---------+
| XDP_DROP | 101,615,544 | 117,191,020 | +15% |
+----------+-------------+-------------+---------+
| XDP_TX | 95,608,169 | 117,043,422 | +22% |
+----------+-------------+-------------+---------+
Series generated against net commit:
e61caf04b9f8 Merge branch 'page_pool-allow-caching-from-safely-localized-napi'
I'm submitting this directly as Saeed is traveling.
Regards,
Tariq
Tariq Toukan (15):
net/mlx5e: Move XDP struct and enum to XDP header
net/mlx5e: Move struct mlx5e_xmit_data to datapath header
net/mlx5e: Introduce extended version for mlx5e_xmit_data
net/mlx5e: XDP, Remove doubtful unlikely calls
net/mlx5e: XDP, Use multiple single-entry objects in xdpi_fifo
net/mlx5e: XDP, Add support for multi-buffer XDP redirect-in
net/mlx5e: XDP, Improve Striding RQ check with XDP
net/mlx5e: XDP, Let XDP checker function get the params as input
net/mlx5e: XDP, Consider large muti-buffer packets in Striding RQ
params calculations
net/mlx5e: XDP, Remove un-established assumptions on XDP buffer
net/mlx5e: XDP, Allow non-linear single-segment frames in XDP TX MPWQE
net/mlx5e: RX, Take shared info fragment addition into a function
net/mlx5e: RX, Generalize mlx5e_fill_mxbuf()
net/mlx5e: RX, Prepare non-linear striding RQ for XDP multi-buffer
support
net/mlx5e: RX, Add XDP multi-buffer support in Striding RQ
drivers/net/ethernet/mellanox/mlx5/core/en.h | 46 +--
.../ethernet/mellanox/mlx5/core/en/params.c | 32 +-
.../ethernet/mellanox/mlx5/core/en/params.h | 3 +
.../net/ethernet/mellanox/mlx5/core/en/txrx.h | 13 +
.../net/ethernet/mellanox/mlx5/core/en/xdp.c | 305 +++++++++++++-----
.../net/ethernet/mellanox/mlx5/core/en/xdp.h | 55 +++-
.../ethernet/mellanox/mlx5/core/en/xsk/tx.c | 12 +-
.../net/ethernet/mellanox/mlx5/core/en_main.c | 92 +++---
.../net/ethernet/mellanox/mlx5/core/en_rx.c | 215 +++++++++---
9 files changed, 519 insertions(+), 254 deletions(-)
--
2.34.1
Powered by blists - more mailing lists