All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats
@ 2026-03-09  9:55 Tariq Toukan
  2026-03-09  9:55 ` [PATCH net-next V2 1/5] net/mlx5e: Report hw_gso_packets and hw_gso_bytes " Tariq Toukan
                   ` (5 more replies)
  0 siblings, 6 replies; 15+ messages in thread
From: Tariq Toukan @ 2026-03-09  9:55 UTC (permalink / raw)
  To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
	David S. Miller
  Cc: Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, netdev,
	linux-rdma, linux-kernel, Gal Pressman, Moshe Shemesh,
	Dragos Tatulea

Hi,

This series by Gal extends the set of counters reported in netdev stats,
by adding:
- hw_gso_packets/bytes
- RX HW-GRO stats
- TX/RX csum
- TX queue stop/wake

Regards,
Tariq

V2:
- Link to V1: https://lore.kernel.org/all/20260204193315.1722983-1-tariqt@nvidia.com/
- Fix GRO counters of patch #2.

Gal Pressman (5):
  net/mlx5e: Report hw_gso_packets and hw_gso_bytes netdev stats
  net/mlx5e: Report RX HW-GRO netdev stats
  net/mlx5e: Report TX csum netdev stats
  net/mlx5e: Report RX csum netdev stats
  net/mlx5e: Report stop and wake TX queue stats

 .../net/ethernet/mellanox/mlx5/core/en_main.c | 68 +++++++++++++++++++
 1 file changed, 68 insertions(+)


base-commit: 0bcac7b11262557c990da1ac564d45777eb6b005
-- 
2.44.0


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

