[dpdk-dev] [PATCH 2/7] net/qede: fix incorrect queue id for 100G

Rasesh Mody rasesh.mody at cavium.com
Mon Jul 24 12:19:03 CEST 2017


From: Harish Patil <harish.patil at cavium.com>

'commit 4c4bdadfa9e7 ("net/qede: refactoring multi-queue implementation")'
introduced a regression where default RSS configuration is incorrect in
the case of 100G mode. Currently we are passing absolute queue ids while
creating RX/TX queues. But in CMT mode we need to provide queue id
relative to the engine id. So this fix takes into account num_hwfns
while creating queues.

Fixes: 4c4bdadfa9e7 ("net/qede: refactoring multi-queue implementation")

Signed-off-by: Harish Patil <harish.patil at cavium.com>
Signed-off-by: Rasesh Mody <rasesh.mody at cavium.com>
---
 drivers/net/qede/qede_rxtx.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index 0de28c7..a232d20 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -552,8 +552,9 @@ void qede_dealloc_fp_resc(struct rte_eth_dev *eth_dev)
 		ecore_sb_ack(fp->sb_info, IGU_INT_DISABLE, 0);
 		/* Prepare ramrod */
 		memset(&params, 0, sizeof(params));
-		params.queue_id = rx_queue_id;
+		params.queue_id = rx_queue_id / edev->num_hwfns;
 		params.vport_id = 0;
+		params.stats_id = params.vport_id;
 		params.sb = fp->sb_info->igu_sb_id;
 		DP_INFO(edev, "rxq %u igu_sb_id 0x%x\n",
 				fp->rxq->queue_id, fp->sb_info->igu_sb_id);
@@ -610,8 +611,9 @@ void qede_dealloc_fp_resc(struct rte_eth_dev *eth_dev)
 		txq = eth_dev->data->tx_queues[tx_queue_id];
 		fp = &qdev->fp_array[tx_queue_id];
 		memset(&params, 0, sizeof(params));
-		params.queue_id = tx_queue_id;
+		params.queue_id = tx_queue_id / edev->num_hwfns;
 		params.vport_id = 0;
+		params.stats_id = params.vport_id;
 		params.sb = fp->sb_info->igu_sb_id;
 		DP_INFO(edev, "txq %u igu_sb_id 0x%x\n",
 				fp->txq->queue_id, fp->sb_info->igu_sb_id);
-- 
1.7.10.3



More information about the dev mailing list