All of lore.kernel.org
 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 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.