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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3FDAD743C6 for ; Wed, 20 Nov 2024 19:20:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2468A6B009C; Wed, 20 Nov 2024 14:20:39 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F5C86B00A0; Wed, 20 Nov 2024 14:20:39 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 070236B00A1; Wed, 20 Nov 2024 14:20:39 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id DAE216B009C for ; Wed, 20 Nov 2024 14:20:38 -0500 (EST) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 466F8A1008 for ; Wed, 20 Nov 2024 19:20:38 +0000 (UTC) X-FDA: 82807439064.18.F7DE4A3 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf30.hostedemail.com (Postfix) with ESMTP id D392480021 for ; Wed, 20 Nov 2024 19:18:56 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=GEJCNVxE; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="WwzTN/Cm"; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf30.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1732130368; a=rsa-sha256; cv=pass; b=FuwFTz/RYwQT1Ooz5swY/ljXSPEMfg5fxxMLF2LQQd0WWQEC5K3O10YuElXxCd0I7o7yup tBCypdkYEQJ1P7PmDsOsq5BAqKr+Sb3dJEab05EY/lSIBZgNEU+zG23ZmchZs0e4Yj/Hi5 gLGnLAi0RWPSEmlLTeD+kljB7hu0GRE= ARC-Authentication-Results: i=2; imf30.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=GEJCNVxE; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="WwzTN/Cm"; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf30.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732130368; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4vCHbbNaGhu3xkwnyU2RfwiFAgmKcmw17si3YzauKiU=; b=5AQQWOAXL1HE1OV8nLPBkUPzPl0glom5yo0HGE3/Bjs1xJb9JsoIvGfysstLct19X5brX2 Wag7Ow91B8kqVKYuZ6ybfJSbvU4gMlVBs93ynMB6boVHhwpfU6Ua/loahIvjgWNrPa/vL0 PT3hlYDnDtaWDcq8EMI+hrccBj0nWbI= Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4AKFtYxE029572; Wed, 20 Nov 2024 19:20:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2023-11-20; bh=4vCHbbNaGhu3xkwnyU 2RfwiFAgmKcmw17si3YzauKiU=; b=GEJCNVxEJeMdjeHmwlYnzMTbvxIR5HdsTz pFctdYdPQUcAS4VDvyh/65bjHiddwGK6KKMEX6HAZRnwdt6TLCCPGuITjVfU5/0g UMhZI+w35Z3S0zu1lqeGghXGiRfTVxEX83+hvA6vIEfSp5QQm2kSiZ4FHqP6M3+4 y7dZRhbnp6vk5Agx0qfDMwY12DPl4iLh7+PFubnEXQasmqP92Akfi5Rz+5y0WXbb JWwme7WA+sA+LrbRC5alrdj1GWaHNoEWRpr8R2ImTgkdsON87y+t/M8/PYYZlt9e 3wwkiQu1OMXGLWv1YDKnxSFrCuUGI2B37DHIFBi6hHNI3r8E+94Q== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 42xhyyg415-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Nov 2024 19:20:20 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 4AKJ4eG3008457; Wed, 20 Nov 2024 19:20:19 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2176.outbound.protection.outlook.com [104.47.59.176]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 42xhuak7f3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 20 Nov 2024 19:20:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dCpvjL+t0c8XXTLz8OIte2jHZZtDpjtd3xNPLnVARO9WZyrgKewzunrl415cnh2tt20F7vBsFyD8SaT/ps/X3bxB919rooPEwq6+gU15AmaeMW6wxjjxATaqOTJKBsDihZe6vroQUeZ2hQ4vKlfmbQjNxFuUl38sedDVLSNgTTuvS12TzVe9kgPGqbiu0I6yDXVxsygIEUezP6qeLCRFz0AIMVQdX6jdrLw92KgwqKhiUkcWkyVyppZzUd+SVje+mvOfyCAZEMkuAoqX07xSyJsUdDdCbIAcgjrI2Xl5k5/LDGusRVApOYC7PuF23l0Vwnt/SY0qxaMT5cd//sU+Aw== 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=4vCHbbNaGhu3xkwnyU2RfwiFAgmKcmw17si3YzauKiU=; b=UJDygjVOQzkzKedrgl5T1SgCyRO6p0kvrlthhFDZPnBUjeCGgYP8JtNrja3bvWhclqSBZorcCQ3be3j4IQEw1DSUXNVB7rnf1t6oSaEr9iNA+sHfc89N635iwaECfAtYfTwDLE2vER8Z/GNFDvHh/TTsZlp58oS4AIIgqHseryi8sE+Cd4aiaTooFPVpVefrJ/bcZZd4e60l3cqKBrlcT8BMTDKq3+0KCcNGVw/0XSrSeOYeQLqa/XBnxOLpqYIXci1gNanTjdEDP5sXHEdd26C3uOaj0Ou6HaMB+G101EYbe52BopD4jNbf3ui/D1EGMorTxsejsKzxcdhkl+Q1+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4vCHbbNaGhu3xkwnyU2RfwiFAgmKcmw17si3YzauKiU=; b=WwzTN/CmbEN1WpulFcrWyn3ddJx1yb3BiQ1Z7FVRnSqhIu6bn+VkHp01QkMQyh1Mw/TkbbjPUdX6trmPN2oaSw4jlhU9LrMW8h+Z3croi1oyKqUcHwEYbWURCE2+PXQw9ihn01vt22GN8/mNu2hVHfEesnjCIlBgtFI+IHqk1/E= Received: from BYAPR10MB3366.namprd10.prod.outlook.com (2603:10b6:a03:14f::25) by SJ0PR10MB4718.namprd10.prod.outlook.com (2603:10b6:a03:2dd::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8158.22; Wed, 20 Nov 2024 19:20:15 +0000 Received: from BYAPR10MB3366.namprd10.prod.outlook.com ([fe80::baf2:dff1:d471:1c9]) by BYAPR10MB3366.namprd10.prod.outlook.com ([fe80::baf2:dff1:d471:1c9%7]) with mapi id 15.20.8158.023; Wed, 20 Nov 2024 19:20:15 +0000 Date: Wed, 20 Nov 2024 19:20:12 +0000 From: Lorenzo Stoakes To: Alice Ryhl Cc: Miguel Ojeda , Matthew Wilcox , Vlastimil Babka , John Hubbard , "Liam R. Howlett" , Andrew Morton , Greg Kroah-Hartman , Arnd Bergmann , Christian Brauner , Alex Gaynor , Boqun Feng , Gary Guo , =?utf-8?B?QmrDtnJu?= Roy Baron , Benno Lossin , linux-kernel@vger.kernel.org, linux-mm@kvack.org, rust-for-linux@vger.kernel.org, Andreas Hindborg Subject: Re: [PATCH v8 3/7] mm: rust: add vm_insert_page Message-ID: References: <20241120-vma-v8-0-eb31425da66b@google.com> <20241120-vma-v8-3-eb31425da66b@google.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241120-vma-v8-3-eb31425da66b@google.com> X-ClientProxiedBy: LO2P123CA0039.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::27) To BYAPR10MB3366.namprd10.prod.outlook.com (2603:10b6:a03:14f::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB3366:EE_|SJ0PR10MB4718:EE_ X-MS-Office365-Filtering-Correlation-Id: 47b53e83-0567-4302-ac43-08dd09985cf3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?UuZOQQOKZnr7GTGjfoz7ePQZ9Bbyxt9ZQdzudIFpTGh+ln4g4fkwmJ1I9pib?= =?us-ascii?Q?hZohgMWlBuATZG36wUSyphwbl4zK76TN8tUtok/3wTY4+sIUjdvjkhlwpPfX?= =?us-ascii?Q?XDGu4T0oN2Kms6H9g3a/bXKajvz0WWMf35XYKlW1+BRTnUKi0wrjEX4A8N0S?= =?us-ascii?Q?g5R5Vkmf2Y8j8AY2zIBjI8i6XR6C5Svt+kcmbtKRLZkL00szHEGddP5jxkM/?= =?us-ascii?Q?AOxvXFaHJzqbIEaQ9pA9+oYH9zQZ4CF29dyzWWESTUe9DgEb7GHjKiRSv56R?= =?us-ascii?Q?2kgQSM8uzjDdcF+v41BJeyAFLsNSc4HTiXdbFklVwCT24qjkfZLsWFTXxUYC?= =?us-ascii?Q?bn9qP4i9iNW2in/KwOXstW/3IoSfH/c+n+Up++gqMi0xnE2HvefGMhhguq6O?= =?us-ascii?Q?p7GgEflFr4yq9qUtzKfdA7SvRbiHLsU8zE+mL4vCaeUOdOLrUWnnzWz2yoOm?= =?us-ascii?Q?zRIjH4RRnwTSYPAcHJ0ZXZllDG0AACiRjLcWfcjUlbySjNJ9iY8DxliCIL48?= =?us-ascii?Q?Jq+7tj3WRRHg9wiSCJlHTNGCsIUEwCCgSOW6WY6q2WR2mBIYb2gkrKhpLlrB?= =?us-ascii?Q?FiOoQRUFdKypOMGYGzn94dBD8+PFSsR67g7geCSarw14YetCYVCWiTKsK11n?= =?us-ascii?Q?2mbNOhBle0YVlC4pKly4Lz4+NqKaDd40nljPf/R6dvajRqXJeEH0/srKOa/J?= =?us-ascii?Q?nbwjOVwXBSWC7lfCwnfMA53d+rVZmsasHwSeVVQE+ucD3dG0EOwmNgk61nl3?= =?us-ascii?Q?jjGgjuZBN3Pd3YyQ9RuBlAdk5Bl9zTPYYJlSm4w4MMBgWaxcxB1EPURQvbw/?= =?us-ascii?Q?maehtXsr3tnATYqlrdwgI6MSN+0EnARXa+tm5L72MmJNdHFIqIlGT5GuqT39?= =?us-ascii?Q?zvQ7LDufTQtgwwtWoLuuzh9crM4BNU26yqfNqxYYrZHJNy4j0EC6KaHYeJAL?= =?us-ascii?Q?vB9qOn4LsDRuRJGwuXYvZTIv+Qn7ZGDVuByBMfN8xQcz7N2eBGxQzOrNIiK7?= =?us-ascii?Q?XRZ/ym3mRF+qSVOTLk+JFk1GZEsxI578kAdDQFnQDvUWbIL0Z8ryrgyVpBcb?= =?us-ascii?Q?OQ/16KTjCZ6ITUX+kNk2wxPXCd2iNq57kIWAIUW1EjRrjbfGpg92pO6OkGWO?= =?us-ascii?Q?/W258bsYFZwl2O/Oa3YFVZLkQlB2Caj+cmcAXM2AlzBLhSFu1JGIJmFU7PsT?= =?us-ascii?Q?7aqMzX2INRxHrcu9OTjN/yVP3qgoPTHQSBbkTWplnjc9GOnXpWHJNaZEMo0/?= =?us-ascii?Q?wM3rQRz7RrOqxGkqCB5wdWZYM8FRocz0cSfQxzEaguN2tFCxQKNW0wxnWZ4g?= =?us-ascii?Q?JGynCC/qzqiyZrYeoP3afeE3?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3366.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?YrXzN/1FUmLhHkSPbl1FGQuTdIvM2v6zJ69atsY75j7Bu/oC15J091RmTjV4?= =?us-ascii?Q?Rk/nKLxS66Zj5e1DbVtLw15UKXA3Tjdb2uu1oAC+OYSqpttSMC4TyN6Al3Wy?= =?us-ascii?Q?FZFDCFR7FFIt3j0iBgexJJYs8S4MUshiCn+1KTcCSy1QWKr5jj/x+jzt2zZB?= =?us-ascii?Q?NymfTrFdus2yBJVqCT0Frlt+RHii2cpOPo8fILYO/fsaRTLBxfhaSo9Ix9TD?= =?us-ascii?Q?WeEQkcfoDQrjUGc/2VVL+wYYlPasBdS9ezHsUb4FATlwafaw/6WS8DZHOnfS?= =?us-ascii?Q?uJgTfRsy+90bPSP31V6e3FImoOenKTmEOF3PBiO5imKrerJk+yRkXJ71dcWs?= =?us-ascii?Q?Ub/0JPTcocLsZB6/MO0/mO7ywu6SGbD/oLRzspkizSivjw4OmUsTKw7b1tw5?= =?us-ascii?Q?aGeERoOHNHETvI8TpdKCIgHTrtC31n0+xuSzDYwkDWaTzsNvnoh/fX4azG64?= =?us-ascii?Q?uk1g3UzCRqPmEohljsrQKPYoRAZhXEioSow62caz2tLry9KqPx5JjVbJlcLl?= =?us-ascii?Q?6Ztt1gKHJ9ZQixYSfdhWtPVrTGRgMwfg04gGKbW6InQ9oXSmJvsmfcHLkfvM?= =?us-ascii?Q?d3OeZl2956qbw/0lU4NVl43eEe3wUmhC+TaNz7yJ5dercrkfynfpXlZPFP9L?= =?us-ascii?Q?x6QCo1Cm3z+jgl76q8BQ+efkL5p8g8bFJ1bzWoabvaYCypoHs/PryDWQW1ti?= =?us-ascii?Q?9GVOnhcwXWjr313VjArLQPHLPIGsl38A0THCwWkI2xSwOLexmxrttnM4ktfx?= =?us-ascii?Q?gNIb5HuF/B8RtXzMJLMexrOXKcaonzzSYsLLgDjAd/qCok3nl97qxdJ9Ltqh?= =?us-ascii?Q?aLLL39uuoT89dg/JRgdYcDJkBKZafQxSIYP2Nm26ZyJMe9q+fIQwsQnIWKPd?= =?us-ascii?Q?LSSOPqtU6ED9iXetdyCnb/AKgFWuiZ3BD6+7qJY1sAwwPkTXHFc0Pi2nDZli?= =?us-ascii?Q?p7w84LMqjAElpG7ZigzfbFau/nx6Kkb9GRFWev/xiObblFftees2VfJA2Ph6?= =?us-ascii?Q?8gZycJn0wIWuovqaUA5g2/UTPkBUoQ7hPv8hqhyh59mopXbSsDH0B8CWivyq?= =?us-ascii?Q?+9sHR6vmcWg493Nwpeav5prmw4CXg3CpSI7rmW8z2FJfRubY97FC7kKk/ukn?= =?us-ascii?Q?N7PHsADQyRRsM9Nkwj6XOq7D+40IWJ0qxbtmTAJziY+dmyi3s60N9N/vL0iu?= =?us-ascii?Q?bpneF7bnI2ykN0FicUcw7O5Lnq4oPwn4Bp88R30aRdq6BkLeGcGWkP+DhJcP?= =?us-ascii?Q?rpOU4MNJvfKd3dUY8alNApzjHwWGF4vcEnCuWLlldOVaBqjf3QmLIxkQwAYN?= =?us-ascii?Q?p4SrFXeUvm1+TJcpDsPbtWImGIkpSfx55m+U4el2QzjfnfB0olOGEM2qIUgW?= =?us-ascii?Q?e18n6UsvHVgG1F5LGNKdqWSPOmylbOrYlunTIAKETxPDWtoMvAg1kxUoctBn?= =?us-ascii?Q?1MSIiY5lmvQk6OdWY8yHeilw2TQhsnhU9qhpdbloTjMuSYsnu3KoLR7q57Pk?= =?us-ascii?Q?X17IXTdtpDzPST9h35fknFZK9O3UoOgd+cMDd2gLttXwkcR9xZL6RJ6JTp/9?= =?us-ascii?Q?igp5NzgO0mNeVTOJB9U3CdgoQttzOhg6u6mf8AGyAWHIJpsfbMorJ6b6x38W?= =?us-ascii?Q?xw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PqgQ6wcur65egvRrJQeHOWkbFQVVGxcD1M01ea+0WebOvr8nwe6ALSaw08MRB+9mM744fqgLhYcq3j2paAerGcHQi7nQ3CdzOK47TVGqrRvh2HCRj09K/TCDw4E+5OUJqutPqoeleOVVzOlmW2gfxL3jYZYpnic/mVsmco/alipe1/Uio08f8n4piN9n9ccDG5qv+SvXdWtKJ3j1CGTz787rPO9CP6Q5ks4eJ+sKPcgb5t7BddZlptX6yIChhVLlXZzWblDFzCHTEA+gh9WkwbnKoyDm7p4gf5X07xCKyD7PZSt+GDa2gL2apx6cCB/ML5bUN2r4DQy+40M2OEMsPohDe7FxmT22tvT9SmfTwONsGcqJWBCMYUbY8sQLx6gHJ/eZGHQKJ1IZNRnAhB8O1WpTa6KbNfb1OVxsDbJeQ2AzMk2BgeqgsZujCJoEw8gTXE3KGFYQSd35QF5tLisxgBtsve0S9bTkD6w88I6CX955Maajy7z1IyB4NcZW8sKw7OHKKkdNghHUdGMtQvIHKEceZfvZvp8oz185/O57G0IjKWVDnQW58EFlRhDRI12uiFRKGfS+s1uf2mq6t/MmWTqYe9Gc42wBRp2DNTWLc04= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 47b53e83-0567-4302-ac43-08dd09985cf3 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3366.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Nov 2024 19:20:15.8535 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gCpuLcfwG9QcwxeZ2gNmWiivKL8Xp/Lg57wfYFdA6DeMKSNEDbS7YMfwv4Z99vGu0oTNoB+zs3NplsUln+5dZnMloIIlBYbZy8sQldyRWSA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR10MB4718 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.62.30 definitions=2024-11-20_16,2024-11-20_01,2024-09-30_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 mlxscore=0 adultscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2409260000 definitions=main-2411200134 X-Proofpoint-ORIG-GUID: N_vvxBYPDsVgdJGFsspCbZjm2hiUEoXV X-Proofpoint-GUID: N_vvxBYPDsVgdJGFsspCbZjm2hiUEoXV X-Rspam-User: X-Rspamd-Queue-Id: D392480021 X-Rspamd-Server: rspam11 X-Stat-Signature: h3xpj16kknxn1cbcj6y7aq41pbihbram X-HE-Tag: 1732130336-496589 X-HE-Meta: U2FsdGVkX18D6TByWAgSqdaDlVUl6n+A/6u/1LX6VlY9oMHwvON8yL3LuG8PlNXFXG4jXuDi8ieQp/Sd1Io1Wo/oeQntD195cijDCZC8rJ/JWgtBpgFUG51OIufpVlvkYcWMQm8D66egRDNWsDuypZgHxCBYM9bcUINSwDukg/k2ehennNFBTTBEUsQQwpWuNboUeXVgQrdZXCDHyY3jiBmpTrTCZqwUWCkR+rWwfkbnCV3udi+9+hlQLJQcM/gJqVuV5joaKj/4M9vsfZEPWZPn8vDHhag3YUw9k2MgRAUQR2Znl2Z1Y4c+6AheTWTBsWR50FBYfyDEKQJD2ZQW3yFLmboL/u/DxeJIkupu7eGj/n+iB44Mj0DQHh09yc5I/TfltyUmyPZbDkaScT5YVJyOs1rnIxC4EqYGvvmc2wL9yXdhjOa8w6a7xhmpXy9/XcEL9jqMSJFKhPfDS94Cgqo1awfwa76KtUuXP1taJf1oOgp8Utg3D+XtZ2CGtPT7K6Y4y9wmLQYbHGTH1VLUJgPQIQSiYX0aj/0zK09LehTCrDGtCe67wg2U8iV0Fu9TZUgpA02326lFIivwV1ujd2CVMAZFfwzDhzB52zKrbV2O9dCa+CoArEiBAT14cBjrIE5UZDdyqOgvz1w5W0bTph8/PZf5bYxfZL5knjjIn6H09aq3AWS9KFagn/zwyfM8+xZRm7u1XO1nNzI8kCbnk6Him9Yv+9lCBRQKWlvbV1Mgf/dWn20u0ugY8sd0SG/ev0y5rq2jfqUvHTs9rV2t5CVMy4T9B+XkUrSEhT5Su7Okj/WoIJ38YfKj+WoYis/Jk4P5VKmTzWTUw/dpiPmGG4OApckAhRv6acPQMxMnRXam9+EPpmi4dITeZId0KQ/b3ZYcnVE1KsBNUkCSCjKAinxg25MlKPZTRWGFvjVoCnhb/Pt8TtM3tKllEXvP4mA3XwB46iHbnnWJoXIbYnq Gs2pplQ7 MqYP/5RvvY/IkyEC36Xc/DYTwW4H8xLRQPCXDoXtwTPK3joBkYPIwoFJB8Lc23pEzSEKW3xiU/+2iZX+WOHnhDFq90d61xLbsESDfZ0nMUs2T1pdb28czZA7o8gguSy6S7kgmM3Vmp4ec22lpm0dpA2ZXt3WgES2XpIAfe2Mtj3WsKBWHO3Cqqb98xmom0d+p9q+mcVEmtsRlch1WbtuK53ua5UDDgZpZFJw8s7nZVRv32xSOK2YLLMN0PIqhlYPcaGcE0mF5i2aNOqpqQmWEW1VBrL9bmEnUGGRRU0vSJkaQ/AqjHK5qYuMsOfzzdRGAXVo/HC3oddgi5BZy9Nlyv9qsIXNwGFQW4/Lz9XiDf3ONhr1FrmUfPTGWMxKKT+ReV/CN1zVNKchc2w2uUn6OZlYPi0+T5g8h3rLiw2/x0j00w3W7EY3Mq8rCJ+0Vgunx1JDTgaLbG8I9f3q7F05gHlOZeUpBS0bNhFsVFLj1XqDJ7j2mmZ2uDk+2uI6A5SB2ZzOD3NWPhF2N2IjPfizk+noqkXbp9Rq9+Q0jeBfb0QfEKMOhIyqDOLj5peQew0iQc51jrMyETI+jqMSj9/+mUFcQqtvrd10lOMNGCZb6WvivloMhIcrcH589i7t34gdlA3UPiQwdADpNUEpKC5+leRUpfI7gDo3KHYOGSu8MOp2gUYG8Rf64NDtNgDOi1EMftYqW X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, Nov 20, 2024 at 02:49:57PM +0000, Alice Ryhl wrote: > The vm_insert_page method is only usable on vmas with the VM_MIXEDMAP > flag, so we introduce a new type to keep track of such vmas. Worth mentioning that it can be used for VMAs without this flag set, but if so we must hold a _write_ lock to be able to do so, so it can update the flag itself, however we intend only to use it with VMAs which already have this flag set. > > The approach used in this patch assumes that we will not need to encode > many flag combinations in the type. I don't think we need to encode more > than VM_MIXEDMAP and VM_PFNMAP as things are now. However, if that > becomes necessary, using generic parameters in a single type would scale > better as the number of flags increases. > > Signed-off-by: Alice Ryhl > --- > rust/kernel/mm/virt.rs | 68 +++++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 67 insertions(+), 1 deletion(-) > > diff --git a/rust/kernel/mm/virt.rs b/rust/kernel/mm/virt.rs > index 1e755dca46dd..de7f2338810a 100644 > --- a/rust/kernel/mm/virt.rs > +++ b/rust/kernel/mm/virt.rs > @@ -4,7 +4,14 @@ > > //! Virtual memory. > > -use crate::{bindings, types::Opaque}; > +use crate::{ > + bindings, > + error::{to_result, Result}, > + page::Page, > + types::Opaque, > +}; > + > +use core::ops::Deref; > > /// A wrapper for the kernel's `struct vm_area_struct` with read access. > /// > @@ -80,6 +87,65 @@ pub fn zap_page_range_single(&self, address: usize, size: usize) { > ) > }; > } > + > + /// Check whether the `VM_MIXEDMAP` flag is set. > + #[inline] > + pub fn check_mixedmap(&self) -> Option<&VmAreaMixedMap> { Nitty + a little bikesheddy (this may be my mistake as I am unfamiliar with rust idioms also) but shouldn't this be 'as_mixedmap_vma()' or something? > + if self.flags() & flags::MIXEDMAP != 0 { > + // SAFETY: We just checked that `VM_MIXEDMAP` is set. All other requirements are > + // satisfied by the type invariants of `VmAreaRef`. > + Some(unsafe { VmAreaMixedMap::from_raw(self.as_ptr()) }) > + } else { > + None > + } > + } > +} > + > +/// A wrapper for the kernel's `struct vm_area_struct` with read access and `VM_MIXEDMAP` set. > +/// > +/// It represents an area of virtual memory. > +/// > +/// # Invariants > +/// > +/// The caller must hold the mmap read lock or the vma read lock. The `VM_MIXEDMAP` flag must be > +/// set. > +#[repr(transparent)] > +pub struct VmAreaMixedMap { > + vma: VmAreaRef, > +} > + > +// Make all `VmAreaRef` methods available on `VmAreaMixedMap`. > +impl Deref for VmAreaMixedMap { > + type Target = VmAreaRef; > + > + #[inline] > + fn deref(&self) -> &VmAreaRef { > + &self.vma > + } > +} Ah OK, thinking back to the 'impl Deref' from the other patch, I guess this allows you to deref VmAreaMixedMap as a VmAreaRef, does it all sort of automagically merge methods for you as if they were mix-ins then? > + > +impl VmAreaMixedMap { > + /// Access a virtual memory area given a raw pointer. > + /// > + /// # Safety > + /// > + /// Callers must ensure that `vma` is valid for the duration of 'a, and that the mmap read lock > + /// (or stronger) is held for at least the duration of 'a. The `VM_MIXEDMAP` flag must be set. > + #[inline] > + pub unsafe fn from_raw<'a>(vma: *const bindings::vm_area_struct) -> &'a Self { > + // SAFETY: The caller ensures that the invariants are satisfied for the duration of 'a. > + unsafe { &*vma.cast() } > + } > + > + /// Maps a single page at the given address within the virtual memory area. > + /// > + /// This operation does not take ownership of the page. > + #[inline] > + pub fn vm_insert_page(&self, address: usize, page: &Page) -> Result { I'm guessing this 'Result' type encodes 0 vs. -Exxx error codes? > + // SAFETY: The caller has read access and has verified that `VM_MIXEDMAP` is set. The page > + // is order 0. The address is checked on the C side so it can take any value. > + to_result(unsafe { bindings::vm_insert_page(self.as_ptr(), address as _, page.as_ptr()) }) > + } > } It's really nice to abstract this as a seprate type and then to know its methods only apply in known circumstances... I guess in future we can use clever generic types when it comes to combinations of characteristics that would otherwise result in a combinatorial explosion? > > /// The integer type used for vma flags. > > -- > 2.47.0.371.ga323438b13-goog >