From patchwork Tue Apr 11 09:11:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nithin Dabilpuram X-Patchwork-Id: 125908 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 4C8914291B; Tue, 11 Apr 2023 11:12:20 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D1DBE42BC9; Tue, 11 Apr 2023 11:12:12 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by mails.dpdk.org (Postfix) with ESMTP id DA0BE42BAC for ; Tue, 11 Apr 2023 11:12:11 +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 33B8SvlB021524; Tue, 11 Apr 2023 02:12:11 -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=MqQdwTqy2PyVS7AEduFc1KUQCE64n3oo+dglHHUn+MU=; b=eDvFKaUvr+s/phcipqL3caAKt4h07/bpyGcFKGGCDaNqgFZwQfidf60W7GQ71A3VQb01 9VzzPMPRMYpzIy3BkfwvoqlajXKW/CJKthDz4QzkwStMVQXUrKB6QIubeXbbXtUGZOWn UYEF4cIIz+G32CNePcl2pnx6ZQiWSNrKMxndzAqxKC3szGbOgSNE+NoG3tDUilD1fE8I QegcJu0mn61x8sy4iujvhs8JQHXkKHz6nhXJPbjX2s9ZHN4gG2aTAkbwM83gngIkcmIh jHLjqYSqi9uVzI4DQur2apP62t6zrDrjXcVfnPmHLl4BroIKgOpcrZutptsAxL70j+rr 0g== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0a-0016f401.pphosted.com (PPS) with ESMTPS id 3pvt73b1s2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Tue, 11 Apr 2023 02:12:10 -0700 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.48; Tue, 11 Apr 2023 02:12:09 -0700 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.48 via Frontend Transport; Tue, 11 Apr 2023 02:12:08 -0700 Received: from hyd1588t430.caveonetworks.com (unknown [10.29.52.204]) by maili.marvell.com (Postfix) with ESMTP id 97EF73F706A; Tue, 11 Apr 2023 02:12:06 -0700 (PDT) From: Nithin Dabilpuram To: Thomas Monjalon , Nithin Kumar Dabilpuram , Kiran Kumar K , "Sunil Kumar Kori" , Satha Rao CC: , Subject: [PATCH 03/21] common/cnxk: skip flow ctrl set on non-existent meta aura Date: Tue, 11 Apr 2023 14:41:26 +0530 Message-ID: <20230411091144.1087887-3-ndabilpuram@marvell.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230411091144.1087887-1-ndabilpuram@marvell.com> References: <20230411091144.1087887-1-ndabilpuram@marvell.com> MIME-Version: 1.0 X-Proofpoint-GUID: JxoVK_YqsN2Wj2G63dvr4R5QiyHrjs2l X-Proofpoint-ORIG-GUID: JxoVK_YqsN2Wj2G63dvr4R5QiyHrjs2l X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.942,Hydra:6.0.573,FMLib:17.11.170.22 definitions=2023-04-11_05,2023-04-06_03,2023-02-09_01 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 0859104404..be2eddf1b3 100644 --- a/.mailmap +++ b/.mailmap @@ -988,6 +988,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 8b7659fb9a..3618d2920b 100644 --- a/drivers/common/cnxk/roc_nix_fc.c +++ b/drivers/common/cnxk/roc_nix_fc.c @@ -311,7 +311,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); } @@ -409,6 +409,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; @@ -422,7 +423,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 1cae3084e1..3bccc34d79 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;