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 5675D457A1 for ; Mon, 12 Aug 2024 15:04:03 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4E84440A77; Mon, 12 Aug 2024 15:04:03 +0200 (CEST) Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2046.outbound.protection.outlook.com [40.107.93.46]) by mails.dpdk.org (Postfix) with ESMTP id 868AE4065A for ; Mon, 12 Aug 2024 15:04:01 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mfg+pm00QdOH8pO9A7yGPkpJbaRO5VdWFsKD3unthQymXJDp81YGMB0+7dhtdgVK5Z7lq3bxP6XyTDJqVzRjUhPAOSA6U43dKrGPszS3HVIqajFWjGQyvE+2pUEB5SbZ8brn6oREd1r5YLbdKjJRKp7VVAYLcah4D5HVUznWJVILiDyyhQQDgFU02bWytFp2OxE60DLtgF+zDTyqYyaJo9AH0jgv+9TQFjKhvBjEOYD8IKCbIfcSj/wyz3Dsgdozn5dgPi5UPQBrt6VdzdlffL2IJXe8YQDLGn3/rnlIB3ZK8n/Iw04HPy6e5Ptzxfp59av1yfe2dGSdUF3t2yQ0cA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=TBs8qu5KTKhz3OSDn0o5fGS4mwDz/GyiDu/SMZnydKU=; b=oxWjJRpxL/NygemZvXj9ZXD23doUjYMcg3ip5ExmUjlN0/vxksXMM96LfRzF7nAMYZ7kKoWFiW4oVP2G0bm7j+uKw1cqqCiNm23fjfe20YVwNxS++UaEohLDmMTY7v4+XJv7mEnJ8MdOU9Y23ICvbFUdHY6Xf1TG22KWTRyiYZDyD5aLRSXj4qMcfzOHLNUZwScpnDbLaEGPcuedY046kXrpTeGyqfIhseZWffniDNF2gIs+ennQy7A65RZG9SrvfDMi+UIQiBFNPYrLiOTUltSb84DC6zvyR+4GCw/tcX0TNdpmuZ+Nn5mS68rsAWD6rd1EoR5B9TCJQkTiqbz4mg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=corigine.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TBs8qu5KTKhz3OSDn0o5fGS4mwDz/GyiDu/SMZnydKU=; b=Nn/874bYR4H7sNX9B8tDBTfrJ7I3MGRDdai9/ht+2H2UytF8lFV8fz55ybpkpKKAyd29mdK4vmIejLNiBLRT2V/VRMDsaAMzORpgax5clcoor2+aWo/LW5Ca/H+gJAYsLMUqmre5cHJEC2w2Ms/pdcVxdHeDQfoHmI+xbA0/m57BS7BrZY0eGapKFAQfD0dUN/t1eSK6+fMMd9beygNC84TsmtmG4brIaHYrApblFrjNXcedmbBUxTF5bhDodE6MaUrI32KSt91vnsR3YYZX4XadmelKYc0wdVXDPE1YeI5ssu0TtGeJSaEAYibHDlciL2knKPbfA3jH5cQ7hBxviQ== Received: from SA1P222CA0120.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:3c5::16) by CH3PR12MB8849.namprd12.prod.outlook.com (2603:10b6:610:178::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.22; Mon, 12 Aug 2024 13:03:58 +0000 Received: from SN1PEPF0002636A.namprd02.prod.outlook.com (2603:10b6:806:3c5:cafe::4a) by SA1P222CA0120.outlook.office365.com (2603:10b6:806:3c5::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.22 via Frontend Transport; Mon, 12 Aug 2024 13:03:58 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by SN1PEPF0002636A.mail.protection.outlook.com (10.167.241.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.8 via Frontend Transport; Mon, 12 Aug 2024 13:03:57 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 12 Aug 2024 06:03:41 -0700 Received: from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 12 Aug 2024 06:03:39 -0700 From: Xueming Li To: Zerun Fu CC: , Chaoyong He , Long Wu , Peng Zhang , Anatoly Burakov , Chenbo Xia , dpdk stable Subject: patch 'bus/pci: fix FD in secondary process' has been queued to stable release 23.11.2 Date: Mon, 12 Aug 2024 20:50:15 +0800 Message-ID: <20240812125035.389667-139-xuemingl@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240812125035.389667-1-xuemingl@nvidia.com> References: <20240712110153.309690-23-xuemingl@nvidia.com> <20240812125035.389667-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN1PEPF0002636A:EE_|CH3PR12MB8849:EE_ X-MS-Office365-Filtering-Correlation-Id: 79e7e298-c016-443a-dd74-08dcbacf3a6e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|82310400026|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?oN5L+GKM9fuIfkZYnlPkfXLVNgGFsH3YBJ1njnYruzLQc6XncnOah/r59uEc?= =?us-ascii?Q?y33qCAK5/+8h6VCIp2VwagtfXqnu2yxKsKPrDYqJDlu83S1f3qxZHmN0EYgN?= =?us-ascii?Q?e+38Qqosqj/oo2nbSEVJsNgbOSD6L88L27QszP5RD4mPfTkBAcHmtFYO9R46?= =?us-ascii?Q?RE6CMvERKr2GMleWTpoAzZWbOc2Q4GL0u9cCMZ+vrBwV+hA8cLriux+jflNF?= =?us-ascii?Q?vhRP9+i8prHM1BjUL6pQM895pdgoGO+iLOjXOcCVzYA+nqm5Lv5/EO4xmVhj?= =?us-ascii?Q?tLPJRStzHnbnK1pCBmiZ5vHrr5dVNxruuzXpnImdYJ0yQGh6a3yhW8nWq/qM?= =?us-ascii?Q?mbk8dxbhGA15+q/Ezox8hHsE5fsmdlBHLSxDq92iKggbY5SAXn9k0bFMJdm4?= =?us-ascii?Q?/6DpGFQYkl3h8gzMADF/+BdEy0W32VSIo/myLst4KOfe3JvRPVPMz3KvPk4v?= =?us-ascii?Q?4cU5hCF8MDNfgTwh31DfmX2nGJWiIWHG2bgNMO/pBK9+AecgNDxhnMXCsbHV?= =?us-ascii?Q?3Cm6N4PzG0RxJWCxXOPCehZEHrLj3eRBGJR/3TUcWNqwlo7/aK9eOXBxt6BS?= =?us-ascii?Q?2iQMnBtxJSacLR4XyqdoMq0xxFi3bWagKOxIEgD80u2juoJ2prhoFO5A7AnG?= =?us-ascii?Q?gqX4gxGX9cHVfiLp2XpjqMdZMld2DW/zScl0t+69liWn//1yBQg2FA3Fp8rW?= =?us-ascii?Q?KKP28jKtE0hFVKtFhSMfMN61Ii7BkrXtd+vNUFHTmfGRdBCi2QR4aJqrLYkK?= =?us-ascii?Q?tABf3WJsGDe3TMgCAdZXOnYfs71vxIXWBjp3iy9a1AR1MrP/vsYdvBwT/36/?= =?us-ascii?Q?deFqwI+0e4Iwu4DVhSjJQpSFKUaioKKC0UQSr4+XuatKN8Q9EPPMBCOlJUTu?= =?us-ascii?Q?+7GZ0mP1MvvHubZF1Bv5ODqIG/f0jJ2OcNyDugXHT1oWJfEcGNt2bOjsjbZZ?= =?us-ascii?Q?KAaYtq1ZFONrYUKEuB+1WW6q+ee0sxsEE0RNyfGLOYVl2xa2nnXn8EE20N68?= =?us-ascii?Q?huDWJ9Zd2yk7Tx8a6R1nqheX/1CwbgfFMPclUGqoUekZNgbAefU+RDGqaFPW?= =?us-ascii?Q?fprUTgyGsmE3ezgl6ffAOEnvumn7lJDXyE+Bb33hD2yatOQN4sCauR5WmhUz?= =?us-ascii?Q?1BFfknXbqC8wFX1zy7CobZXL3y+6VM7oHFNouDNayCtox90DauRf1XumurbK?= =?us-ascii?Q?R3iTuE8UMpeIYZIGkorMulIuxLyy1bpNoaIoEPBFwz7nic6XU2mkzz6fBpka?= =?us-ascii?Q?myYVre+xCtT9l7ExaoNKa069jc2gdJGWDp/0tvsXyyfVszziAhkIUtLNCPHW?= =?us-ascii?Q?U4sXH4EaTtSNuTvSsvewJMaD2zgMXA2TXGH+fDI0tTN9gj/jbL+TNqviZXbe?= =?us-ascii?Q?OzNesK0HyysdCHlLoyiJosJ8QH6HIsBtXLG4NSLgUNTHyyuEwlxpIYARXtVV?= =?us-ascii?Q?Q5xv9CjBoga2ctBEDz5Qpr2rYa+g3qNS?= X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230040)(1800799024)(82310400026)(376014)(36860700013); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2024 13:03:57.9702 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 79e7e298-c016-443a-dd74-08dcbacf3a6e X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SN1PEPF0002636A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8849 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 Hi, FYI, your patch has been queued to stable release 23.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 08/14/24. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://git.dpdk.org/dpdk-stable/log/?h=23.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=a5375f449286d4b81e5fc9f4af51054e24aac361 Thanks. Xueming Li --- >From a5375f449286d4b81e5fc9f4af51054e24aac361 Mon Sep 17 00:00:00 2001 From: Zerun Fu Date: Tue, 2 Jul 2024 15:40:07 +0800 Subject: [PATCH] bus/pci: fix FD in secondary process Cc: Xueming Li [ upstream commit 847d78fb9530fff401bf167298aad22766a1f04a ] In the previous logic the 'fd' was only saved in the primary process, but for some devices this value is also used in the secondary logic. For example, the call of 'rte_pci_find_ext_capability()' will fail in the secondary process. Fix this problem by getting and saving the value of 'fd' also in the secondary process logic. Fixes: 9b957f378abf ("pci: merge uio functions for linux and bsd") Signed-off-by: Zerun Fu Reviewed-by: Chaoyong He Reviewed-by: Long Wu Reviewed-by: Peng Zhang Acked-by: Anatoly Burakov Reviewed-by: Chenbo Xia --- drivers/bus/pci/linux/pci_uio.c | 5 ++++- drivers/bus/pci/pci_common_uio.c | 32 ++++++++++++++++---------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/drivers/bus/pci/linux/pci_uio.c b/drivers/bus/pci/linux/pci_uio.c index 97d740dfe5..4afda97858 100644 --- a/drivers/bus/pci/linux/pci_uio.c +++ b/drivers/bus/pci/linux/pci_uio.c @@ -237,7 +237,7 @@ pci_uio_alloc_resource(struct rte_pci_device *dev, } snprintf(devname, sizeof(devname), "/dev/uio%u", uio_num); - /* save fd if in primary process */ + /* save fd */ fd = open(devname, O_RDWR); if (fd < 0) { RTE_LOG(ERR, EAL, "Cannot open %s: %s\n", @@ -275,6 +275,9 @@ pci_uio_alloc_resource(struct rte_pci_device *dev, } } + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return 0; + /* allocate the mapping details for secondary processes*/ *uio_res = rte_zmalloc("UIO_RES", sizeof(**uio_res), 0); if (*uio_res == NULL) { diff --git a/drivers/bus/pci/pci_common_uio.c b/drivers/bus/pci/pci_common_uio.c index f44ccdf27c..a06378b239 100644 --- a/drivers/bus/pci/pci_common_uio.c +++ b/drivers/bus/pci/pci_common_uio.c @@ -106,15 +106,15 @@ pci_uio_map_resource(struct rte_pci_device *dev) if (rte_intr_dev_fd_set(dev->intr_handle, -1)) return -1; - /* secondary processes - use already recorded details */ - if (rte_eal_process_type() != RTE_PROC_PRIMARY) - return pci_uio_map_secondary(dev); - /* allocate uio resource */ ret = pci_uio_alloc_resource(dev, &uio_res); if (ret) return ret; + /* secondary processes - use already recorded details */ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return pci_uio_map_secondary(dev); + /* Map all BARs */ for (i = 0; i != PCI_MAX_RESOURCE; i++) { /* skip empty BAR */ @@ -230,6 +230,18 @@ pci_uio_unmap_resource(struct rte_pci_device *dev) if (uio_res == NULL) return; + /* close fd */ + if (rte_intr_fd_get(dev->intr_handle) >= 0) + close(rte_intr_fd_get(dev->intr_handle)); + uio_cfg_fd = rte_intr_dev_fd_get(dev->intr_handle); + if (uio_cfg_fd >= 0) { + close(uio_cfg_fd); + rte_intr_dev_fd_set(dev->intr_handle, -1); + } + + rte_intr_fd_set(dev->intr_handle, -1); + rte_intr_type_set(dev->intr_handle, RTE_INTR_HANDLE_UNKNOWN); + /* secondary processes - just free maps */ if (rte_eal_process_type() != RTE_PROC_PRIMARY) return pci_uio_unmap(uio_res); @@ -241,16 +253,4 @@ pci_uio_unmap_resource(struct rte_pci_device *dev) /* free uio resource */ rte_free(uio_res); - - /* close fd if in primary process */ - if (rte_intr_fd_get(dev->intr_handle) >= 0) - close(rte_intr_fd_get(dev->intr_handle)); - uio_cfg_fd = rte_intr_dev_fd_get(dev->intr_handle); - if (uio_cfg_fd >= 0) { - close(uio_cfg_fd); - rte_intr_dev_fd_set(dev->intr_handle, -1); - } - - rte_intr_fd_set(dev->intr_handle, -1); - rte_intr_type_set(dev->intr_handle, RTE_INTR_HANDLE_UNKNOWN); } -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2024-08-12 20:44:06.865533453 +0800 +++ 0138-bus-pci-fix-FD-in-secondary-process.patch 2024-08-12 20:44:02.555069385 +0800 @@ -1 +1 @@ -From 847d78fb9530fff401bf167298aad22766a1f04a Mon Sep 17 00:00:00 2001 +From a5375f449286d4b81e5fc9f4af51054e24aac361 Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit 847d78fb9530fff401bf167298aad22766a1f04a ] @@ -16 +18,0 @@ -Cc: stable@dpdk.org @@ -30 +32 @@ -index f7d990d33f..4c1d3327a9 100644 +index 97d740dfe5..4afda97858 100644 @@ -33 +35 @@ -@@ -234,7 +234,7 @@ pci_uio_alloc_resource(struct rte_pci_device *dev, +@@ -237,7 +237,7 @@ pci_uio_alloc_resource(struct rte_pci_device *dev, @@ -41,2 +43,2 @@ - PCI_LOG(ERR, "Cannot open %s: %s", devname, strerror(errno)); -@@ -270,6 +270,9 @@ pci_uio_alloc_resource(struct rte_pci_device *dev, + RTE_LOG(ERR, EAL, "Cannot open %s: %s\n", +@@ -275,6 +275,9 @@ pci_uio_alloc_resource(struct rte_pci_device *dev, @@ -53 +55 @@ -index 65f72b7cc6..30503bd23a 100644 +index f44ccdf27c..a06378b239 100644 @@ -56 +58 @@ -@@ -105,15 +105,15 @@ pci_uio_map_resource(struct rte_pci_device *dev) +@@ -106,15 +106,15 @@ pci_uio_map_resource(struct rte_pci_device *dev) @@ -76 +78 @@ -@@ -225,6 +225,18 @@ pci_uio_unmap_resource(struct rte_pci_device *dev) +@@ -230,6 +230,18 @@ pci_uio_unmap_resource(struct rte_pci_device *dev) @@ -95 +97 @@ -@@ -236,16 +248,4 @@ pci_uio_unmap_resource(struct rte_pci_device *dev) +@@ -241,16 +253,4 @@ pci_uio_unmap_resource(struct rte_pci_device *dev)