[PATCH v2 09/32] common/cnxk: update age drop statistics
Nithin Dabilpuram
ndabilpuram at marvell.com
Wed May 24 12:03:44 CEST 2023
From: Satha Rao <skoteshwar at marvell.com>
Update age drop statistics. Added telemetry statistics for age drops.
Signed-off-by: Satha Rao <skoteshwar at marvell.com>
---
drivers/common/cnxk/cnxk_telemetry_nix.c | 4 ++++
drivers/common/cnxk/hw/nix.h | 2 ++
drivers/common/cnxk/roc_features.h | 6 ++++++
drivers/common/cnxk/roc_nix.h | 2 ++
drivers/common/cnxk/roc_nix_stats.c | 4 ++++
5 files changed, 18 insertions(+)
diff --git a/drivers/common/cnxk/cnxk_telemetry_nix.c b/drivers/common/cnxk/cnxk_telemetry_nix.c
index b7285cf137..ccae5d7853 100644
--- a/drivers/common/cnxk/cnxk_telemetry_nix.c
+++ b/drivers/common/cnxk/cnxk_telemetry_nix.c
@@ -680,6 +680,10 @@ nix_sq_ctx(volatile void *qctx, struct plt_tel_data *d)
/* W12 */
CNXK_TEL_DICT_BF_PTR(d, ctx, pkts, w12_);
+ /* W13 */
+ CNXK_TEL_DICT_INT(d, ctx, aged_drop_octs, w13_);
+ CNXK_TEL_DICT_INT(d, ctx, aged_drop_pkts, w13_);
+
/* W14 */
CNXK_TEL_DICT_BF_PTR(d, ctx, drop_octs, w14_);
diff --git a/drivers/common/cnxk/hw/nix.h b/drivers/common/cnxk/hw/nix.h
index 0d8f2a5e9b..fbdf1b64f6 100644
--- a/drivers/common/cnxk/hw/nix.h
+++ b/drivers/common/cnxk/hw/nix.h
@@ -363,6 +363,8 @@
#define NIX_LF_SQ_OP_STATUS (0xa30ull)
#define NIX_LF_SQ_OP_DROP_OCTS (0xa40ull)
#define NIX_LF_SQ_OP_DROP_PKTS (0xa50ull)
+#define NIX_LF_SQ_OP_AGE_DROP_OCTS (0xa60ull) /* [CN10K, .) */
+#define NIX_LF_SQ_OP_AGE_DROP_PKTS (0xa70ull) /* [CN10K, .) */
#define NIX_LF_CQ_OP_INT (0xb00ull)
#define NIX_LF_CQ_OP_DOOR (0xb30ull)
#define NIX_LF_CQ_OP_STATUS (0xb40ull)
diff --git a/drivers/common/cnxk/roc_features.h b/drivers/common/cnxk/roc_features.h
index c2893faa65..6fe01015d8 100644
--- a/drivers/common/cnxk/roc_features.h
+++ b/drivers/common/cnxk/roc_features.h
@@ -47,4 +47,10 @@ roc_feature_nix_has_rxchan_multi_bpid(void)
return true;
return false;
}
+
+static inline bool
+roc_feature_nix_has_age_drop_stats(void)
+{
+ return (roc_model_is_cn10kb() || roc_model_is_cn10ka_b0());
+}
#endif
diff --git a/drivers/common/cnxk/roc_nix.h b/drivers/common/cnxk/roc_nix.h
index 2b576f0891..f84e473db6 100644
--- a/drivers/common/cnxk/roc_nix.h
+++ b/drivers/common/cnxk/roc_nix.h
@@ -293,6 +293,8 @@ struct roc_nix_stats_queue {
uint64_t tx_octs;
uint64_t tx_drop_pkts;
uint64_t tx_drop_octs;
+ uint64_t tx_age_drop_pkts;
+ uint64_t tx_age_drop_octs;
};
};
};
diff --git a/drivers/common/cnxk/roc_nix_stats.c b/drivers/common/cnxk/roc_nix_stats.c
index ca0e8ccb4f..1e93191a07 100644
--- a/drivers/common/cnxk/roc_nix_stats.c
+++ b/drivers/common/cnxk/roc_nix_stats.c
@@ -137,6 +137,10 @@ nix_stat_tx_queue_get(struct nix *nix, uint16_t qid,
qstats->tx_octs = qstat_read(nix, qid, NIX_LF_SQ_OP_OCTS);
qstats->tx_drop_pkts = qstat_read(nix, qid, NIX_LF_SQ_OP_DROP_PKTS);
qstats->tx_drop_octs = qstat_read(nix, qid, NIX_LF_SQ_OP_DROP_OCTS);
+ if (roc_feature_nix_has_age_drop_stats()) {
+ qstats->tx_age_drop_pkts = qstat_read(nix, qid, NIX_LF_SQ_OP_AGE_DROP_PKTS);
+ qstats->tx_age_drop_octs = qstat_read(nix, qid, NIX_LF_SQ_OP_AGE_DROP_OCTS);
+ }
}
static int
--
2.25.1
More information about the dev
mailing list