From patchwork Wed Nov 13 15:06:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 62963 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 43143A04C3; Wed, 13 Nov 2019 16:07:54 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 640933772; Wed, 13 Nov 2019 16:07:22 +0100 (CET) Received: from rnd-relay.smtp.broadcom.com (rnd-relay.smtp.broadcom.com [192.19.229.170]) by dpdk.org (Postfix) with ESMTP id 9B0032B9E for ; Wed, 13 Nov 2019 16:07:12 +0100 (CET) Received: from mail-irv-17.broadcom.com (mail-irv-17.lvn.broadcom.net [10.75.242.48]) by rnd-relay.smtp.broadcom.com (Postfix) with ESMTP id C24B430C049; Wed, 13 Nov 2019 07:03:55 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.10.3 rnd-relay.smtp.broadcom.com C24B430C049 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=broadcom.com; s=dkimrelay; t=1573657435; bh=526aGcBejN4VldHuLbU6Z6jgG0vqEGUBeFM28851sI0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=OSmuX2rHzNPgQSUnUvrAjv0BI8EqCBQ/5zVDx/vC14asaF9T6zgOhVoh230cpUjVq GHCCGTYzthH8zKA7sINHgj4rChVirPIl5WOsNdabyvij4GFAhOyutVwFdRGxtaCzBH G2vdcLr03hYvUy+BJDEAwBjEk7efF+vHb1mMlkec= Received: from localhost.localdomain (unknown [10.230.26.250]) by mail-irv-17.broadcom.com (Postfix) with ESMTP id 3D6E9140069; Wed, 13 Nov 2019 07:07:06 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Cc: ferruh.yigit@intel.com, Somnath Kotur , Rahul Gupta Date: Wed, 13 Nov 2019 07:06:56 -0800 Message-Id: <20191113150700.2517-3-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.21.0 (Apple Git-122.2) In-Reply-To: <20191113150700.2517-1-ajit.khaparde@broadcom.com> References: <20191113082945.21277-1-somnath.kotur@broadcom.com> <20191113150700.2517-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 2/6] net/bnxt: 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" From: Somnath Kotur 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 94dbe2f1d..b00966942 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -505,7 +505,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);