]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: stmmac: tc: Add HLBS drop count to taprio stats
authorRohan G Thomas <rohan.g.thomas@altera.com>
Thu, 25 Sep 2025 14:06:14 +0000 (22:06 +0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 30 Sep 2025 00:49:34 +0000 (17:49 -0700)
Add the count of the frames dropped by Head-Of-Line Blocking due to
Scheduling(HLBS) error to taprio window drop count stats.

Signed-off-by: Rohan G Thomas <rohan.g.thomas@altera.com>
Reviewed-by: Matthew Gerlach <matthew.gerlach@altera.com>
Reviewed-by: Furong Xu <0x1207@gmail.com>
Link: https://patch.msgid.link/20250925-hlbs_2-v3-2-3b39472776c2@altera.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/stmicro/stmmac/stmmac_tc.c

index 694d6ee1438197bd4434af6e9b78f022e94ff98f..97e89a604abd7a01bb8e904c38f10716e0a911c1 100644 (file)
@@ -1080,6 +1080,7 @@ disable:
                for (i = 0; i < priv->plat->tx_queues_to_use; i++) {
                        priv->xstats.max_sdu_txq_drop[i] = 0;
                        priv->xstats.mtl_est_txq_hlbf[i] = 0;
+                       priv->xstats.mtl_est_txq_hlbs[i] = 0;
                }
                mutex_unlock(&priv->est_lock);
        }
@@ -1097,7 +1098,8 @@ static void tc_taprio_stats(struct stmmac_priv *priv,
 
        for (i = 0; i < priv->plat->tx_queues_to_use; i++)
                window_drops += priv->xstats.max_sdu_txq_drop[i] +
-                               priv->xstats.mtl_est_txq_hlbf[i];
+                               priv->xstats.mtl_est_txq_hlbf[i] +
+                               priv->xstats.mtl_est_txq_hlbs[i];
        qopt->stats.window_drops = window_drops;
 
        /* Transmission overrun doesn't happen for stmmac, hence always 0 */
@@ -1111,7 +1113,8 @@ static void tc_taprio_queue_stats(struct stmmac_priv *priv,
        int queue = qopt->queue_stats.queue;
 
        q_stats->stats.window_drops = priv->xstats.max_sdu_txq_drop[queue] +
-                                     priv->xstats.mtl_est_txq_hlbf[queue];
+                                     priv->xstats.mtl_est_txq_hlbf[queue] +
+                                     priv->xstats.mtl_est_txq_hlbs[queue];
 
        /* Transmission overrun doesn't happen for stmmac, hence always 0 */
        q_stats->stats.tx_overruns = 0;