[dpdk-stable] patch 'net/qede: fix port reconfiguration' has been queued to stable release 19.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Fri May 22 11:40:00 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/24/20. 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.

Thanks.

Luca Boccassi

---
>From bbcbd194d8262a13cab44d3b4cb1d9bdd073b20a Mon Sep 17 00:00:00 2001
From: Rasesh Mody <rmody at marvell.com>
Date: Thu, 14 May 2020 23:34:19 -0700
Subject: [PATCH] net/qede: fix port reconfiguration

[ upstream commit 05ccc9d8a9f9338b1cb4ae515c60c60f8b7f518d ]

This patch fixes deallocation of all fastpath resources unconditionally,
when re-configuring the device. When re-allocating resources PMD depends
on application to explicitly setup the Rx/Tx queue.

Deallocation of all the resources is only required if the Rx/Tx queue
configuration changes. For other scenarios like KNI MTU change we'd keep
existing configuration.

Fixes: 8de0c4201926 ("net/qede: fix odd number of queues usage in 100G mode")
Fixes: dd28bc8c6ef4 ("net/qede: fix VF port creation sequence")

Signed-off-by: Rasesh Mody <rmody at marvell.com>
Signed-off-by: Igor Russkikh <irusskikh at marvell.com>
---
 drivers/net/qede/qede_ethdev.c | 19 +++++++++++++------
 drivers/net/qede/qede_rxtx.c   |  4 +++-
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index 4b3f506506..2a1c82ac9a 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -1191,6 +1191,8 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev)
 	struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev);
 	struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
 	struct rte_eth_rxmode *rxmode = &eth_dev->data->dev_conf.rxmode;
+	uint8_t num_rxqs;
+	uint8_t num_txqs;
 	int ret;
 
 	PMD_INIT_FUNC_TRACE(edev);
@@ -1223,12 +1225,17 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev)
 	if (qede_check_fdir_support(eth_dev))
 		return -ENOTSUP;
 
-	qede_dealloc_fp_resc(eth_dev);
-	qdev->num_tx_queues = eth_dev->data->nb_tx_queues * edev->num_hwfns;
-	qdev->num_rx_queues = eth_dev->data->nb_rx_queues * edev->num_hwfns;
-
-	if (qede_alloc_fp_resc(qdev))
-		return -ENOMEM;
+	/* Allocate/reallocate fastpath resources only for new queue config */
+	num_txqs = eth_dev->data->nb_tx_queues * edev->num_hwfns;
+	num_rxqs = eth_dev->data->nb_rx_queues * edev->num_hwfns;
+	if (qdev->num_tx_queues != num_txqs ||
+	    qdev->num_rx_queues != num_rxqs) {
+		qede_dealloc_fp_resc(eth_dev);
+		qdev->num_tx_queues = num_txqs;
+		qdev->num_rx_queues = num_rxqs;
+		if (qede_alloc_fp_resc(qdev))
+			return -ENOMEM;
+	}
 
 	/* If jumbo enabled adjust MTU */
 	if (rxmode->offloads & DEV_RX_OFFLOAD_JUMBO_FRAME)
diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index a28dd0a07f..3c55c0efdf 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -593,12 +593,14 @@ qede_alloc_mem_sb(struct qede_dev *qdev, struct ecore_sb_info *sb_info,
 
 int qede_alloc_fp_resc(struct qede_dev *qdev)
 {
-	struct ecore_dev *edev = &qdev->edev;
+	struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
 	struct qede_fastpath *fp;
 	uint32_t num_sbs;
 	uint16_t sb_idx;
 	int i;
 
+	PMD_INIT_FUNC_TRACE(edev);
+
 	if (IS_VF(edev))
 		ecore_vf_get_num_sbs(ECORE_LEADING_HWFN(edev), &num_sbs);
 	else
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-22 10:37:40.021535341 +0100
+++ 0021-net-qede-fix-port-reconfiguration.patch	2020-05-22 10:37:39.112412427 +0100
@@ -1,8 +1,10 @@
-From 05ccc9d8a9f9338b1cb4ae515c60c60f8b7f518d Mon Sep 17 00:00:00 2001
+From bbcbd194d8262a13cab44d3b4cb1d9bdd073b20a Mon Sep 17 00:00:00 2001
 From: Rasesh Mody <rmody at marvell.com>
 Date: Thu, 14 May 2020 23:34:19 -0700
 Subject: [PATCH] net/qede: fix port reconfiguration
 
+[ upstream commit 05ccc9d8a9f9338b1cb4ae515c60c60f8b7f518d ]
+
 This patch fixes deallocation of all fastpath resources unconditionally,
 when re-configuring the device. When re-allocating resources PMD depends
 on application to explicitly setup the Rx/Tx queue.
@@ -13,7 +15,6 @@
 
 Fixes: 8de0c4201926 ("net/qede: fix odd number of queues usage in 100G mode")
 Fixes: dd28bc8c6ef4 ("net/qede: fix VF port creation sequence")
-Cc: stable at dpdk.org
 
 Signed-off-by: Rasesh Mody <rmody at marvell.com>
 Signed-off-by: Igor Russkikh <irusskikh at marvell.com>
@@ -23,10 +24,10 @@
  2 files changed, 16 insertions(+), 7 deletions(-)
 
 diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
-index d3d916e81a..c4f8f12589 100644
+index 4b3f506506..2a1c82ac9a 100644
 --- a/drivers/net/qede/qede_ethdev.c
 +++ b/drivers/net/qede/qede_ethdev.c
-@@ -1273,6 +1273,8 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev)
+@@ -1191,6 +1191,8 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev)
  	struct qede_dev *qdev = QEDE_INIT_QDEV(eth_dev);
  	struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
  	struct rte_eth_rxmode *rxmode = &eth_dev->data->dev_conf.rxmode;
@@ -35,7 +36,7 @@
  	int ret;
  
  	PMD_INIT_FUNC_TRACE(edev);
-@@ -1305,12 +1307,17 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev)
+@@ -1223,12 +1225,17 @@ static int qede_dev_configure(struct rte_eth_dev *eth_dev)
  	if (qede_check_fdir_support(eth_dev))
  		return -ENOTSUP;
  
@@ -60,7 +61,7 @@
  	/* If jumbo enabled adjust MTU */
  	if (rxmode->offloads & DEV_RX_OFFLOAD_JUMBO_FRAME)
 diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
-index b81788ca47..9878ba50ea 100644
+index a28dd0a07f..3c55c0efdf 100644
 --- a/drivers/net/qede/qede_rxtx.c
 +++ b/drivers/net/qede/qede_rxtx.c
 @@ -593,12 +593,14 @@ qede_alloc_mem_sb(struct qede_dev *qdev, struct ecore_sb_info *sb_info,


More information about the stable mailing list