[PATCH 18/31] common/cnxk: enable CQ stashing
Nithin Dabilpuram
ndabilpuram at marvell.com
Fri Aug 11 10:57:52 CEST 2023
From: Kommula Shiva Shankar <kshankar at marvell.com>
This patch enables CQ stashing for better CQE
processing performance
Signed-off-by: Kommula Shiva Shankar <kshankar at marvell.com>
---
drivers/common/cnxk/roc_features.h | 6 ++++++
drivers/common/cnxk/roc_nix.h | 1 +
drivers/common/cnxk/roc_nix_queue.c | 7 +++++++
3 files changed, 14 insertions(+)
diff --git a/drivers/common/cnxk/roc_features.h b/drivers/common/cnxk/roc_features.h
index 815f800e7a..a461ca46c5 100644
--- a/drivers/common/cnxk/roc_features.h
+++ b/drivers/common/cnxk/roc_features.h
@@ -46,6 +46,12 @@ roc_feature_nix_has_reass(void)
return roc_model_is_cn10ka();
}
+static inline bool
+roc_feature_nix_has_cqe_stash(void)
+{
+ return roc_model_is_cn10ka_b0();
+}
+
static inline bool
roc_feature_nix_has_rxchan_multi_bpid(void)
{
diff --git a/drivers/common/cnxk/roc_nix.h b/drivers/common/cnxk/roc_nix.h
index bb55fbe971..5892de6b24 100644
--- a/drivers/common/cnxk/roc_nix.h
+++ b/drivers/common/cnxk/roc_nix.h
@@ -368,6 +368,7 @@ struct roc_nix_cq {
/* Input parameters */
uint16_t qid;
uint32_t nb_desc;
+ uint8_t stash_thresh;
/* End of Input parameters */
uint16_t drop_thresh;
struct roc_nix *roc_nix;
diff --git a/drivers/common/cnxk/roc_nix_queue.c b/drivers/common/cnxk/roc_nix_queue.c
index 5e689d08be..f96d5c3a96 100644
--- a/drivers/common/cnxk/roc_nix_queue.c
+++ b/drivers/common/cnxk/roc_nix_queue.c
@@ -908,6 +908,13 @@ roc_nix_cq_init(struct roc_nix *roc_nix, struct roc_nix_cq *cq)
}
cq_ctx->bp = cq->drop_thresh;
+ if (roc_feature_nix_has_cqe_stash()) {
+ if (cq_ctx->caching) {
+ cq_ctx->stashing = 1;
+ cq_ctx->stash_thresh = cq->stash_thresh;
+ }
+ }
+
rc = mbox_process(mbox);
mbox_put(mbox);
if (rc)
--
2.25.1
More information about the dev
mailing list