[dpdk-stable] patch 'net/octeontx2: fix flow creation limit on CN98xx' has been queued to stable release 19.11.10

christian.ehrhardt at canonical.com christian.ehrhardt at canonical.com
Tue Aug 10 17:39:03 CEST 2021


Hi,

FYI, your patch has been queued to stable release 19.11.10

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 08/12/21. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/65a9e807b302fc3842bde7684c20449fa9b16281

Thanks.

Christian Ehrhardt <christian.ehrhardt at canonical.com>

---
>From 65a9e807b302fc3842bde7684c20449fa9b16281 Mon Sep 17 00:00:00 2001
From: Satheesh Paul <psatheesh at marvell.com>
Date: Tue, 1 Jun 2021 15:55:51 +0530
Subject: [PATCH] net/octeontx2: fix flow creation limit on CN98xx

[ upstream commit b65db6a879bd09799b96aed09a49458ae1b3644b ]

CN96xx and CN98xx have 4096 and 16384 MCAM entries respectively.
Aligning the code with the same numbers.

Fixes: 092b3834185 ("net/octeontx2: add flow init and fini")

Signed-off-by: Satheesh Paul <psatheesh at marvell.com>
Acked-by: Jerin Jacob <jerinj at marvell.com>
---
 drivers/common/octeontx2/otx2_dev.h |  3 +++
 drivers/net/octeontx2/otx2_flow.c   | 16 ++++++++++++++--
 drivers/net/octeontx2/otx2_flow.h   |  1 -
 3 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/drivers/common/octeontx2/otx2_dev.h b/drivers/common/octeontx2/otx2_dev.h
index 7d9839c334..61d8ff6e41 100644
--- a/drivers/common/octeontx2/otx2_dev.h
+++ b/drivers/common/octeontx2/otx2_dev.h
@@ -46,6 +46,9 @@
 	((RVU_PCI_REV_MAJOR(otx2_dev_revid(dev)) == 0x0) &&	\
 	 (RVU_PCI_REV_MIDR_ID(otx2_dev_revid(dev)) == 0x0))
 
+#define otx2_dev_is_98xx(dev)                                   \
+	 (RVU_PCI_REV_MIDR_ID(otx2_dev_revid(dev)) == 0x3)
+
 struct otx2_dev;
 
 /* Link status callback */
diff --git a/drivers/net/octeontx2/otx2_flow.c b/drivers/net/octeontx2/otx2_flow.c
index c9886c9705..0930244da4 100644
--- a/drivers/net/octeontx2/otx2_flow.c
+++ b/drivers/net/octeontx2/otx2_flow.c
@@ -810,12 +810,23 @@ done:
 	return rc;
 }
 
+#define OTX2_MCAM_TOT_ENTRIES_96XX (4096)
+#define OTX2_MCAM_TOT_ENTRIES_98XX (16384)
+
+static int otx2_mcam_tot_entries(struct otx2_eth_dev *dev)
+{
+	if (otx2_dev_is_98xx(dev))
+		return OTX2_MCAM_TOT_ENTRIES_98XX;
+	else
+		return OTX2_MCAM_TOT_ENTRIES_96XX;
+}
+
 int
 otx2_flow_init(struct otx2_eth_dev *hw)
 {
 	uint8_t *mem = NULL, *nix_mem = NULL, *npc_mem = NULL;
 	struct otx2_npc_flow_info *npc = &hw->npc_flow;
-	uint32_t bmap_sz;
+	uint32_t bmap_sz, tot_mcam_entries = 0;
 	int rc = 0, idx;
 
 	rc = flow_fetch_kex_cfg(hw);
@@ -826,7 +837,8 @@ otx2_flow_init(struct otx2_eth_dev *hw)
 
 	rte_atomic32_init(&npc->mark_actions);
 
-	npc->mcam_entries = NPC_MCAM_TOT_ENTRIES >> npc->keyw[NPC_MCAM_RX];
+	tot_mcam_entries = otx2_mcam_tot_entries(hw);
+	npc->mcam_entries = tot_mcam_entries >> npc->keyw[NPC_MCAM_RX];
 	/* Free, free_rev, live and live_rev entries */
 	bmap_sz = rte_bitmap_get_memory_footprint(npc->mcam_entries);
 	mem = rte_zmalloc(NULL, 4 * bmap_sz * npc->flow_max_priority,
diff --git a/drivers/net/octeontx2/otx2_flow.h b/drivers/net/octeontx2/otx2_flow.h
index df78f41d3b..e618664ca7 100644
--- a/drivers/net/octeontx2/otx2_flow.h
+++ b/drivers/net/octeontx2/otx2_flow.h
@@ -34,7 +34,6 @@ enum {
 /* 32 bytes from LDATA_CFG & 32 bytes from FLAGS_CFG */
 #define NPC_MAX_EXTRACT_DATA_LEN	(64)
 #define NPC_LDATA_LFLAG_LEN		(16)
-#define NPC_MCAM_TOT_ENTRIES		(4096)
 #define NPC_MAX_KEY_NIBBLES		(31)
 /* Nibble offsets */
 #define NPC_LAYER_KEYX_SZ		(3)
-- 
2.32.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-08-10 15:11:13.964653538 +0200
+++ 0023-net-octeontx2-fix-flow-creation-limit-on-CN98xx.patch	2021-08-10 15:11:12.926637435 +0200
@@ -1 +1 @@
-From b65db6a879bd09799b96aed09a49458ae1b3644b Mon Sep 17 00:00:00 2001
+From 65a9e807b302fc3842bde7684c20449fa9b16281 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b65db6a879bd09799b96aed09a49458ae1b3644b ]
+
@@ -10 +11,0 @@
-Cc: stable at dpdk.org
@@ -21 +22 @@
-index cd4fe517db..9d8dcca791 100644
+index 7d9839c334..61d8ff6e41 100644
@@ -24,2 +25,2 @@
-@@ -55,6 +55,9 @@
- 	 (RVU_PCI_REV_MINOR(otx2_dev_revid(dev)) == 0x0) &&	\
+@@ -46,6 +46,9 @@
+ 	((RVU_PCI_REV_MAJOR(otx2_dev_revid(dev)) == 0x0) &&	\
@@ -35 +36 @@
-index 1c90d753ff..6df0732189 100644
+index c9886c9705..0930244da4 100644
@@ -38 +39 @@
-@@ -1003,12 +1003,23 @@ done:
+@@ -810,12 +810,23 @@ done:
@@ -63 +64,2 @@
-@@ -1020,7 +1031,8 @@ otx2_flow_init(struct otx2_eth_dev *hw)
+@@ -826,7 +837,8 @@ otx2_flow_init(struct otx2_eth_dev *hw)
+ 
@@ -65 +66,0 @@
- 	npc->vtag_actions = 0;
@@ -74 +75 @@
-index 82a5064d90..790e6ef1e8 100644
+index df78f41d3b..e618664ca7 100644
@@ -77 +78 @@
-@@ -35,7 +35,6 @@ enum {
+@@ -34,7 +34,6 @@ enum {


More information about the stable mailing list