mbox series

[net-next,V2,00/14] net/mlx5e: SHAMPO, Enable HW GRO once more

Message ID 20240603212219.1037656-1-tariqt@nvidia.com (mailing list archive)
Headers show
Series net/mlx5e: SHAMPO, Enable HW GRO once more | expand

Message

Tariq Toukan June 3, 2024, 9:22 p.m. UTC
This series enables hardware GRO for ConnectX-7 and newer NICs.
SHAMPO stands for Split Header And Merge Payload Offload.

The first part of the series contains important fixes and improvements.

The second part reworks the HW GRO counters.

Lastly, HW GRO is perf optimized and enabled.

Here are the bandwidth numbers for a simple iperf3 test over a single rq
where the application and irq are pinned to the same CPU:

+---------+--------+--------+-----------+-------------+
| streams | SW GRO | HW GRO | Unit      | Improvement |
+---------+--------+--------+-----------+-------------+
| 1       | 36     | 57     | Gbits/sec |    1.6 x    |
| 4       | 34     | 50     | Gbits/sec |    1.5 x    |
| 8       | 31     | 43     | Gbits/sec |    1.4 x    |
+---------+--------+--------+-----------+-------------+

Benchmark details:
VM based setup
CPU: Intel(R) Xeon(R) Platinum 8380 CPU, 24 cores
NIC: ConnectX-7 100GbE
iperf3 and irq running on same CPU over a single receive queue

Series generated against:
commit 83042ce9b7c3 ("Merge branch 'Felix-DSA-probing-cleanup'")

Thanks,
Tariq.

V2:
- Dropped the patch that adds no-split counters, we plan to add in the future
  with detailed documentation.

Dragos Tatulea (9):
  net/mlx5e: SHAMPO, Fix incorrect page release
  net/mlx5e: SHAMPO, Fix invalid WQ linked list unlink
  net/mlx5e: SHAMPO, Fix FCS config when HW GRO on
  net/mlx5e: SHAMPO, Disable gso_size for non GRO packets
  net/mlx5e: SHAMPO, Simplify header page release in teardown
  net/mlx5e: SHAMPO, Specialize mlx5e_fill_skb_data()
  net/mlx5e: SHAMPO, Make GRO counters more precise
  net/mlx5e: SHAMPO, Drop rx_gro_match_packets counter
  net/mlx5e: SHAMPO, Coalesce skb fragments to page size

Tariq Toukan (2):
  net/mlx5e: SHAMPO, Use net_prefetch API
  net/mlx5e: SHAMPO, Add header-only ethtool counters for header data
    split

Yoray Zack (3):
  net/mlx5e: SHAMPO, Skipping on duplicate flush of the same SHAMPO SKB
  net/mlx5e: SHAMPO, Use KSMs instead of KLMs
  net/mlx5e: SHAMPO, Re-enable HW-GRO

 .../ethernet/mellanox/mlx5/counters.rst       |  24 ++-
 drivers/net/ethernet/mellanox/mlx5/core/en.h  |  22 +-
 .../ethernet/mellanox/mlx5/core/en/params.c   |  12 +-
 .../net/ethernet/mellanox/mlx5/core/en/txrx.h |  19 ++
 .../net/ethernet/mellanox/mlx5/core/en_main.c |  71 ++++--
 .../net/ethernet/mellanox/mlx5/core/en_rx.c   | 202 ++++++++----------
 .../ethernet/mellanox/mlx5/core/en_stats.c    |   7 +-
 .../ethernet/mellanox/mlx5/core/en_stats.h    |   6 +-
 include/linux/mlx5/device.h                   |   1 +
 include/linux/mlx5/mlx5_ifc.h                 |  16 +-
 10 files changed, 202 insertions(+), 178 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org June 6, 2024, 3:30 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (main)
by Jakub Kicinski <kuba@kernel.org>:

On Tue, 4 Jun 2024 00:22:05 +0300 you wrote:
> This series enables hardware GRO for ConnectX-7 and newer NICs.
> SHAMPO stands for Split Header And Merge Payload Offload.
> 
> The first part of the series contains important fixes and improvements.
> 
> The second part reworks the HW GRO counters.
> 
> [...]

Here is the summary with links:
  - [net-next,V2,01/14] net/mlx5e: SHAMPO, Use net_prefetch API
    https://git.kernel.org/netdev/net-next/c/4e92d247418c
  - [net-next,V2,02/14] net/mlx5e: SHAMPO, Fix incorrect page release
    https://git.kernel.org/netdev/net-next/c/70bd03b89f20
  - [net-next,V2,03/14] net/mlx5e: SHAMPO, Fix invalid WQ linked list unlink
    https://git.kernel.org/netdev/net-next/c/fba8334721e2
  - [net-next,V2,04/14] net/mlx5e: SHAMPO, Fix FCS config when HW GRO on
    https://git.kernel.org/netdev/net-next/c/a64bbd8c286f
  - [net-next,V2,05/14] net/mlx5e: SHAMPO, Disable gso_size for non GRO packets
    https://git.kernel.org/netdev/net-next/c/083dbb54c480
  - [net-next,V2,06/14] net/mlx5e: SHAMPO, Simplify header page release in teardown
    https://git.kernel.org/netdev/net-next/c/e839ac9a89cb
  - [net-next,V2,07/14] net/mlx5e: SHAMPO, Specialize mlx5e_fill_skb_data()
    https://git.kernel.org/netdev/net-next/c/d34d7d1973c4
  - [net-next,V2,08/14] net/mlx5e: SHAMPO, Skipping on duplicate flush of the same SHAMPO SKB
    https://git.kernel.org/netdev/net-next/c/f5a699e00f04
  - [net-next,V2,09/14] net/mlx5e: SHAMPO, Make GRO counters more precise
    https://git.kernel.org/netdev/net-next/c/8f9eb8bb5c5a
  - [net-next,V2,10/14] net/mlx5e: SHAMPO, Drop rx_gro_match_packets counter
    https://git.kernel.org/netdev/net-next/c/16f448d47a86
  - [net-next,V2,11/14] net/mlx5e: SHAMPO, Add header-only ethtool counters for header data split
    https://git.kernel.org/netdev/net-next/c/e95c5b9e8912
  - [net-next,V2,12/14] net/mlx5e: SHAMPO, Use KSMs instead of KLMs
    https://git.kernel.org/netdev/net-next/c/758191c9ea7b
  - [net-next,V2,13/14] net/mlx5e: SHAMPO, Re-enable HW-GRO
    https://git.kernel.org/netdev/net-next/c/99be56171fa9
  - [net-next,V2,14/14] net/mlx5e: SHAMPO, Coalesce skb fragments to page size
    https://git.kernel.org/netdev/net-next/c/14ae2fd12be8

You are awesome, thank you!