From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 19F26C3DA4A for ; Wed, 14 Aug 2024 13:21:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To: Content-Type:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=wcABRMHL2ulYhthnVZF/fRMjR5F0znFiDK12irBq6p8=; b=hcPxoj+LP1CO2CqEfT/EB7r5CC OSjwUZZRNEpe+NzVo3z0O123BDjd8IjPeKNhh8dAMuUuEkzUxW5LRdnCxGfAEtA5Fm912yWbFQYDV yH7FMWWIp+tT2tcKI8Y1F+4eBxjPAT/+v7ZVOOBVaRtXJo8EaI1ZvRLe3DI8wr9EMUiRVYTXOBEgQ i9IpnSrukKWjgGFBCEELlVQaJfcIh7knlc11oF2LHchFvjaLAAfFg1oN6le1D+iKOHf5ylH4jwUrk OgMECqLiak6KT+hwn6OX5/rC/JZIcURKTs7EDUG2lxGTPBly5/cbjnKnE/ecq3YTBgnPTeMRXRuLz SBRna4ig==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1seDvg-000000074Ti-3iCE; Wed, 14 Aug 2024 13:20:44 +0000 Received: from mail-dm6nam12on20601.outbound.protection.outlook.com ([2a01:111:f403:2417::601] helo=NAM12-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1seDv1-000000074JK-30TZ for linux-arm-kernel@lists.infradead.org; Wed, 14 Aug 2024 13:20:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=d9u5YVFEx4pvKYO/d8il0tdwaMWmMCvbcU0AT/e8x4zPgNvcMu2/qDL2gfYR133YA87daT6Xu3nWku1XTuqfU2vHD2PiyzqHJfSiG+8r8GgJ1JuW4JUKecu18if7ru0qWp2I7NdS8gEDcdXLn3biOy/Cc8pJOAYZH9n69paJ4k2/dYc7NeT7gDYvblEVYU1Rsf6ot1+T78qVIiT1qabMXMMCGkkddRjQhyI0Vc2dcyFKv8dl8bLqKUQ/dLZ3VGuebFH2k/PVQ/OzBmNU1NJyIdzkw4/SSCF4UllQRc0xlum71wGEGgqI+py16lwbjAd5XjxqUyFqpzwzveWsZwle2g== 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=wcABRMHL2ulYhthnVZF/fRMjR5F0znFiDK12irBq6p8=; b=JH+GdVmb7Ova3WJgsTvQVDy62gaEevKvsqkKKjgrEIWZGaEmpvmh739O4Kxb9n3EnQtyEu+DvbQh5dofenjc4cdhk6U2Yk/N6/2LzhOJhN1mbiyO9C+dNbFNfbzgaJCk+DsoFuvizZM2qbPq3uzF8iwDRGHKJZh5k8+pR58wcFtrsHir0TYInTHfv1X+Ml8SOvr+6AaFU9Nrmiepi9J5kYF+zpVkhi6PxHgF28YKXsehalHfQAUOj+ww3uTJ3GtPzvNyMr17KDq/jHiuL9FuBvdydj7WJ9XzCv88Qk5f/1AM/ROwgrkHTDWIS2HcWtN3qH5mAQcF9Vbrq2RzMrgXQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none 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=wcABRMHL2ulYhthnVZF/fRMjR5F0znFiDK12irBq6p8=; b=cLRJJB2BgXvLI7+wctpLOthf0EL47Klylp+sxjwzv3pWVgwx1KsfIyFcETNJzzLimw9wSBZTFTqhTuruZM27qyrgKtvwpZDUIKzI60TnegpRqD7679s8+vEuj/Tvy8/FvOPOZeE59fEb2DT0s7XuuoYW13fHnCHL2yly52hGNNApGKWR/vMYeinThE7z9lC9TzgAZeJB2D5uXA/S/PaRIdlBD8JvybRZTAoRpQcULDMkmlcFfO39DHGRXLLn01WeXJBOoqbPzGRLXpFpz+EckQWR+tjliMwVvmMc5++52yupj5zX/I8lBLckKDToQ8bAcpFxYcY8ti4gfb24GfFJXQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM4PR12MB7767.namprd12.prod.outlook.com (2603:10b6:8:100::16) by SA1PR12MB6823.namprd12.prod.outlook.com (2603:10b6:806:25e::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.23; Wed, 14 Aug 2024 13:19:56 +0000 Received: from DM4PR12MB7767.namprd12.prod.outlook.com ([fe80::55c8:54a0:23b5:3e52]) by DM4PR12MB7767.namprd12.prod.outlook.com ([fe80::55c8:54a0:23b5:3e52%3]) with mapi id 15.20.7849.021; Wed, 14 Aug 2024 13:19:56 +0000 Date: Wed, 14 Aug 2024 10:19:54 -0300 From: Jason Gunthorpe To: Peter Xu Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sean Christopherson , Oscar Salvador , Axel Rasmussen , linux-arm-kernel@lists.infradead.org, x86@kernel.org, Will Deacon , Gavin Shan , Paolo Bonzini , Zi Yan , Andrew Morton , Catalin Marinas , Ingo Molnar , Alistair Popple , Borislav Petkov , David Hildenbrand , Thomas Gleixner , kvm@vger.kernel.org, Dave Hansen , Alex Williamson , Yan Zhao Subject: Re: [PATCH 09/19] mm: New follow_pfnmap API Message-ID: <20240814131954.GK2032816@nvidia.com> References: <20240809160909.1023470-1-peterx@redhat.com> <20240809160909.1023470-10-peterx@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240809160909.1023470-10-peterx@redhat.com> X-ClientProxiedBy: BL1PR13CA0232.namprd13.prod.outlook.com (2603:10b6:208:2bf::27) To DM4PR12MB7767.namprd12.prod.outlook.com (2603:10b6:8:100::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB7767:EE_|SA1PR12MB6823:EE_ X-MS-Office365-Filtering-Correlation-Id: 2696fc85-905d-4d04-da45-08dcbc63ca1b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: Y8f9/I/bHlv5c4PDPxV671cXf5xIzGW94ZTkdYkBVvjfH3FtoaSAKdcoP6iRbjSiD0BePxcEoow82nbdy7QZLg7uC5mQK18qxQ5JWPVd+RK+2y6D20Krof3dRnMkp0pCy1l5YChNqMP0T1U+RmoTO/BQxAjoXqt0iekGjNX1qt7Ld1EnQkFFLwhYOVWuWIZqKARQBxDEvPzwBb+YsUCp+wO3cGtoAS65pbDQ2eyp2GMV3Cm65e1DAqNwVSWSIsfIl1D1HF6sW33T197zWf7WIS8jd5JYokmEVEYvwwn6rcRRDe83ZaEz8unCEI6gYRm/pA5zxeUMs0U1u/68Ce0RY/6w9W6+X7LYPOSa5fJFHmnUjzPtL4rtKIq0/Y9mrwkGKIo1Kmjfol+/wWwND45PHDCkpbLhUMi4Lm/xyvMhofg59TI993d1x7tW2kksCYFBuGeNXrfE5g7XQ6taKfItbLt6fQJZV5WigzhmLY0pNy4D9CdGCNESobuLtgdRhBmQVjnOH1U+K71WGLI3rIqPTq/TrNW+at3P1mvIxm0owh4zyKxT2mrrnL569/sFQ4+ZoYowWe8kXvABlbY6TfgLXj6kY7uuIBcgT9cmHupGdMwzU5iD57zFZzPEaHbnEy+5+6ALXNrbBie2Zxn4a6YKSVyZ82GPqRpTO95UmoiXxPU= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB7767.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cyPTSAUc/4m0xD2ih334aJxqMsS2rb4zHpfiFEK4ThFEUcAvUs2v0bbHeE0l?= =?us-ascii?Q?G1dYfjeYGetc1lTPDuomII9wuIjDGYXc/BzaxeRKOZckfYuFqvUO20yPhmAb?= =?us-ascii?Q?tnhsv+QOEzdALWBKgOlilLV7eXnF2czS1k17gukLmtkIvHAbhM2/lRFnXrbG?= =?us-ascii?Q?HCbGDYbvOcTCzY/+5oa05XFIu5jGQOWyaUfiPDvYRk32DPBbThG4Wu4s5RK9?= =?us-ascii?Q?9WI9zB3GYZKlbg5zHHknVcnB4BDCR3znEjh9db6RyOzKPEA1nSCTpzHZ5GwH?= =?us-ascii?Q?Nc09IwXka/rhlYar+2xTEQy9gS9a3MRaoUuSpozAeDf9M9HDIAijhyDSJa0R?= =?us-ascii?Q?tYytVs5DdtoVuhjUIES3A90b6bM3Lys/ngwOfjx+QRyXN+JoPuNftUluFLyj?= =?us-ascii?Q?cs9nDFcfyHslR6rUwA//sHYs3eIUpslmhVUgquIWQafBEKs/B3xvPVLfq8gy?= =?us-ascii?Q?y2v1K6yqUtivOiDF4zlpxvxmol4HU6u8qn6BZwK+0eKq+HhhF/0nilUzv2+y?= =?us-ascii?Q?0FbV2KQYBBRc8AQpN4GOyIrkwWZS2f7VonQbrd9VhUXDoW9HNJ7IeVMjaQHH?= =?us-ascii?Q?kUzy+Mp/Y3hn3rRJH10nXWd0qB+9in3jLVRh23Pe33Qq/OUCmWUV+bHae0sA?= =?us-ascii?Q?m90AAmsSqpwErpPBaD2PhnQQlFrXEpYVH1Ig7DaKb+LPSPiyMI+SDa5itkrm?= =?us-ascii?Q?TSlnsyz928qFkj42SpI8FGgqhFs+rKt5SF2fSmmLvo2rknQX12ZWyS6FQyBb?= =?us-ascii?Q?mkhZcNgRQmzk+/OogmzbXQbpzjfcEOGzTcmcgA6qo2E8EwWLq4ARceN8ESzz?= =?us-ascii?Q?xzXwjjvnOx2QOylogIGfrQcOvEgoWXbV6s2rlcac1RNcpG6kRC+nps1vS+1N?= =?us-ascii?Q?NYEcCB+8FfMZJmg7WYbuC7N8svT7+ffvrRCJ/yhqcHRSLATkz4AeJhY1Gc74?= =?us-ascii?Q?Pu6W1EzpLXSzPn6/RfkcFm0bt74he5F6ibWzvQXBz1QbO1E1nkR8MgYdDRUP?= =?us-ascii?Q?qmIBZcCbotRaZ2Dl6J9IsgGN7aBq+NFUnkb0eff5Nz6iRczGSIkS5Nr1ZRsF?= =?us-ascii?Q?MhRsfYjzICMaAJmZ3e9S6XEr9O2FGW8hqTUl0+3bjIwksnNwKOO81Lbt5DIO?= =?us-ascii?Q?uzkn22jA0onamjcMhkkA/cBuurYJZgkCZrDR2q8inkVLe+lozzYtQM2fCnk4?= =?us-ascii?Q?iAIEnv8L6NfkuV/9Qs5AQczobe335Te8O5pLZkMjo0FYgHjbPwSolY17a2lF?= =?us-ascii?Q?uU9qYBK+5If3gzOAUJb7JsrCdfno+AR3fBcHrOWP69qXOpHzVafpXKNglGXP?= =?us-ascii?Q?9ZKf4xE0vaSkqRr+0f2lh1kelT6HgjSCFvfpTByIezT7l1nM8Y2F3DOTu71S?= =?us-ascii?Q?y5T0Gt9/C7HBeaVDQuPpBukybXG4CirCGVp4mW3uCDCirKvTECf7HGYt8gQo?= =?us-ascii?Q?h4t8x9rMSIPygiCCzWZX6bwZelWYQGnMTsrl+RYlTeu2t+C4qjzxnkHRFsUo?= =?us-ascii?Q?g6se6BFVRLZ4eaiIQ2zbN0YPbuWmYPlYNnUHidqDsKG/Uq2fZIiFLNB2TqJE?= =?us-ascii?Q?/mxlrtCU4tDyA6Db3N85SMc0UTAu5MbdHFrCgROG?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2696fc85-905d-4d04-da45-08dcbc63ca1b X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB7767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2024 13:19:56.0004 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5cFQS8qss3iBcxaeCgh7IuLPjgJxck5EZ66J1HO32L5ooDVSdlA0KNM92BSutJHd X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6823 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240814_062003_786635_682FD808 X-CRM114-Status: GOOD ( 15.46 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Aug 09, 2024 at 12:08:59PM -0400, Peter Xu wrote: > +/** > + * follow_pfnmap_start() - Look up a pfn mapping at a user virtual address > + * @args: Pointer to struct @follow_pfnmap_args > + * > + * The caller needs to setup args->vma and args->address to point to the > + * virtual address as the target of such lookup. On a successful return, > + * the results will be put into other output fields. > + * > + * After the caller finished using the fields, the caller must invoke > + * another follow_pfnmap_end() to proper releases the locks and resources > + * of such look up request. > + * > + * During the start() and end() calls, the results in @args will be valid > + * as proper locks will be held. After the end() is called, all the fields > + * in @follow_pfnmap_args will be invalid to be further accessed. > + * > + * If the PTE maps a refcounted page, callers are responsible to protect > + * against invalidation with MMU notifiers; otherwise access to the PFN at > + * a later point in time can trigger use-after-free. > + * > + * Only IO mappings and raw PFN mappings are allowed. What does this mean? The paragraph before said this can return a refcounted page? > + * The mmap semaphore > + * should be taken for read, and the mmap semaphore cannot be released > + * before the end() is invoked. This function is not safe for IO mappings and PFNs either, VFIO has a known security issue to call it. That should be emphasised in the comment. The caller must be protected by mmu notifiers or other locking that guarentees the PTE cannot be removed while the caller is using it. In all cases. Since this hold the PTL until end is it always safe to use the returned address before calling end? Jason