From patchwork Mon Apr 19 19:28:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 91785 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D0D35A0548; Mon, 19 Apr 2021 21:28:56 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 27FBA41464; Mon, 19 Apr 2021 21:28:52 +0200 (CEST) Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) by mails.dpdk.org (Postfix) with ESMTP id 7EDF041462 for ; Mon, 19 Apr 2021 21:28:50 +0200 (CEST) Received: by mail-pl1-f170.google.com with SMTP id v13so4724034ple.9 for ; Mon, 19 Apr 2021 12:28:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version; bh=RJiRoIst12c5Ts9dyJSXQcGaCW9tNnyjBop4WuAh864=; b=BWDFIAdSISfEB55es4KLuaZnjsI00RAFwgImTTGZ22R2caiU8BMUnQA7n0D6JEfx2T 9jLucrW8l4B4iq6MAWyqiKT7OMN88UiMa1ZWPpTPP7W6VnUGop+HSOz0Hdl6222H9jlI N135+TpKf9iwcZ52dTZeVtDH6/8Jjyt5CXXiY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version; bh=RJiRoIst12c5Ts9dyJSXQcGaCW9tNnyjBop4WuAh864=; b=QqJV33FNSI+qTHVD7IvBXu8bTNyIr8lykkTG/gdaJTqA8fs5VAlNmha0xaAGlYtR80 rtAutSGMwR6cuwbZ1GthSi5uFw+Ac864r1R0jowX2qd61fvMUvD/DHfG8Gdpn4kbCUSk GIOCZ/WbI4IFbqiciYsnA0p1IWIUimPh056FJ7l7ui4YuQEd1RWtYe0yWz6rSLIIDDoL hWQGZH/H05ssBcHntj8LwIE6yad7sRjJ0BVnVSSQkrRYNJdZ0+DwWqICLHMPQKJ0Bw5l adAwuqARVZdGGNLWKbGNkgdqEpVL0q9RyjVRwxvfEnPxeu/1zVkvCRqidrBDR6D9rVVP sxhA== X-Gm-Message-State: AOAM532gj6mh+NKtkQDWYhtZNDr2XjBbTcWeM2GTSeA+uhQzdfWfhVXX Z3dSoM7fjQlBYpqolD+VI7FPkYoMYJTl5/Bf++AC1AyhaiulH+/PTiSPVUifpvivV1+V/TCXWhe iolfD68dE0FwzbK+k5Z10FD4Dalp3XzuabepuTubVU25bj1LIZxWrZZq34W7DQRQ= X-Google-Smtp-Source: ABdhPJwWOtmk5oe5S3RXcACUErYvGyo5SOCcgaABKM4xP/FBK24xdVQV79C6Nb3+im3mVIhBD5cx5g== X-Received: by 2002:a17:90b:b0e:: with SMTP id bf14mr744155pjb.140.1618860529265; Mon, 19 Apr 2021 12:28:49 -0700 (PDT) Received: from C02VPB22HTD6.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id u6sm12561589pfn.168.2021.04.19.12.28.47 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Apr 2021 12:28:48 -0700 (PDT) From: Ajit Khaparde To: dev@dpdk.org Cc: Lance Richardson Date: Mon, 19 Apr 2021 12:28:38 -0700 Message-Id: <20210419192838.45708-2-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) In-Reply-To: <20210419192838.45708-1-ajit.khaparde@broadcom.com> References: <20210419192838.45708-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [dpdk-dev] [PATCH 2/2] net/bnxt: cap max Rx rings for Thor X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" For Thor devices, RSS table can only accommodate 512 Rx queues. When RSS is enabled, Cap the max Rx rings to 512. For non-RSS case, the number will be limited by number of VNICs. Signed-off-by: Ajit Khaparde Reviewed-by: Lance Richardson --- drivers/net/bnxt/bnxt.h | 13 +++++++++++++ drivers/net/bnxt/bnxt_ethdev.c | 7 ++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h index 05f8804274..263ea86590 100644 --- a/drivers/net/bnxt/bnxt.h +++ b/drivers/net/bnxt/bnxt.h @@ -844,6 +844,7 @@ struct bnxt { static inline uint16_t bnxt_max_rings(struct bnxt *bp) { + struct rte_eth_conf *dev_conf = &bp->eth_dev->data->dev_conf; uint16_t max_tx_rings = bp->max_tx_rings; uint16_t max_rx_rings = bp->max_rx_rings; uint16_t max_cp_rings = bp->max_cp_rings; @@ -861,6 +862,18 @@ inline uint16_t bnxt_max_rings(struct bnxt *bp) bp->max_stat_ctx / 2U); } + if (BNXT_CHIP_P5(bp)) { + /* RSS table size in Thor is 512. + * Cap max Rx rings to the same value for RSS. + * For non-RSS case cap it to the max VNIC count. + */ + if(dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) + max_rx_rings = RTE_MIN(max_rx_rings, + BNXT_RSS_TBL_SIZE_P5); + else + max_rx_rings = RTE_MIN(max_rx_rings, bp->max_vnics); + } + max_tx_rings = RTE_MIN(max_tx_rings, max_rx_rings); if (max_cp_rings > BNXT_NUM_ASYNC_CPR(bp)) max_cp_rings -= BNXT_NUM_ASYNC_CPR(bp); diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index dc3b04110f..9da817f487 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -422,12 +422,13 @@ static int bnxt_setup_one_vnic(struct bnxt *bp, uint16_t vnic_id) if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS) { int j, nr_ctxs = bnxt_rss_ctxts(bp); + /* RSS table size in Thor is 512. + * Cap max Rx rings to same value + */ if (bp->rx_nr_rings > BNXT_RSS_TBL_SIZE_P5) { PMD_DRV_LOG(ERR, "RxQ cnt %d > reta_size %d\n", bp->rx_nr_rings, BNXT_RSS_TBL_SIZE_P5); - PMD_DRV_LOG(ERR, - "Only queues 0-%d will be in RSS table\n", - BNXT_RSS_TBL_SIZE_P5 - 1); + goto err_out; } rc = 0;