From patchwork Wed May 24 10:03:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nithin Dabilpuram X-Patchwork-Id: 127289 X-Patchwork-Delegate: jerinj@marvell.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 A52E442B8C; Wed, 24 May 2023 12:04:46 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2F05E42D49; Wed, 24 May 2023 12:04:30 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id 7B13B42D3A for ; Wed, 24 May 2023 12:04:27 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 34O4qD6w025070; Wed, 24 May 2023 03:04:26 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=aF5+XAWQso/ewRZS9gni2K4VYiU4dLS7wIxKf1xeTjc=; b=TcKRPc44Y8Ed0JXpDtIrg6JWjxd1Q7AgPQRPDBOdIB7C8s2hR5RsHHcr4uYWzlKuteuZ tJrbKCvpOPbgf+RX8QIG+a/Q7xz2fQURqbb6tOSfRUXp4x8f3zPKreJQGNxShXG++auH /NLsbrs5gfJty13Ouu7NNcVUjBXtp21xkNAAdxlL0fuRcXSZfk/4S1JgtCw9eiVJHNMj ytOXXCV7H6DR6qdWV1YyWoWIK1RcUuO5XEEp6T0nk2eneYCcMVDKklHPcK2X6894N3TJ L+bhUhlJnXw+PD7ToSlSvIlwlSnw3dNagH9sm5ybfQqIoHazSdvj4enBJcx69xDrm/XU Mw== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3qsbxes2p8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 24 May 2023 03:04:26 -0700 Received: from DC5-EXCH02.marvell.com (10.69.176.39) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Wed, 24 May 2023 03:04:24 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Wed, 24 May 2023 03:04:24 -0700 Received: from hyd1588t430.caveonetworks.com (unknown [10.29.52.204]) by maili.marvell.com (Postfix) with ESMTP id 02EC83F7074; Wed, 24 May 2023 03:04:21 -0700 (PDT) From: Nithin Dabilpuram To: Thomas Monjalon , Nithin Kumar Dabilpuram , Kiran Kumar K , "Sunil Kumar Kori" , Satha Rao CC: , Subject: [PATCH v2 04/32] common/cnxk: skip flow ctrl set on non-existent meta aura Date: Wed, 24 May 2023 15:33:39 +0530 Message-ID: <20230524100407.3796139-4-ndabilpuram@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230524100407.3796139-1-ndabilpuram@marvell.com> References: <20230411091144.1087887-1-ndabilpuram@marvell.com> <20230524100407.3796139-1-ndabilpuram@marvell.com> MIME-Version: 1.0 X-Proofpoint-ORIG-GUID: 7SeVv8VbhqarfqnceRCpDUrAYILWbt0s X-Proofpoint-GUID: 7SeVv8VbhqarfqnceRCpDUrAYILWbt0s X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-05-24_05,2023-05-23_02,2023-05-22_02 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 Skip setting flow control on local meta aura if it is not yet created. Also in flow control mode set, do get to confirm if it is in same state to avoid a set and unnecessary mbox failures. Signed-off-by: Nithin Dabilpuram --- .mailmap | 1 + drivers/common/cnxk/roc_dev.c | 1 + drivers/common/cnxk/roc_nix_fc.c | 4 ++-- drivers/common/cnxk/roc_nix_inl.c | 3 +++ drivers/net/cnxk/cnxk_ethdev.c | 5 +++-- drivers/net/cnxk/cnxk_ethdev_ops.c | 4 ++++ 6 files changed, 14 insertions(+), 4 deletions(-) diff --git a/.mailmap b/.mailmap index 57d02a87aa..edf2f5e639 100644 --- a/.mailmap +++ b/.mailmap @@ -991,6 +991,7 @@ Nipun Gupta Nir Efrati Nirmoy Das Nithin Dabilpuram +Nithin Kumar Dabilpuram Nitin Saxena Nitzan Weller Noa Ezra diff --git a/drivers/common/cnxk/roc_dev.c b/drivers/common/cnxk/roc_dev.c index 2388237186..5e4e564ebe 100644 --- a/drivers/common/cnxk/roc_dev.c +++ b/drivers/common/cnxk/roc_dev.c @@ -421,6 +421,7 @@ process_msgs(struct dev *dev, struct mbox *mbox) dev->pf_func = msg->pcifunc; break; case MBOX_MSG_CGX_PRIO_FLOW_CTRL_CFG: + case MBOX_MSG_CGX_CFG_PAUSE_FRM: /* Handling the case where one VF tries to disable PFC * while PFC already configured on other VFs. This is * not an error but a warning which can be ignored. diff --git a/drivers/common/cnxk/roc_nix_fc.c b/drivers/common/cnxk/roc_nix_fc.c index 19334b1eb0..a34ce27d70 100644 --- a/drivers/common/cnxk/roc_nix_fc.c +++ b/drivers/common/cnxk/roc_nix_fc.c @@ -297,7 +297,7 @@ nix_fc_rq_config_set(struct roc_nix *roc_nix, struct roc_nix_fc_cfg *fc_cfg) fc_cfg->rq_cfg.enable, true, fc_cfg->rq_cfg.tc); - if (roc_nix->local_meta_aura_ena) + if (roc_nix->local_meta_aura_ena && roc_nix->meta_aura_handle) roc_nix_fc_npa_bp_cfg(roc_nix, roc_nix->meta_aura_handle, fc_cfg->rq_cfg.enable, true, fc_cfg->rq_cfg.tc); } @@ -395,6 +395,7 @@ roc_nix_fc_mode_set(struct roc_nix *roc_nix, enum roc_nix_fc_mode mode) goto exit; } + /* Set new config */ req = mbox_alloc_msg_cgx_cfg_pause_frm(mbox); if (req == NULL) goto exit; @@ -408,7 +409,6 @@ roc_nix_fc_mode_set(struct roc_nix *roc_nix, enum roc_nix_fc_mode mode) nix->rx_pause = rx_pause; nix->tx_pause = tx_pause; - exit: mbox_put(mbox); return rc; diff --git a/drivers/common/cnxk/roc_nix_inl.c b/drivers/common/cnxk/roc_nix_inl.c index 9485bba099..b16756d642 100644 --- a/drivers/common/cnxk/roc_nix_inl.c +++ b/drivers/common/cnxk/roc_nix_inl.c @@ -131,6 +131,9 @@ nix_inl_meta_aura_create(struct idev_cfg *idev, struct roc_nix *roc_nix, uint16_ } roc_nix->meta_mempool = mp; + plt_nix_dbg("Created meta aura %p(%s)for port %d", (void *)*meta_aura, mp_name, + roc_nix->port_id); + if (!roc_nix->local_meta_aura_ena) { inl_cfg->buf_sz = buf_sz; inl_cfg->nb_bufs = nb_bufs; diff --git a/drivers/net/cnxk/cnxk_ethdev.c b/drivers/net/cnxk/cnxk_ethdev.c index 42a52ed0ca..7cc41e0c31 100644 --- a/drivers/net/cnxk/cnxk_ethdev.c +++ b/drivers/net/cnxk/cnxk_ethdev.c @@ -378,8 +378,9 @@ nix_init_flow_ctrl_config(struct rte_eth_dev *eth_dev) if (rc) return rc; - fc->mode = (fc_mode == ROC_NIX_FC_FULL) ? RTE_ETH_FC_FULL : - RTE_ETH_FC_TX_PAUSE; + fc->mode = (fc_mode == ROC_NIX_FC_FULL) ? RTE_ETH_FC_FULL : RTE_ETH_FC_TX_PAUSE; + fc->rx_pause = (fc->mode == RTE_ETH_FC_FULL) || (fc->mode == RTE_ETH_FC_RX_PAUSE); + fc->tx_pause = (fc->mode == RTE_ETH_FC_FULL) || (fc->mode == RTE_ETH_FC_TX_PAUSE); return rc; } diff --git a/drivers/net/cnxk/cnxk_ethdev_ops.c b/drivers/net/cnxk/cnxk_ethdev_ops.c index 068b7c3502..bce6d59bbc 100644 --- a/drivers/net/cnxk/cnxk_ethdev_ops.c +++ b/drivers/net/cnxk/cnxk_ethdev_ops.c @@ -342,6 +342,10 @@ cnxk_nix_flow_ctrl_set(struct rte_eth_dev *eth_dev, return rc; } + /* Skip mode set if it is we are in same state */ + if (fc->rx_pause == rx_pause && fc->tx_pause == tx_pause) + return 0; + rc = roc_nix_fc_mode_set(nix, mode_map[fc_conf->mode]); if (rc) return rc;