From 3eee6b90d9d53f4f15c80f8464e902c4b30f42e8 Mon Sep 17 00:00:00 2001 From: Suraj Jaiswal Date: Thu, 17 Dec 2020 15:48:59 +0530 Subject: [PATCH] net: stmmac: Add per queue ethtool stats Add packet count stats for rx and tx for each queue in ethtool. Change-Id: I5f2c2f68fb87c9cb8436f2c589b0884404e47233 Signed-off-by: Suraj Jaiswal --- drivers/net/ethernet/stmicro/stmmac/common.h | 2 ++ drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 9 +++++++++ drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 2 ++ 3 files changed, 13 insertions(+) diff --git a/drivers/net/ethernet/stmicro/stmmac/common.h b/drivers/net/ethernet/stmicro/stmmac/common.h index 2d4729f390ff..9b5b479e7452 100644 --- a/drivers/net/ethernet/stmicro/stmmac/common.h +++ b/drivers/net/ethernet/stmicro/stmmac/common.h @@ -91,6 +91,8 @@ struct stmmac_extra_stats { unsigned long threshold; unsigned long tx_pkt_n; unsigned long rx_pkt_n; + unsigned long q_tx_pkt_n[MTL_MAX_TX_QUEUES]; + unsigned long q_rx_pkt_n[MTL_MAX_RX_QUEUES]; unsigned long normal_irq_n; unsigned long rx_normal_irq_n; unsigned long napi_poll; diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c index 1a768837ca72..dd6b76fde1a2 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c @@ -82,7 +82,16 @@ static const struct stmmac_stats stmmac_gstrings_stats[] = { STMMAC_STAT(rx_early_irq), STMMAC_STAT(threshold), STMMAC_STAT(tx_pkt_n), + STMMAC_STAT(q_tx_pkt_n[0]), + STMMAC_STAT(q_tx_pkt_n[1]), + STMMAC_STAT(q_tx_pkt_n[2]), + STMMAC_STAT(q_tx_pkt_n[3]), + STMMAC_STAT(q_tx_pkt_n[4]), STMMAC_STAT(rx_pkt_n), + STMMAC_STAT(q_rx_pkt_n[0]), + STMMAC_STAT(q_rx_pkt_n[1]), + STMMAC_STAT(q_rx_pkt_n[2]), + STMMAC_STAT(q_rx_pkt_n[3]), STMMAC_STAT(normal_irq_n), STMMAC_STAT(rx_normal_irq_n), STMMAC_STAT(napi_poll), diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index b690ec2af6bd..097a6d84dff2 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -1999,6 +1999,7 @@ static int stmmac_tx_clean(struct stmmac_priv *priv, int budget, u32 queue) } else { priv->dev->stats.tx_packets++; priv->xstats.tx_pkt_n++; + priv->xstats.q_tx_pkt_n[queue]++; #ifdef CONFIG_MSM_BOOT_TIME_MARKER if (priv->dev->stats.tx_packets == 1) place_marker("M - Ethernet first packet transmitted"); @@ -3802,6 +3803,7 @@ read_again: stmmac_rx_refill(priv, queue); priv->xstats.rx_pkt_n += count; + priv->xstats.q_rx_pkt_n[queue] += count; return count; }