From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rasesh Mody Subject: [PATCH 2/7] net/qede: fix incorrect queue id for 100G Date: Mon, 24 Jul 2017 03:19:03 -0700 Message-ID: <1500891548-21896-2-git-send-email-rasesh.mody@cavium.com> References: <1500891548-21896-1-git-send-email-rasesh.mody@cavium.com> Mime-Version: 1.0 Content-Type: text/plain Cc: Harish Patil , , Rasesh Mody To: Return-path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0086.outbound.protection.outlook.com [104.47.33.86]) by dpdk.org (Postfix) with ESMTP id C3ACE6841 for ; Mon, 24 Jul 2017 12:19:41 +0200 (CEST) In-Reply-To: <1500891548-21896-1-git-send-email-rasesh.mody@cavium.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Harish Patil '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 Signed-off-by: Rasesh Mody --- 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(¶ms, 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(¶ms, 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