From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 15A45440A0 for ; Thu, 23 May 2024 04:49:52 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0A340402C2; Thu, 23 May 2024 04:49:52 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2107.outbound.protection.outlook.com [40.107.236.107]) by mails.dpdk.org (Postfix) with ESMTP id E3CD24025C; Thu, 23 May 2024 04:49:48 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PaydvQbBHle7B0v9Lrc9sThdRt1rqlt5HzWDQejHGuw7Xmppw5a8s8eLBeqpW/GnGKtPCfPm52i+qvr1a1erVyIom1qbPP3GfSOR8uMB0klMVi/8eV7D/rg4HlveDrfPlg/fkWnQgkQ6/ckuliLG8/5QAzsPELR16AiPxyLcWNPwfrfJnh1NIh/PQvWNpNMmwCT3W649SSMII9VkNFwP99Uer9+WUUbskncDKv/S9EVgxx4krBn5y+rj3MW1pd81CTge16rI/7AN68jGpmeTwtAO62RuTS7BoDKIudsvjlvVLuNn3yRrtgUZTpvhnXEEL30/VS7qTdFSamNZWIqURw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=lZUQAvyiW3qzmvahOEUqykQZQqZWvu0Tt0o7raCGnDI=; b=Mq2NkzWpxMZr6bw55rOPy0LkCMQneLfJhVxLbyo4SRfLaFLhHBT1oPo4lLYi+xKmgzp8XAMq+iDxZRWgTQQFPSlNxcwnxfQyZjAWXARoN3GBRgjTohmh+IXMHCqEh1dOPGfzZUINbmcBuFC31PiJYL8OvkGjOmjmdK8iI6nhViJLNMNyPhhpnL2mxWbaKkhr3NcLt2uXo44QavDEsvkDzeolz+9RdO4NchJ+l85B1FRi+6MB8xSiu8FvsiqvHPaEtF36JhMntPgpByZFw7iukkOcNQ89OpL3lBORrxl0mUMeW13PmazHB6qGDOnuCzY1x0pp9R1hU3Z0vpWifd9g3A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=lZUQAvyiW3qzmvahOEUqykQZQqZWvu0Tt0o7raCGnDI=; b=itcWhxQkmVwhpoN3w2MQY2lMd7USrY4YE3bw3vBIjYrjEciw8qdt97vhTHrIhO6an3gHZFb3XdNAt9s+066hmI4ArtX8Uf1hDCfeKbmmIdYYWpV3rftCCbd0VCa1/r/2UsrvOFezay9PotxA188FQilqgROqV5l9uMoycY65/a4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by IA2PR13MB6806.namprd13.prod.outlook.com (2603:10b6:208:4b1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.17; Thu, 23 May 2024 02:49:47 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::b900:5f05:766f:833%7]) with mapi id 15.20.7611.013; Thu, 23 May 2024 02:49:47 +0000 From: Chaoyong He To: dev@dpdk.org Cc: oss-drivers@corigine.com, Chaoyong He , peng.zhang@corigine.com, stable@dpdk.org, Long Wu Subject: [PATCH 1/2] net/nfp: fix xstats problem for multi PF firmware Date: Thu, 23 May 2024 10:49:15 +0800 Message-Id: <20240523024916.2291031-2-chaoyong.he@corigine.com> X-Mailer: git-send-email 2.39.1 In-Reply-To: <20240523024916.2291031-1-chaoyong.he@corigine.com> References: <20240523024916.2291031-1-chaoyong.he@corigine.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: BYAPR07CA0071.namprd07.prod.outlook.com (2603:10b6:a03:60::48) To SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR13MB5545:EE_|IA2PR13MB6806:EE_ X-MS-Office365-Filtering-Correlation-Id: 646515d4-83c4-4a2b-2f36-08dc7ad301cc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|366007|1800799015|52116005|376005|38350700005; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?81CQAm+9dZvSC2WnX5DCf8P2djgzfFfwpJ8ul9bEWdRKilXSu9QTX7apSBcG?= =?us-ascii?Q?jMWjnkYdhjJcBqcu33z1n4jw9tIn28kV3ao9rdYqCeIs05FLfv2tjFElzD9r?= =?us-ascii?Q?ILat5qarnDI2gXl4+wtA0GVChGheRP3pvx7VyI5Dk2A/eEokhFdaOYXevrxP?= =?us-ascii?Q?l/Scmlia3RlRdcKu7FgzcksOLCwspIBfg06KzlfpK0fWW1bhtjmfegqVgmEY?= =?us-ascii?Q?GP+3Qxp/YRuaKgYyz8hqTA34ltAGU/ZaWn03aF3HhAEdQxxXmPZwsTZpKUKJ?= =?us-ascii?Q?TzWD5VvkHa/0m3N+bs9xJ0mq7yQu44di+usXr0Pdh9UFYO8sBbaeSHacy+sO?= =?us-ascii?Q?Vqi1kfuoZzP0DyN2LZhd5B2Ayit/OIV+VSVP48wK3z6hJ5WfZE1I/jVyCL3m?= =?us-ascii?Q?yNoiHTKsA74sHoYMhcaEn/SUpCexu3p6/e9X3zIMhUcog5SW4K4Fm0NF+kUH?= =?us-ascii?Q?pA619YGSEcZcY0D1UN9LTbQM6YXhgd/7kBjKk0fW5gZj1wTh7GB+jrpdFIhf?= =?us-ascii?Q?oVh4O83Qe7pPNporXuQE5MB00HvC4qDYCArOoA8gspk+e0j/etYC1iE6gPTi?= =?us-ascii?Q?4JVMzorZAomLyBiYge3JRgmNjgMHGW6gbO0SBunwAxsmeCH3mfLMkpR2RlvW?= =?us-ascii?Q?FD/u7r7Yr6ZcK0a6orpz6gt7PPK1fxcqxb6oxuaI1AZ+vQeL0uc9dvL9+6cJ?= =?us-ascii?Q?ELUb/EdwZ/xe21TX5uKhxO91sI329lFdB1Yp3tMzF1/UFqg+NOvt5B2a8Z/y?= =?us-ascii?Q?+tBpS1rdVgjuf8uB6omvUlC7Ilt5gBXH3oqTPrFGDaP20+gZIi9CC/468ahG?= =?us-ascii?Q?RWejJzYMEoDJ6W3oO2HLympEDhY8RvnGO8dW2juL7B1mY1H7PdF/XvLYCdpj?= =?us-ascii?Q?Ru+sBC4vqx5iEnO7aQ8SwueaRWY+RaQ5rI97hiPHEfTLtM4GnyLSKY6aDufZ?= =?us-ascii?Q?uHaKxw2iqAZtkIWAffI9datf73dJXluon7SKoZg3wsKHbInUXtzN7MdrEbvv?= =?us-ascii?Q?q/HWed64GvJeYMhzSmaV2DwwTuaj8iMbP8I1F2O621EKRH/XTvJXUqN1q91h?= =?us-ascii?Q?1cv4FRdqQqWFe985+TU6N3gJm49ZM7Ngt7+mG07+Zh6oY8/kpS6YTQ7tuqWV?= =?us-ascii?Q?yT1vmKKRfnyuV8s+uHzXRPG0kLD3uYH+EVFH8bHaneewIR4e1X355An+UgEv?= =?us-ascii?Q?BrC51xJs/iuHncSsP1w/3ZnL4ZkXbVOJOkiK8THdfohBPmapXEUZxWREevsU?= =?us-ascii?Q?0O785uEnCwmrqlcg97k3OVJVV3MNIJwsHOoIea65ERlYe5+qzPmhqrj0ZJ1D?= =?us-ascii?Q?xTUwPiMYySFLTRv4fFcBAElX9c8TgKHCLQhMG/pwBCjUpw=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366007)(1800799015)(52116005)(376005)(38350700005); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9Rp9I6d4hE5v6jlIuJINawDQNex4US1mUajQ69ell+202lSFQy9yX82m/fPm?= =?us-ascii?Q?0leIlqKpyfXFNxTGI74KKOEzVghnwKYMvihcmc01uY+Zc4tQeLXA9uHFEUXq?= =?us-ascii?Q?Im12YIUeigw7aCZH/puWwtF5+rGf6TJJUHFOKpuXN5YIXUl0KlAnVS0yAdMd?= =?us-ascii?Q?Ov90npJ0AXlzeF4bz+v2ZV5mLCPd6rY6i4PSz6TO4e5AKSKLFia6ySEnkNgJ?= =?us-ascii?Q?kmtoXVjDST/lgcmqYWpyJ8TINONxd4pKU7p+liqI0JtwnwpXHCmv2iTrX6Uc?= =?us-ascii?Q?oeS5I/KWn5YBPF7AW366yMdrCJhtJZQzTBa1N5fS4Ka7jC6TBGMznnvnDtvn?= =?us-ascii?Q?olv7WQfrhVRm4a20/zmC6iG0SijjpqPJu2mb0KNDkbPbR40b1DCpsp9R2GJ8?= =?us-ascii?Q?jFtzw1Ii246zb1r5vFcRlpXG7nZbR/Ym989pD/L1mNkbAdQTAbSFbJeyMkBL?= =?us-ascii?Q?h9qEZCrpjU6s77v0HdASNes2EbyIVJrgrScaiT89OotMrQ/H0mcSrqraJ177?= =?us-ascii?Q?i6rQCGNP/OQd2RoSxW+i/egDp8SFp9VG2VvWdxmvY0QNj9wl/mj0ZqcVwoUU?= =?us-ascii?Q?TMcyQC4QSOJqiNpuclkORtktBb+TOIu83xjC3u4MuL87zsjZuiRIGxtiSysK?= =?us-ascii?Q?M5x+JV+ieD2P/I7APMHTsQezaiCm+jl+wcRygP8TnVoxkNF1QANRTN30aGAq?= =?us-ascii?Q?xMm0DLsVkBmooHD0Zork6bR53Pp+w0GXVt3l0Ddebp7/hZcUrai4suEMDE/P?= =?us-ascii?Q?wrdSYH3Gf8OgDIDowCPAm4n2cKa1/lvrmEz2M9/6fGb5gyjTj/4m2LotIpK3?= =?us-ascii?Q?AKbNIRguiEx7H9Kwe/MFRKudR6IbVqkriR6X1YvEam3y9GRFTxMkdbrniDVq?= =?us-ascii?Q?f3+vp6cjIbyv4uCFgmqg0ffM6JjFNQl7Ledg6ckLyesI7ouD49pc8/u9EY+x?= =?us-ascii?Q?4f9Vryrit040vNIEp57ejarZIxmWdAMIEiWwysFMSb/5kKakRWCjh+i0CaiF?= =?us-ascii?Q?vgEAKHcXnhL5i9b8o7OBOPnrLRMIKobGI1JfHnATKQAfVgNp7r2mwaA9B9wb?= =?us-ascii?Q?ePvflyk+bx9xS3hm2ajwYRIYq8pkXtI+zRp5SdQyExTWph9I3iZt/aXZcaI+?= =?us-ascii?Q?vdHikRcbik2MCx+zaIWko5cdHYiFlG3Tepco1ODjqstYEeN93EL8zGXHoEtg?= =?us-ascii?Q?Hzc1FN+EbFfCGvdhS5Ck73O6AdNzfgxhgJpDvBDQwjLtP41pYLOdMqSijeaK?= =?us-ascii?Q?A803TsT4TRYh1OSHRP7Fdt8Sijzob5O4b+8wTqjNVZBV9Q2y9JG/7t3FWXHw?= =?us-ascii?Q?0oz3oC4a1BvIAPqNxFggU6blM7EgtOxC3waYE66Jz1WCtLgzfZL1rLwdmCO7?= =?us-ascii?Q?kSndhBB2/pTXLSxqavVvw+31WCXhhYVr1n49BKEpvBpgTEWHTCbO5YcXMty1?= =?us-ascii?Q?Eicy2DgL/OMfYfKLYRJXxXCqPcwwh26oEffVHT0gAhI+a7Zi9LVausvgkEAY?= =?us-ascii?Q?Q/SNyOJ5/J7JeRzzeaTDZu6uJZ8ATH22T3mWQlPEwNELYkP0Ilr7aO+PjDu4?= =?us-ascii?Q?sveeR6OO1Sqbf/021ymQwb7F+daXqfADl9/+6J8gW+HlKOnCJjmiJyVED3ut?= =?us-ascii?Q?2Q=3D=3D?= X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: 646515d4-83c4-4a2b-2f36-08dc7ad301cc X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 May 2024 02:49:47.0992 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IO7qHWwa23BcKZANKbSFPxKaYZVDeE3G0b9IJ7eLJbKlUzlodzd6H6ys3vPBDQui2HDb5pCmkMGXGvb9DNKzQUi0xpwgPSNgB1nHeIYmjMA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA2PR13MB6806 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org When using multi PF firmware, the other ports always get the xstats of the first port. Fix it by adding the offset for other ports. Fixes: 8ad2cc8fec37 ("net/nfp: add flag for multiple PFs support") Cc: peng.zhang@corigine.com Cc: stable@dpdk.org Signed-off-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang --- drivers/net/nfp/nfp_ethdev.c | 50 ++++++++++++++------------------ drivers/net/nfp/nfp_net_common.h | 5 ++-- 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c index cdc946faff..f98af2044b 100644 --- a/drivers/net/nfp/nfp_ethdev.c +++ b/drivers/net/nfp/nfp_ethdev.c @@ -585,8 +585,6 @@ nfp_net_uninit(struct rte_eth_dev *eth_dev) if ((net_hw->super.cap & NFP_NET_CFG_CTRL_TXRWB) != 0) nfp_net_txrwb_free(eth_dev); nfp_ipsec_uninit(eth_dev); - if (net_hw->mac_stats_area != NULL) - nfp_cpp_area_release_free(net_hw->mac_stats_area); return 0; } @@ -617,6 +615,7 @@ nfp_pf_uninit(struct nfp_net_hw_priv *hw_priv) { struct nfp_pf_dev *pf_dev = hw_priv->pf_dev; + nfp_cpp_area_release_free(pf_dev->mac_stats_area); nfp_cpp_area_release_free(pf_dev->qc_area); free(pf_dev->sym_tbl); if (pf_dev->multi_pf.enabled) { @@ -933,43 +932,31 @@ nfp_net_init(struct rte_eth_dev *eth_dev, rte_eth_copy_pci_info(eth_dev, pci_dev); - if (port == 0 || pf_dev->multi_pf.enabled) { - uint32_t min_size; - + if (pf_dev->multi_pf.enabled) hw->ctrl_bar = pf_dev->ctrl_bar; - min_size = NFP_MAC_STATS_SIZE * pf_dev->nfp_eth_table->max_index; - net_hw->mac_stats_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_mac_stats", - min_size, &net_hw->mac_stats_area); - if (net_hw->mac_stats_bar == NULL) { - PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _mac_stats_bar"); - return -EIO; - } - - net_hw->mac_stats = net_hw->mac_stats_bar; - } else { - /* Use port offset in pf ctrl_bar for this ports control bar */ + else hw->ctrl_bar = pf_dev->ctrl_bar + (port * NFP_NET_CFG_BAR_SZ); - net_hw->mac_stats = app_fw_nic->ports[0]->mac_stats_bar + + + net_hw->mac_stats = pf_dev->mac_stats_bar + (net_hw->nfp_idx * NFP_MAC_STATS_SIZE); - } PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar); PMD_INIT_LOG(DEBUG, "MAC stats: %p", net_hw->mac_stats); err = nfp_net_common_init(pci_dev, net_hw); if (err != 0) - goto free_area; + return err; err = nfp_net_tlv_caps_parse(eth_dev); if (err != 0) { PMD_INIT_LOG(ERR, "Failed to parser TLV caps"); - goto free_area; + return err; } err = nfp_ipsec_init(eth_dev); if (err != 0) { PMD_INIT_LOG(ERR, "Failed to init IPsec module"); - goto free_area; + return err; } nfp_net_ethdev_ops_mount(net_hw, eth_dev); @@ -1070,9 +1057,6 @@ nfp_net_init(struct rte_eth_dev *eth_dev, rte_free(net_hw->eth_xstats_base); ipsec_exit: nfp_ipsec_uninit(eth_dev); -free_area: - if (net_hw->mac_stats_area != NULL) - nfp_cpp_area_release_free(net_hw->mac_stats_area); return err; } @@ -1931,6 +1915,14 @@ nfp_pf_init(struct rte_pci_device *pci_dev) PMD_INIT_LOG(DEBUG, "qc_bar address: %p", pf_dev->qc_bar); + pf_dev->mac_stats_bar = nfp_rtsym_map(sym_tbl, "_mac_stats", + NFP_MAC_STATS_SIZE * nfp_eth_table->max_index, + &pf_dev->mac_stats_area); + if (pf_dev->mac_stats_bar == NULL) { + PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _mac_stats"); + goto hwqueues_cleanup; + } + hw_priv->pf_dev = pf_dev; hw_priv->dev_info = dev_info; @@ -1943,14 +1935,14 @@ nfp_pf_init(struct rte_pci_device *pci_dev) if (pf_dev->multi_pf.enabled) { ret = nfp_enable_multi_pf(pf_dev); if (ret != 0) - goto hwqueues_cleanup; + goto mac_stats_cleanup; } PMD_INIT_LOG(INFO, "Initializing coreNIC"); ret = nfp_init_app_fw_nic(hw_priv); if (ret != 0) { PMD_INIT_LOG(ERR, "Could not initialize coreNIC!"); - goto hwqueues_cleanup; + goto mac_stats_cleanup; } break; case NFP_APP_FW_FLOWER_NIC: @@ -1958,13 +1950,13 @@ nfp_pf_init(struct rte_pci_device *pci_dev) ret = nfp_init_app_fw_flower(hw_priv); if (ret != 0) { PMD_INIT_LOG(ERR, "Could not initialize Flower!"); - goto hwqueues_cleanup; + goto mac_stats_cleanup; } break; default: PMD_INIT_LOG(ERR, "Unsupported Firmware loaded"); ret = -EINVAL; - goto hwqueues_cleanup; + goto mac_stats_cleanup; } /* Register the CPP bridge service here for primary use */ @@ -1974,6 +1966,8 @@ nfp_pf_init(struct rte_pci_device *pci_dev) return 0; +mac_stats_cleanup: + nfp_cpp_area_release_free(pf_dev->mac_stats_area); hwqueues_cleanup: nfp_cpp_area_release_free(pf_dev->qc_area); sym_tbl_cleanup: diff --git a/drivers/net/nfp/nfp_net_common.h b/drivers/net/nfp/nfp_net_common.h index a4eaed6433..8d9851f969 100644 --- a/drivers/net/nfp/nfp_net_common.h +++ b/drivers/net/nfp/nfp_net_common.h @@ -116,6 +116,9 @@ struct nfp_pf_dev { uint8_t *qc_bar; + struct nfp_cpp_area *mac_stats_area; + uint8_t *mac_stats_bar; + struct nfp_hwinfo *hwinfo; struct nfp_rtsym_table *sym_tbl; @@ -199,8 +202,6 @@ struct nfp_net_hw { struct rte_eth_xstat *eth_xstats_base; struct nfp_cpp_area *ctrl_area; - struct nfp_cpp_area *mac_stats_area; - uint8_t *mac_stats_bar; uint8_t *mac_stats; /** Sequential physical port number, only valid for CoreNIC firmware */ -- 2.39.1