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 <jsuraj@codeaurora.org>
This commit is contained in:
Suraj Jaiswal 2020-12-17 15:48:59 +05:30 • committed by Gerrit - the friendly Code Review server
commit 3eee6b90d9
3 changed files with 13 additions and 0 deletions

View file

@ -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;

View file

@ -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),

View file

@ -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;
}