* [PATCH net-next V2 1/5] net/mlx5e: Report hw_gso_packets and hw_gso_bytes netdev stats
  2026-03-09  9:55 [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Tariq Toukan
@ 2026-03-09  9:55 ` Tariq Toukan
  2026-03-11  3:12   ` Jakub Kicinski
  2026-03-09  9:55 ` [PATCH net-next V2 2/5] net/mlx5e: Report RX HW-GRO " Tariq Toukan
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Tariq Toukan @ 2026-03-09  9:55 UTC (permalink / raw)
  To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
	David S. Miller
  Cc: Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, netdev,
	linux-rdma, linux-kernel, Gal Pressman, Moshe Shemesh,
	Dragos Tatulea

From: Gal Pressman <gal@nvidia.com>

Report hardware GSO statistics via the netdev queue stats API by mapping
the existing TSO counters to hw_gso_packets and hw_gso_bytes fields.

Signed-off-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index f7009da94f0b..3e934e269139 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -5479,6 +5479,10 @@ static void mlx5e_get_queue_stats_tx(struct net_device *dev, int i,
 	sq_stats = priv->txq2sq_stats[i];
 	stats->packets = sq_stats->packets;
 	stats->bytes = sq_stats->bytes;
+
+	stats->hw_gso_packets =
+		sq_stats->tso_packets + sq_stats->tso_inner_packets;
+	stats->hw_gso_bytes = sq_stats->tso_bytes + sq_stats->tso_inner_bytes;
 }
 
 static void mlx5e_get_base_stats(struct net_device *dev,
@@ -5518,6 +5522,8 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 
 	tx->packets = 0;
 	tx->bytes = 0;
+	tx->hw_gso_packets = 0;
+	tx->hw_gso_bytes = 0;
 
 	for (i = 0; i < priv->stats_nch; i++) {
 		struct mlx5e_channel_stats *channel_stats = priv->channel_stats[i];
@@ -5544,6 +5550,10 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 
 			tx->packets += sq_stats->packets;
 			tx->bytes += sq_stats->bytes;
+			tx->hw_gso_packets += sq_stats->tso_packets +
+					      sq_stats->tso_inner_packets;
+			tx->hw_gso_bytes += sq_stats->tso_bytes +
+					    sq_stats->tso_inner_bytes;
 		}
 	}
 
@@ -5562,6 +5572,10 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 
 			tx->packets += sq_stats->packets;
 			tx->bytes   += sq_stats->bytes;
+			tx->hw_gso_packets += sq_stats->tso_packets +
+					      sq_stats->tso_inner_packets;
+			tx->hw_gso_bytes += sq_stats->tso_bytes +
+					    sq_stats->tso_inner_bytes;
 		}
 	}
 }
-- 
2.44.0


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

* [PATCH net-next V2 2/5] net/mlx5e: Report RX HW-GRO netdev stats
  2026-03-09  9:55 [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Tariq Toukan
  2026-03-09  9:55 ` [PATCH net-next V2 1/5] net/mlx5e: Report hw_gso_packets and hw_gso_bytes " Tariq Toukan
@ 2026-03-09  9:55 ` Tariq Toukan
  2026-03-11  3:14   ` Jakub Kicinski
  2026-03-09  9:55 ` [PATCH net-next V2 3/5] net/mlx5e: Report TX csum " Tariq Toukan
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Tariq Toukan @ 2026-03-09  9:55 UTC (permalink / raw)
  To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
	David S. Miller
  Cc: Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, netdev,
	linux-rdma, linux-kernel, Gal Pressman, Moshe Shemesh,
	Dragos Tatulea

From: Gal Pressman <gal@nvidia.com>

Report RX hardware GRO statistics via the netdev queue stats API by
mapping the existing gro_packets, gro_bytes and gro_skbs counters to the
hw_gro_wire_packets, hw_gro_wire_bytes and hw_gro_packets fields.

Signed-off-by: Gal Pressman <gal@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 3e934e269139..f20fec154d47 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -5461,6 +5461,11 @@ static void mlx5e_get_queue_stats_rx(struct net_device *dev, int i,
 	stats->bytes = rq_stats->bytes + xskrq_stats->bytes;
 	stats->alloc_fail = rq_stats->buff_alloc_err +
 			    xskrq_stats->buff_alloc_err;
+
+	stats->hw_gro_packets = rq_stats->gro_skbs + xskrq_stats->gro_skbs;
+	stats->hw_gro_wire_packets =
+		rq_stats->gro_packets + xskrq_stats->gro_packets;
+	stats->hw_gro_wire_bytes = rq_stats->gro_bytes + xskrq_stats->gro_bytes;
 }
 
 static void mlx5e_get_queue_stats_tx(struct net_device *dev, int i,
@@ -5497,6 +5502,9 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 		rx->packets = 0;
 		rx->bytes = 0;
 		rx->alloc_fail = 0;
+		rx->hw_gro_packets = 0;
+		rx->hw_gro_wire_packets = 0;
+		rx->hw_gro_wire_bytes = 0;
 
 		for (i = priv->channels.params.num_channels; i < priv->stats_nch; i++) {
 			struct netdev_queue_stats_rx rx_i = {0};
@@ -5506,6 +5514,9 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 			rx->packets += rx_i.packets;
 			rx->bytes += rx_i.bytes;
 			rx->alloc_fail += rx_i.alloc_fail;
+			rx->hw_gro_packets += rx_i.hw_gro_packets;
+			rx->hw_gro_wire_packets += rx_i.hw_gro_wire_packets;
+			rx->hw_gro_wire_bytes += rx_i.hw_gro_wire_bytes;
 		}
 
 		/* always report PTP RX stats from base as there is no
@@ -5517,6 +5528,9 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 
 			rx->packets += rq_stats->packets;
 			rx->bytes += rq_stats->bytes;
+			rx->hw_gro_packets += rq_stats->gro_skbs;
+			rx->hw_gro_wire_packets += rq_stats->gro_packets;
+			rx->hw_gro_wire_bytes += rq_stats->gro_bytes;
 		}
 	}
 
-- 
2.44.0


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

* [PATCH net-next V2 3/5] net/mlx5e: Report TX csum netdev stats
  2026-03-09  9:55 [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Tariq Toukan
  2026-03-09  9:55 ` [PATCH net-next V2 1/5] net/mlx5e: Report hw_gso_packets and hw_gso_bytes " Tariq Toukan
  2026-03-09  9:55 ` [PATCH net-next V2 2/5] net/mlx5e: Report RX HW-GRO " Tariq Toukan
@ 2026-03-09  9:55 ` Tariq Toukan
  2026-03-11  3:18   ` Jakub Kicinski
  2026-03-09  9:55 ` [PATCH net-next V2 4/5] net/mlx5e: Report RX " Tariq Toukan
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 15+ messages in thread
From: Tariq Toukan @ 2026-03-09  9:55 UTC (permalink / raw)
  To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
	David S. Miller
  Cc: Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, netdev,
	linux-rdma, linux-kernel, Gal Pressman, Moshe Shemesh,
	Dragos Tatulea

From: Gal Pressman <gal@nvidia.com>

Report TX checksum statistics via the netdev queue stats API by mapping
the existing csum_none and csum_partial counters to the csum_none and
needs_csum fields.

Signed-off-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index f20fec154d47..e2f98b1f8636 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -5488,6 +5488,10 @@ static void mlx5e_get_queue_stats_tx(struct net_device *dev, int i,
 	stats->hw_gso_packets =
 		sq_stats->tso_packets + sq_stats->tso_inner_packets;
 	stats->hw_gso_bytes = sq_stats->tso_bytes + sq_stats->tso_inner_bytes;
+
+	stats->csum_none = sq_stats->csum_none;
+	stats->needs_csum =
+		sq_stats->csum_partial + sq_stats->csum_partial_inner;
 }
 
 static void mlx5e_get_base_stats(struct net_device *dev,
@@ -5538,6 +5542,8 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 	tx->bytes = 0;
 	tx->hw_gso_packets = 0;
 	tx->hw_gso_bytes = 0;
+	tx->csum_none = 0;
+	tx->needs_csum = 0;
 
 	for (i = 0; i < priv->stats_nch; i++) {
 		struct mlx5e_channel_stats *channel_stats = priv->channel_stats[i];
@@ -5568,6 +5574,9 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 					      sq_stats->tso_inner_packets;
 			tx->hw_gso_bytes += sq_stats->tso_bytes +
 					    sq_stats->tso_inner_bytes;
+			tx->csum_none += sq_stats->csum_none;
+			tx->needs_csum += sq_stats->csum_partial +
+					  sq_stats->csum_partial_inner;
 		}
 	}
 
@@ -5590,6 +5599,9 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 					      sq_stats->tso_inner_packets;
 			tx->hw_gso_bytes += sq_stats->tso_bytes +
 					    sq_stats->tso_inner_bytes;
+			tx->csum_none += sq_stats->csum_none;
+			tx->needs_csum += sq_stats->csum_partial +
+					  sq_stats->csum_partial_inner;
 		}
 	}
 }
