netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 00/15] net/mlx5e: Extend XDP multi-buffer capabilities
@ 2023-04-17 12:18 Tariq Toukan
  2023-04-17 12:18 ` [PATCH net-next 01/15] net/mlx5e: Move XDP struct and enum to XDP header Tariq Toukan
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: Tariq Toukan @ 2023-04-17 12:18 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski
  Cc: Eric Dumazet, Paolo Abeni, Jesper Dangaard Brouer,
	Toke Hoiland-Jorgensen, netdev, Saeed Mahameed, Lorenzo Bianconi,
	Gal Pressman, Henning Fehrmann, Oliver Behnke, Tariq Toukan

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


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

end of thread, other threads:[~2023-04-20  0:47 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-17 12:18 [PATCH net-next 00/15] net/mlx5e: Extend XDP multi-buffer capabilities Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 01/15] net/mlx5e: Move XDP struct and enum to XDP header Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 02/15] net/mlx5e: Move struct mlx5e_xmit_data to datapath header Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 03/15] net/mlx5e: Introduce extended version for mlx5e_xmit_data Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 04/15] net/mlx5e: XDP, Remove doubtful unlikely calls Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 05/15] net/mlx5e: XDP, Use multiple single-entry objects in xdpi_fifo Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 06/15] net/mlx5e: XDP, Add support for multi-buffer XDP redirect-in Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 07/15] net/mlx5e: XDP, Improve Striding RQ check with XDP Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 08/15] net/mlx5e: XDP, Let XDP checker function get the params as input Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 09/15] net/mlx5e: XDP, Consider large muti-buffer packets in Striding RQ params calculations Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 10/15] net/mlx5e: XDP, Remove un-established assumptions on XDP buffer Tariq Toukan
2023-04-17 12:18 ` [PATCH net-next 11/15] net/mlx5e: XDP, Allow non-linear single-segment frames in XDP TX MPWQE Tariq Toukan
2023-04-17 12:19 ` [PATCH net-next 12/15] net/mlx5e: RX, Take shared info fragment addition into a function Tariq Toukan
2023-04-17 12:19 ` [PATCH net-next 13/15] net/mlx5e: RX, Generalize mlx5e_fill_mxbuf() Tariq Toukan
2023-04-17 12:19 ` [PATCH net-next 14/15] net/mlx5e: RX, Prepare non-linear striding RQ for XDP multi-buffer support Tariq Toukan
2023-04-17 12:19 ` [PATCH net-next 15/15] net/mlx5e: RX, Add XDP multi-buffer support in Striding RQ Tariq Toukan
2023-04-20  0:47 ` [PATCH net-next 00/15] net/mlx5e: Extend XDP multi-buffer capabilities Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).