From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C3E0EA0353; Wed, 13 Nov 2019 09:38:13 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4FF121BF0E; Wed, 13 Nov 2019 09:38:03 +0100 (CET) Received: from relay.smtp.broadcom.com (unknown [192.19.211.62]) by dpdk.org (Postfix) with ESMTP id 659A01BEFA for ; Wed, 13 Nov 2019 09:37:56 +0100 (CET) Received: from dhcp-10-123-153-55.dhcp.broadcom.net (bgccx-dev-host-lnx35.bec.broadcom.net [10.123.153.55]) by relay.smtp.broadcom.com (Postfix) with ESMTP id 80FCF28D368; Wed, 13 Nov 2019 00:37:55 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.10.3 relay.smtp.broadcom.com 80FCF28D368 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1573634275; bh=/h5SERgnOlSO4JeLruTVSHbnhKGa7A89O7rOKE3O+dE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ZakbjLKFboCSGVowxO1MnsDvSDPnfSOqnMbeuhKBoHjUSBbuQ3SBbucwbrR/KHGcc H7NwDH9tw72OeO3ymWpMCwVxIuc6ndv68kxwYvGhYPb1U76o5+ABBsXgKd6uZOnJFd R6a5A0KtSnyBP6MtcVhjgyupudUPuJYQNR7Rzg6I= From: Somnath Kotur To: dev@dpdk.org Cc: ferruh.yigit@intel.com Date: Wed, 13 Nov 2019 13:59:41 +0530 Message-Id: <20191113082945.21277-3-somnath.kotur@broadcom.com> X-Mailer: git-send-email 2.10.1.613.g2cc2e70 In-Reply-To: <20191113082945.21277-1-somnath.kotur@broadcom.com> References: <20191113082945.21277-1-somnath.kotur@broadcom.com> Subject: [dpdk-dev] [PATCH 2/6] net/bnxt: fix to cap queue count for NS3/Stingray devices X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Cap max queue count to 128 for NS3 devices and ensure that same count is reported as part of dev_info_get_op as well Signed-off-by: Somnath Kotur Reviewed-by: Rahul Gupta --- drivers/net/bnxt/bnxt.h | 7 +++++++ drivers/net/bnxt/bnxt_ethdev.c | 2 +- drivers/net/bnxt/bnxt_rxq.c | 2 +- drivers/net/bnxt/bnxt_txq.c | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index 9901ba902..e259c8239 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -608,6 +608,13 @@ struct bnxt { uint16_t max_cp_rings; uint16_t max_tx_rings; uint16_t max_rx_rings; +#define MAX_STINGRAY_RINGS 128U +#define BNXT_MAX_RINGS(bp) \ + (BNXT_STINGRAY(bp) ? RTE_MIN(RTE_MIN(bp->max_rx_rings, \ + MAX_STINGRAY_RINGS), \ + bp->max_stat_ctx) : \ + RTE_MIN(bp->max_rx_rings, bp->max_stat_ctx)) + uint16_t max_nq_rings; uint16_t max_l2_ctx; uint16_t max_rx_em_flows; diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index 9aff38298..3a45fb6c7 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -504,7 +504,7 @@ static int bnxt_dev_info_get_op(struct rte_eth_dev *eth_dev, if (BNXT_PF(bp)) dev_info->max_vfs = pdev->max_vfs; - max_rx_rings = RTE_MIN(bp->max_rx_rings, bp->max_stat_ctx); + max_rx_rings = BNXT_MAX_RINGS(bp); /* For the sake of symmetry, max_rx_queues = max_tx_queues */ dev_info->max_rx_queues = max_rx_rings; dev_info->max_tx_queues = max_rx_rings; diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index e7c012f68..fa11bec4e 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -296,7 +296,7 @@ int bnxt_rx_queue_setup_op(struct rte_eth_dev *eth_dev, if (rc) return rc; - if (queue_idx >= bp->max_rx_rings) { + if (queue_idx >= BNXT_MAX_RINGS(bp)) { PMD_DRV_LOG(ERR, "Cannot create Rx ring %d. Only %d rings available\n", queue_idx, bp->max_rx_rings); diff --git a/drivers/net/bnxt/bnxt_txq.c b/drivers/net/bnxt/bnxt_txq.c index 6b866d445..2d7645eeb 100644 --- a/drivers/net/bnxt/bnxt_txq.c +++ b/drivers/net/bnxt/bnxt_txq.c @@ -90,7 +90,7 @@ int bnxt_tx_queue_setup_op(struct rte_eth_dev *eth_dev, if (rc) return rc; - if (queue_idx >= bp->max_tx_rings) { + if (queue_idx >= BNXT_MAX_RINGS(bp)) { PMD_DRV_LOG(ERR, "Cannot create Tx ring %d. Only %d rings available\n", queue_idx, bp->max_tx_rings); -- 2.23.0.rc1