-- 
2.44.0


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

* [PATCH net-next V2 4/5] net/mlx5e: Report RX csum netdev stats
  2026-03-09  9:55 [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Tariq Toukan
                   ` (2 preceding siblings ...)
  2026-03-09  9:55 ` [PATCH net-next V2 3/5] net/mlx5e: Report TX csum " Tariq Toukan
@ 2026-03-09  9:55 ` Tariq Toukan
  2026-03-11  3:20   ` Jakub Kicinski
  2026-03-09  9:55 ` [PATCH net-next V2 5/5] net/mlx5e: Report stop and wake TX queue stats Tariq Toukan
  2026-03-10 17:38 ` [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Simon Horman
  5 siblings, 1 reply; 15+ messages in thread
From: Tariq Toukan @ 2026-03-09  9:55 UTC (permalink / raw)
  To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
	David S. Miller
  Cc: Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, netdev,
	linux-rdma, linux-kernel, Gal Pressman, Moshe Shemesh,
	Dragos Tatulea

From: Gal Pressman <gal@nvidia.com>

Report RX checksum statistics via the netdev queue stats API by mapping
the existing csum_complete, csum_unnecessary, csum_unnecessary_inner,
and csum_none counters to the csum_complete, csum_unnecessary and
csum_none fields.

Signed-off-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
---
 .../net/ethernet/mellanox/mlx5/core/en_main.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index e2f98b1f8636..a03fbf1cb362 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -5466,6 +5466,14 @@ static void mlx5e_get_queue_stats_rx(struct net_device *dev, int i,
 	stats->hw_gro_wire_packets =
 		rq_stats->gro_packets + xskrq_stats->gro_packets;
 	stats->hw_gro_wire_bytes = rq_stats->gro_bytes + xskrq_stats->gro_bytes;
+
+	stats->csum_complete =
+		rq_stats->csum_complete + xskrq_stats->csum_complete;
+	stats->csum_unnecessary = rq_stats->csum_unnecessary +
+				  xskrq_stats->csum_unnecessary +
+				  rq_stats->csum_unnecessary_inner +
+				  xskrq_stats->csum_unnecessary_inner;
+	stats->csum_none = rq_stats->csum_none + xskrq_stats->csum_none;
 }
 
 static void mlx5e_get_queue_stats_tx(struct net_device *dev, int i,
@@ -5509,6 +5517,9 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 		rx->hw_gro_packets = 0;
 		rx->hw_gro_wire_packets = 0;
 		rx->hw_gro_wire_bytes = 0;
+		rx->csum_complete = 0;
+		rx->csum_unnecessary = 0;
+		rx->csum_none = 0;
 
 		for (i = priv->channels.params.num_channels; i < priv->stats_nch; i++) {
 			struct netdev_queue_stats_rx rx_i = {0};
@@ -5521,6 +5532,9 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 			rx->hw_gro_packets += rx_i.hw_gro_packets;
 			rx->hw_gro_wire_packets += rx_i.hw_gro_wire_packets;
 			rx->hw_gro_wire_bytes += rx_i.hw_gro_wire_bytes;
+			rx->csum_complete += rx_i.csum_complete;
+			rx->csum_unnecessary += rx_i.csum_unnecessary;
+			rx->csum_none += rx_i.csum_none;
 		}
 
 		/* always report PTP RX stats from base as there is no
@@ -5535,6 +5549,11 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 			rx->hw_gro_packets += rq_stats->gro_skbs;
 			rx->hw_gro_wire_packets += rq_stats->gro_packets;
 			rx->hw_gro_wire_bytes += rq_stats->gro_bytes;
+			rx->csum_complete += rq_stats->csum_complete;
+			rx->csum_unnecessary +=
+				rq_stats->csum_unnecessary +
+				rq_stats->csum_unnecessary_inner;
+			rx->csum_none += rq_stats->csum_none;
 		}
 	}
 
-- 
2.44.0


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

* [PATCH net-next V2 5/5] net/mlx5e: Report stop and wake TX queue stats
  2026-03-09  9:55 [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Tariq Toukan
                   ` (3 preceding siblings ...)
  2026-03-09  9:55 ` [PATCH net-next V2 4/5] net/mlx5e: Report RX " Tariq Toukan
@ 2026-03-09  9:55 ` Tariq Toukan
  2026-03-10 17:38 ` [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Simon Horman
  5 siblings, 0 replies; 15+ messages in thread
From: Tariq Toukan @ 2026-03-09  9:55 UTC (permalink / raw)
  To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
	David S. Miller
  Cc: Saeed Mahameed, Tariq Toukan, Mark Bloch, Leon Romanovsky, netdev,
	linux-rdma, linux-kernel, Gal Pressman, Moshe Shemesh,
	Dragos Tatulea

From: Gal Pressman <gal@nvidia.com>

Report TX queue stop and wake statistics via the netdev queue stats API
by mapping the existing stopped and wake counters to the stop and wake
fields.

Signed-off-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index a03fbf1cb362..ebab82297231 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -5500,6 +5500,9 @@ static void mlx5e_get_queue_stats_tx(struct net_device *dev, int i,
 	stats->csum_none = sq_stats->csum_none;
 	stats->needs_csum =
 		sq_stats->csum_partial + sq_stats->csum_partial_inner;
+
+	stats->stop = sq_stats->stopped;
+	stats->wake = sq_stats->wake;
 }
 
 static void mlx5e_get_base_stats(struct net_device *dev,
@@ -5563,6 +5566,8 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 	tx->hw_gso_bytes = 0;
 	tx->csum_none = 0;
 	tx->needs_csum = 0;
+	tx->stop = 0;
+	tx->wake = 0;
 
 	for (i = 0; i < priv->stats_nch; i++) {
 		struct mlx5e_channel_stats *channel_stats = priv->channel_stats[i];
@@ -5596,6 +5601,8 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 			tx->csum_none += sq_stats->csum_none;
 			tx->needs_csum += sq_stats->csum_partial +
 					  sq_stats->csum_partial_inner;
+			tx->stop += sq_stats->stopped;
+			tx->wake += sq_stats->wake;
 		}
 	}
 
@@ -5621,6 +5628,8 @@ static void mlx5e_get_base_stats(struct net_device *dev,
 			tx->csum_none += sq_stats->csum_none;
 			tx->needs_csum += sq_stats->csum_partial +
 					  sq_stats->csum_partial_inner;
+			tx->stop += sq_stats->stopped;
+			tx->wake += sq_stats->wake;
 		}
 	}
 }
-- 
2.44.0


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

* Re: [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats
  2026-03-09  9:55 [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Tariq Toukan
                   ` (4 preceding siblings ...)
  2026-03-09  9:55 ` [PATCH net-next V2 5/5] net/mlx5e: Report stop and wake TX queue stats Tariq Toukan
@ 2026-03-10 17:38 ` Simon Horman
  5 siblings, 0 replies; 15+ messages in thread
From: Simon Horman @ 2026-03-10 17:38 UTC (permalink / raw)
  To: Tariq Toukan
  Cc: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
	David S. Miller, Saeed Mahameed, Mark Bloch, Leon Romanovsky,
	netdev, linux-rdma, linux-kernel, Gal Pressman, Moshe Shemesh,
	Dragos Tatulea

On Mon, Mar 09, 2026 at 11:55:14AM +0200, Tariq Toukan wrote:
> Hi,
> 
> This series by Gal extends the set of counters reported in netdev stats,
> by adding:
> - hw_gso_packets/bytes
> - RX HW-GRO stats
> - TX/RX csum
> - TX queue stop/wake
> 
> Regards,
> Tariq
> 
> V2:
> - Link to V1: https://lore.kernel.org/all/20260204193315.1722983-1-tariqt@nvidia.com/
> - Fix GRO counters of patch #2.

Thanks.

For the series,

Reviewed-by: Simon Horman <horms@kernel.org>

...

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

* Re: [PATCH net-next V2 1/5] net/mlx5e: Report hw_gso_packets and hw_gso_bytes netdev stats
  2026-03-09  9:55 ` [PATCH net-next V2 1/5] net/mlx5e: Report hw_gso_packets and hw_gso_bytes " Tariq Toukan
@ 2026-03-11  3:12   ` Jakub Kicinski
  2026-03-12  9:49     ` Gal Pressman
  0 siblings, 1 reply; 15+ messages in thread
From: Jakub Kicinski @ 2026-03-11  3:12 UTC (permalink / raw)
  To: Tariq Toukan
  Cc: Eric Dumazet, Paolo Abeni, Andrew Lunn, David S. Miller,
	Saeed Mahameed, Mark Bloch, Leon Romanovsky, netdev, linux-rdma,
	linux-kernel, Gal Pressman, Moshe Shemesh, Dragos Tatulea

On Mon, 9 Mar 2026 11:55:15 +0200 Tariq Toukan wrote:
> From: Gal Pressman <gal@nvidia.com>
> 
> Report hardware GSO statistics via the netdev queue stats API by mapping
> the existing TSO counters to hw_gso_packets and hw_gso_bytes fields.

The docs on our stats are based on the virtio spec:
https://github.com/oasis-tcs/virtio-spec/commit/42f389989823039724f95bbbd243291ab0064f82
which is not very detailed, but to me "bytes of TSO packets"
is a sum of skb->len of those packets. And mlx5 seems to only
be counting payloads??

Maybe given the ambiguity / mismatch report just the packet
count? IDK how useful the bytes are in real life anyway.

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

* Re: [PATCH net-next V2 2/5] net/mlx5e: Report RX HW-GRO netdev stats
  2026-03-09  9:55 ` [PATCH net-next V2 2/5] net/mlx5e: Report RX HW-GRO " Tariq Toukan
@ 2026-03-11  3:14   ` Jakub Kicinski
  0 siblings, 0 replies; 15+ messages in thread
From: Jakub Kicinski @ 2026-03-11  3:14 UTC (permalink / raw)
  To: Tariq Toukan
  Cc: Eric Dumazet, Paolo Abeni, Andrew Lunn, David S. Miller,
	Saeed Mahameed, Mark Bloch, Leon Romanovsky, netdev, linux-rdma,
	linux-kernel, Gal Pressman, Moshe Shemesh, Dragos Tatulea

On Mon, 9 Mar 2026 11:55:16 +0200 Tariq Toukan wrote:
> Report RX hardware GRO statistics via the netdev queue stats API by
> mapping the existing gro_packets, gro_bytes and gro_skbs counters to the
> hw_gro_wire_packets, hw_gro_wire_bytes and hw_gro_packets fields.

This looks right now:

Reviewed-by: Jakub Kicinski <kuba@kernel.org>

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

* Re: [PATCH net-next V2 3/5] net/mlx5e: Report TX csum netdev stats
  2026-03-09  9:55 ` [PATCH net-next V2 3/5] net/mlx5e: Report TX csum " Tariq Toukan
@ 2026-03-11  3:18   ` Jakub Kicinski
  2026-03-12  9:50     ` Gal Pressman
  0 siblings, 1 reply; 15+ messages in thread
From: Jakub Kicinski @ 2026-03-11  3:18 UTC (permalink / raw)
  To: Tariq Toukan
  Cc: Eric Dumazet, Paolo Abeni, Andrew Lunn, David S. Miller,
	Saeed Mahameed, Mark Bloch, Leon Romanovsky, netdev, linux-rdma,
	linux-kernel, Gal Pressman, Moshe Shemesh, Dragos Tatulea

On Mon, 9 Mar 2026 11:55:17 +0200 Tariq Toukan wrote:
> Report TX checksum statistics via the netdev queue stats API by mapping
> the existing csum_none and csum_partial counters to the csum_none and
> needs_csum fields.

      -
        name: tx-needs-csum
        doc: |
          Number of packets that required the device to calculate the checksum.
          This counter includes the number of GSO wire packets for which device
          calculated the L4 checksum.
        type: uint

Looking at drivers currently implementing this it seems like the idea
was to avoid having to increment two counters in the drivers, given
that TSO always implies csum offload

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

* Re: [PATCH net-next V2 4/5] net/mlx5e: Report RX csum netdev stats
  2026-03-09  9:55 ` [PATCH net-next V2 4/5] net/mlx5e: Report RX " Tariq Toukan
@ 2026-03-11  3:20   ` Jakub Kicinski
  2026-03-12  9:50     ` Gal Pressman
  0 siblings, 1 reply; 15+ messages in thread
From: Jakub Kicinski @ 2026-03-11  3:20 UTC (permalink / raw)
  To: Tariq Toukan
  Cc: Eric Dumazet, Paolo Abeni, Andrew Lunn, David S. Miller,
	Saeed Mahameed, Mark Bloch, Leon Romanovsky, netdev, linux-rdma,
	linux-kernel, Gal Pressman, Moshe Shemesh, Dragos Tatulea

On Mon, 9 Mar 2026 11:55:18 +0200 Tariq Toukan wrote:
> Report RX checksum statistics via the netdev queue stats API by mapping
> the existing csum_complete, csum_unnecessary, csum_unnecessary_inner,
> and csum_none counters to the csum_complete, csum_unnecessary and
> csum_none fields.

The doc doesnt say clearly but I'd assume this should also count wire
frames for consistency with the Tx one

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

* Re: [PATCH net-next V2 1/5] net/mlx5e: Report hw_gso_packets and hw_gso_bytes netdev stats
  2026-03-11  3:12   ` Jakub Kicinski
@ 2026-03-12  9:49     ` Gal Pressman
  0 siblings, 0 replies; 15+ messages in thread
From: Gal Pressman @ 2026-03-12  9:49 UTC (permalink / raw)
  To: Jakub Kicinski, Tariq Toukan
  Cc: Eric Dumazet, Paolo Abeni, Andrew Lunn, David S. Miller,
	Saeed Mahameed, Mark Bloch, Leon Romanovsky, netdev, linux-rdma,
	linux-kernel, Moshe Shemesh, Dragos Tatulea

Thanks for the review on the series Jakub!

On 11/03/2026 5:12, Jakub Kicinski wrote:
> On Mon, 9 Mar 2026 11:55:15 +0200 Tariq Toukan wrote:
>> From: Gal Pressman <gal@nvidia.com>
>>
>> Report hardware GSO statistics via the netdev queue stats API by mapping
>> the existing TSO counters to hw_gso_packets and hw_gso_bytes fields.
> 
> The docs on our stats are based on the virtio spec:
> https://github.com/oasis-tcs/virtio-spec/commit/42f389989823039724f95bbbd243291ab0064f82
> which is not very detailed, but to me "bytes of TSO packets"
> is a sum of skb->len of those packets. And mlx5 seems to only
> be counting payloads??

TBH, I'm surprised this is our behavior, not intuitive at all..

I'm inclined to just change it to account for the headers, hope it won't
break anything.

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

* Re: [PATCH net-next V2 3/5] net/mlx5e: Report TX csum netdev stats
  2026-03-11  3:18   ` Jakub Kicinski
@ 2026-03-12  9:50     ` Gal Pressman
  2026-03-12 14:22       ` Jakub Kicinski
  0 siblings, 1 reply; 15+ messages in thread
From: Gal Pressman @ 2026-03-12  9:50 UTC (permalink / raw)
  To: Jakub Kicinski, Tariq Toukan
  Cc: Eric Dumazet, Paolo Abeni, Andrew Lunn, David S. Miller,
	Saeed Mahameed, Mark Bloch, Leon Romanovsky, netdev, linux-rdma,
	linux-kernel, Moshe Shemesh, Dragos Tatulea

On 11/03/2026 5:18, Jakub Kicinski wrote:
> On Mon, 9 Mar 2026 11:55:17 +0200 Tariq Toukan wrote:
>> Report TX checksum statistics via the netdev queue stats API by mapping
>> the existing csum_none and csum_partial counters to the csum_none and
>> needs_csum fields.
> 
>       -
>         name: tx-needs-csum
>         doc: |
>           Number of packets that required the device to calculate the checksum.
>           This counter includes the number of GSO wire packets for which device
>           calculated the L4 checksum.
>         type: uint

Yea, we count GSO packets as one, so not a direct fit.

> 
> Looking at drivers currently implementing this it seems like the idea
> was to avoid having to increment two counters in the drivers, given
> that TSO always implies csum offload

I don't think I understand what you're trying to say here.

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

* Re: [PATCH net-next V2 4/5] net/mlx5e: Report RX csum netdev stats
  2026-03-11  3:20   ` Jakub Kicinski
@ 2026-03-12  9:50     ` Gal Pressman
  0 siblings, 0 replies; 15+ messages in thread
From: Gal Pressman @ 2026-03-12  9:50 UTC (permalink / raw)
  To: Jakub Kicinski, Tariq Toukan
  Cc: Eric Dumazet, Paolo Abeni, Andrew Lunn, David S. Miller,
	Saeed Mahameed, Mark Bloch, Leon Romanovsky, netdev, linux-rdma,
	linux-kernel, Moshe Shemesh, Dragos Tatulea

On 11/03/2026 5:20, Jakub Kicinski wrote:
> On Mon, 9 Mar 2026 11:55:18 +0200 Tariq Toukan wrote:
>> Report RX checksum statistics via the netdev queue stats API by mapping
>> the existing csum_complete, csum_unnecessary, csum_unnecessary_inner,
>> and csum_none counters to the csum_complete, csum_unnecessary and
>> csum_none fields.
> 
> The doc doesnt say clearly but I'd assume this should also count wire
> frames for consistency with the Tx one

Makes sense, so this also doesn't fit naturally.

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

* Re: [PATCH net-next V2 3/5] net/mlx5e: Report TX csum netdev stats
  2026-03-12  9:50     ` Gal Pressman
@ 2026-03-12 14:22       ` Jakub Kicinski
  0 siblings, 0 replies; 15+ messages in thread
From: Jakub Kicinski @ 2026-03-12 14:22 UTC (permalink / raw)
  To: Gal Pressman
  Cc: Tariq Toukan, Eric Dumazet, Paolo Abeni, Andrew Lunn,
	David S. Miller, Saeed Mahameed, Mark Bloch, Leon Romanovsky,
	netdev, linux-rdma, linux-kernel, Moshe Shemesh, Dragos Tatulea

On Thu, 12 Mar 2026 11:50:10 +0200 Gal Pressman wrote:
> > Looking at drivers currently implementing this it seems like the idea
> > was to avoid having to increment two counters in the drivers, given
> > that TSO always implies csum offload  
> 
> I don't think I understand what you're trying to say here.

The existing drivers seem to do something like:

	tx->needs_csum += just_csum + tso_segs;

IOW for packets that need tso/uso they don't increment any csum stat 
on the fastpath.

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

end of thread, other threads:[~2026-03-12 14:22 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-09  9:55 [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Tariq Toukan
2026-03-09  9:55 ` [PATCH net-next V2 1/5] net/mlx5e: Report hw_gso_packets and hw_gso_bytes " Tariq Toukan
2026-03-11  3:12   ` Jakub Kicinski
2026-03-12  9:49     ` Gal Pressman
2026-03-09  9:55 ` [PATCH net-next V2 2/5] net/mlx5e: Report RX HW-GRO " Tariq Toukan
2026-03-11  3:14   ` Jakub Kicinski
2026-03-09  9:55 ` [PATCH net-next V2 3/5] net/mlx5e: Report TX csum " Tariq Toukan
2026-03-11  3:18   ` Jakub Kicinski
2026-03-12  9:50     ` Gal Pressman
2026-03-12 14:22       ` Jakub Kicinski
2026-03-09  9:55 ` [PATCH net-next V2 4/5] net/mlx5e: Report RX " Tariq Toukan
2026-03-11  3:20   ` Jakub Kicinski
2026-03-12  9:50     ` Gal Pressman
2026-03-09  9:55 ` [PATCH net-next V2 5/5] net/mlx5e: Report stop and wake TX queue stats Tariq Toukan
2026-03-10 17:38 ` [PATCH net-next V2 0/5] net/mlx5e: Report more netdev stats Simon Horman

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.