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 4752EC8303C for ; Fri, 11 Jul 2025 11:38:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B1FC36B008C; Fri, 11 Jul 2025 07:38:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AF7036B009C; Fri, 11 Jul 2025 07:38:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9E5E86B009E; Fri, 11 Jul 2025 07:38:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 8DBB86B008C for ; Fri, 11 Jul 2025 07:38:44 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 52405BBD73 for ; Fri, 11 Jul 2025 11:38:44 +0000 (UTC) X-FDA: 83651786568.19.A130F80 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf24.hostedemail.com (Postfix) with ESMTP id DC48518000A for ; Fri, 11 Jul 2025 11:38:40 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b="si5O/3Jc"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=bt8PJ1Hu; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf24.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=1752233921; a=rsa-sha256; cv=pass; b=hQlgVbiXm1NYk82xwj8VeDIBcjb2Hg3UUk5VgKt5M0rZL2HdhrLFfu4tjMKdct0dyiah7a sfh7i9L00Nd6R0ley2AgYOlzVF78zhKpRECKOo1dTiOyC3gl0yaDO1lQkR5eXGTk2PpO7U CJIGjs9W/w3ncpfGWqWfOAa/7/KReIw= ARC-Authentication-Results: i=2; imf24.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b="si5O/3Jc"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=bt8PJ1Hu; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf24.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=1752233921; 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:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=lKWiF5Q8/FuqdKIqSIWVFMj+NTw5fIhvg10KgAonIo8=; b=MovulCa6OHYXz9bQiVOcNh4DdBhhfun8u7AsAIACXoSfTKo5Sk0v1O9WyavQwreIUc2HNo TFIJmDHoIX/sy+drCfdCOSHoH2S9cXHGV2SDicKrP81lm4HZ991i3tK49bIDnzUD7PpDh/ YFEk20LQnFzoSNEX9xj1vHK2BIFhuDY= Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56BAvPOF006524; Fri, 11 Jul 2025 11:38:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=corp-2025-04-25; bh=lKWiF5Q8/FuqdKIq SIWVFMj+NTw5fIhvg10KgAonIo8=; b=si5O/3JcJN9mWr06HubfhxeCUp4sy4dl 0uEsLfVvnsGr6hkUjvXJY7i6n4/jgq5e9T1+wR5fCMZt9bUEYhOiWyoJDhx4aP9g x4xsQnqOMXROzGElivVw5k3RBOEtBTqJtZGILFWYIe35exSwLQlg030zZvYBqpA+ CRo56YuxifdxKeDQy/Pgu1ojksJdQNHWJigMyMwiqCwkzQyeVXc5hUR6mJlHAgh9 wgKmK2tACGerbv6rmLKRWsolPjbu5HePAPpJG8ZgIqlVmOXF50711T5i3oUh/jOM 9JH/GD5BDyVyFvy9TjGDPu35rUjoj+rY7fPv86370KzM0zbILV/Dfw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47u1abg1pr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Jul 2025 11:38:36 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 56B9VEPv040420; Fri, 11 Jul 2025 11:38:35 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12on2065.outbound.protection.outlook.com [40.107.243.65]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 47ptgdpjtw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Jul 2025 11:38:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aPal+yDrdTFSveU8IapYO3YijOG0kiOZZLJvIz0bC6IRnKT03WDmHdoH9T36i+Bc3Ygk56obiMQ5cgYLFKb1T3WUn60wcep1EgYKdPLfJ0MMZMOKN64HMqNrNsfswaTfIg1Ik7mJdmCMONGsBC9Il13FVQ7FgwZvagLrmNKDwj0Funsf51W/5EO4vEi2lJQGrtUw5S4bnZm39O94BpAmjXf065UQdNzNbC11fPt/3pDCydjlwPej/LMEX7Xw0YXcNzom2Y8O5nGzSl7mlHriPpqP8E81OqFVmDsRacqFwN2GZUxmwuzloFQxpPwQEvr4IQrrOU/yCakN/sXFhcxwaA== 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=lKWiF5Q8/FuqdKIqSIWVFMj+NTw5fIhvg10KgAonIo8=; b=Lv436OFnI48D9AAdTtyk381Oaa78NINc80oNIwXgWFsJFokloWTsdNlwJ/98f11qf9UOni8yn7NGuhED24NTN3DTvVUTV16bhl3gjvhx1xY4Fq23CVTV20OoIwqtcrrJIJtp65fSz8kimylRHVk1DZ/kA16od1BQQOt/w3zkA7GbfffpdRalDwj3/sVT+liN2tDdCEG4TjZL5q9nR0NHexg8jvwRRnMYEJkKJi9tcfx88iOFyuoXI7YbOKAjPCCz52qC+n9QU2mtDoPw5aQsnUofgEI/WUhKmPhZw4QN1Yzxbr7K3MU296XW1bRakfg0kYOucSKIEPK6/hS2nYfNvw== 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=lKWiF5Q8/FuqdKIqSIWVFMj+NTw5fIhvg10KgAonIo8=; b=bt8PJ1HuMBqUTXFjSHG7jgNlYBoXSWfL4ghDL7Oq4rsU00q8A7IU68gTT28iAsQVFgMjgA/tt5dngFzeJwq6z2F1R+uo4TtB+bdyzT6DgmgCiorQX66gNN1d58sa18VHnTRM5IkA+W6fmVHEhRy9y6rG4gL4FaVGBGUPv7qt1/8= Received: from BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) by BN0PR10MB5174.namprd10.prod.outlook.com (2603:10b6:408:126::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8922.25; Fri, 11 Jul 2025 11:38:32 +0000 Received: from BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582]) by BL4PR10MB8229.namprd10.prod.outlook.com ([fe80::552b:16d2:af:c582%4]) with mapi id 15.20.8901.024; Fri, 11 Jul 2025 11:38:32 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Peter Xu , Alexander Viro , Christian Brauner , Jan Kara , "Liam R . Howlett" , Vlastimil Babka , Jann Horn , Pedro Falcato , Rik van Riel , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH v3 00/10] mm/mremap: permit mremap() move of multiple VMAs Date: Fri, 11 Jul 2025 12:38:14 +0100 Message-ID: X-Mailer: git-send-email 2.50.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: LO4P123CA0343.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18d::6) To BL4PR10MB8229.namprd10.prod.outlook.com (2603:10b6:208:4e6::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BL4PR10MB8229:EE_|BN0PR10MB5174:EE_ X-MS-Office365-Filtering-Correlation-Id: aaa08ff9-c059-4307-e598-08ddc06f76b0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|13003099007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ebthIlzvX44RvZdjzXdexoqPpkHiLs/9Zp37ooyXA+PD9fqjijXd3SlyIV3J?= =?us-ascii?Q?+G62cOu/IBaaaGfmhlhDtrO1AiAt/oJsIPH8l9GnFYqaV/pz0DdtGCqRElWY?= =?us-ascii?Q?5udi1RajA62TaQCbqSxPZFPHMxbQFX4y7V2J3uFmOV/330lcJSDkOyRt8C/K?= =?us-ascii?Q?RmoBHtetIFaVSBiVDJ7u+fGMxCTbAYdbcQB83MhFu1kLGTasH3AzL5Vi0Grk?= =?us-ascii?Q?eN47QQwSq3a1Dl+DXh3MqeG2DXMVLDcK9ennpFc5ZOru8lj94nXM76zRP4uV?= =?us-ascii?Q?N4j+MXhf4x1F/o2H3JZwfJk8UVd7S3yvvOXDMeLpFtOzVNv9+Q6NDSjXD/G3?= =?us-ascii?Q?rPgH7F81V/Scq72b5Rns7Rf8KR7Ly3Fz4YEY8uM1/SlSS5+GlhmCQR4UWr8m?= =?us-ascii?Q?mnSXsn1K2lsHlx7pqcM4wSCp+Zp+oAaVnlXMqR3gC3pmZlGwk3b4SzFnY/Hs?= =?us-ascii?Q?DdMmalz/JVrnHYWzyQ4dPmhObInmtVCcPZBy29BXwt34J4Me7/T9mYWdybmu?= =?us-ascii?Q?zbeqOwDYA0nieftIK6cuYOkTmoX8IwnIVYIRLMN5NC5On/J4IubHPhbXj+2q?= =?us-ascii?Q?AvZe/y1CRCsTqCKtMUptYPr7ei423h7gTsAcn7yFL98HxFiUEbbT5Hkn/SbG?= =?us-ascii?Q?sd5p+I3D86qbrQYJ3wa2qJ7Po3ChZHZJrEnyMmfYOZHnHH1zzpvA2epISUPb?= =?us-ascii?Q?MoeLo91UMASOfC1oeEMwkCUlg7zWa9OB7EjHz/borBnhIZWZP9awDsFpeBsn?= =?us-ascii?Q?cZjGktSx8N2ZDJzOYhKLBeqO/nNsvrQn1MH6B/3cP6f1lwLwxEjJun0jF2cX?= =?us-ascii?Q?cFajpKVSXU7yUPN1EVG+Cx89/XPr2RNiVx8lebUTX2qKJgGfE49/7xevibeQ?= =?us-ascii?Q?zOqyyv7oQAMpIeGhpZ+lFDxPJNJY7Mj3aD+TnGcN55XZvQMSm8iwZc6sJDrX?= =?us-ascii?Q?OgRBXqEWlIBgV1HYCqWBXmO3aD1i2l4MQUfC3AQ0pFcfkFCg2hsSw7Jz0TTg?= =?us-ascii?Q?m0FWHxpokgW7b4kdrtwKMolrIuRPiRBPmZYHs4xpupwQpogow0fO+QvPisYk?= =?us-ascii?Q?Y4T9PeyD2rlkwkmYTcxMluzMcu10lQCu6FUoqxl78L8ug8sc0+v1SRWMM1Hf?= =?us-ascii?Q?ZTGqO/38a41MnbDdPabPx2zL08iUIiS27l4ppZQ4raITVyETUgLxAy5If9sP?= =?us-ascii?Q?OTk80vPgBF2S4Z8eQgHhkAWbI0MPcK9c36l5724z86+Z+u66UKcd1bpVkAnJ?= =?us-ascii?Q?ya9qbZ7lIFBlSEKdxXTb5xsStI+jbfk3Dw4UIEQwgwBeoPZmEz58KwdgCTpl?= =?us-ascii?Q?WziAoZbkDKxwwkmbBMJDmDSkAmOslzUoQBg/ID6Xr54gfWpE3LxE1NtepVDG?= =?us-ascii?Q?SvlY0exBtiBK1x/z62QFRi+vyiN/FxPFSycZxoqdjaOqT663fqu60D+15Gd0?= =?us-ascii?Q?F/Le8owN6A4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BL4PR10MB8229.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(13003099007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?k4S5EvXXBx6JLogSBq/lpVpNhr4raxir0TumIecT+dYjdxTMWXA/AZhfKcLt?= =?us-ascii?Q?o8ExTInCv8MBUtANZbG98wCYQkjqfBKsRaJpIj1yilXwo/zLNaYGoEfJZ/XD?= =?us-ascii?Q?yqNHc4QlyRBtLK83w+R2IC1vmBcjdJMzC8FtCKFP1q+dhtZDP4oNLbjAnewG?= =?us-ascii?Q?5cH6mXm5bQk/mp18ApOHLD2t16lKLNgZxcLecWnfotZjfTVIDTf08hCNM1//?= =?us-ascii?Q?/98A1FT2oUhlWv49RkEH4hfW8nnXd1/YeW4720zPRZq4tR9gk933yEeiUQrb?= =?us-ascii?Q?G2ugHW9XA6GXBm/Fih2M45FvOUv0OfXDIvzomdomkgI1M8G5ZV534nIqTHYw?= =?us-ascii?Q?RF6uD3h2ylpKGt56+hkdV59DQqMkuEjpTSL37pYQiSsqySr4O0C/8/HlyD3e?= =?us-ascii?Q?jGB6wPjlmIY5/R2UQIJ88sIbWLeL2WXFqcakh5F47vjz5sCESkSYbxGiaY68?= =?us-ascii?Q?ppNlZDA4o7ZN/XJqDss6vfBec3bID9ppR+SDS0+I9zABIqUvrlQLMBPQa5Jp?= =?us-ascii?Q?5im+P9zlXZ6nFQ7YiH2QTZdvasIMDC9yzAH0u3JO21GUYFK2Jag59w6oTQBP?= =?us-ascii?Q?OERWXVpxUArh0W5uJAADRbK5PNgRB/PPgtHygytbYKbyd/qDsBKEJ/rYjBBL?= =?us-ascii?Q?3GZwHuQo0938P0oxrTMPnRh8DC0MaeGs8kHlZdrDyLzSl3ithR1a63RXUJMJ?= =?us-ascii?Q?Ec7tXmtZoIv1awuZU4KviZsBWij16lRMdqZDbWxi4m/S3hpIRvW2SM569yg5?= =?us-ascii?Q?K1vW2T1Hiw/qNnM84yTa8hTaDo5nNjkE85OW5aSHokA0M2Roum7wM9XKSiZP?= =?us-ascii?Q?7QWsVjMzIq9wBi0fVbT2ZQQIyHpr7vUtbod5wK5dNG5QylXINq7MD0zozP3S?= =?us-ascii?Q?HglLAoxNl2l0FhO7FypTOy+MmXH0UOComO1NdoeD2eEZxR21MXKFrKkYxY96?= =?us-ascii?Q?2LPzyqTyT5uPHK3TAS557RmWMXDwzhlXA3S/plJxGfJQttEoV6oftC0aCCL1?= =?us-ascii?Q?QiKNGUO1GWEM4y8zWYrOZzrW2XQLh85anu9qQKnOjvO5wPlwuOdxcjpVCkm2?= =?us-ascii?Q?/ddtMmsTGUi2C1Aj8fJ+Bdx7QmIa4HyA1uo+4YnPL3LIqZgW4GH75oPyup93?= =?us-ascii?Q?xzo1KDAv3gVJBQ7fOLR/BW4ALrVY7obGk6fS58zfNjgcMScP6E/XrqgfEPCP?= =?us-ascii?Q?znLVb184epfSLCYC1vGullvUWwZ4oLeZQvf9o6CkebJcZfTf2cfUDyriCb7P?= =?us-ascii?Q?4eQnhN3sPTAXLTRpg0Q6DbEeI7qUsHkLR2DiIkC8yLjkmJF1aVcYpteHLYzA?= =?us-ascii?Q?ovz9K5PpRMJ02DXrCmYblldVupf+lyZIBqfkaIyQoKpw7hVuXWl90v6qgm0k?= =?us-ascii?Q?bQN/2MZ1Mqn3ra++3verPVTlS4X6gcgFU+lMM9tM0hOGrQuxDG9qxUj3L8hu?= =?us-ascii?Q?sKvsFY5o+f8jgjj5M01m7rdEgrjLa+CQUfQLQoWkOFJS0yy8gBJO9+5Z4eIb?= =?us-ascii?Q?9MozMLvG/0HzmfuPZI7up8/99Be8Jxq1I/8D2U6DKa6/KjLijlHQ72avPDvE?= =?us-ascii?Q?Dr6FxGDD3YdS4YbJNZED89lNpI9ycBZmtKKMnrbDHlgDm/eH9UYN+nk+qu67?= =?us-ascii?Q?0w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 3bfpLD1Mf6uxhCTDFY3PFvL2JRMq6Nawc1PPmfFMkgz3+fZtGfDYwKX//HVWa4iVj27ozxlVNQaoVYtzGeFpWtSsmMom/ooBpYe7HPnmVsxwJIBxxwCb2XcZ6zHkAUBHFg7vlKUHJ87uBkqoFyEHQPTp0LejpUu91sflq713m+o7yqo+zgQrMz37JTGrRrM+lloAlcAG2JsvIznIn3xlz74jbZ+h6QM9+eHRoXuIBjCkt6B5nrqHH397a5ak2a7/lNW3R/FGmdgjDVOgqwwKNGEjItUpoH6hb+f54E7keWFy2zhTk+PuPK1Fb0qBGYyivOsZGWCZeQBl8QPTbEoHg9r4wuR3Uw8yovRqpsnk+dMExPHZDRmsBJ7BKufVLvF8kXGSURnlJkuLQtofrzZzyBamIo4zz1K9FDL8ENPiYVoZOxjWDDZYvucCH6w+7qB8252srv9J74Xdu2CBdyX77So3ugp9lsjy4OkHThc4508cxmyOGAIO1XiIR1INYfAd8FP6N+/ftW+HyOfr46RH4Qc5kHO2zukUXlU6kRc6B+V3w4Wr6tX58dzu+IUFVLKcsCgGcjnDYzw70qMiNiEMifE4nbpd3DzFvG0y8LM0r0A= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: aaa08ff9-c059-4307-e598-08ddc06f76b0 X-MS-Exchange-CrossTenant-AuthSource: BL4PR10MB8229.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jul 2025 11:38:32.2274 (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: zbBhUw+tMy9FysoLMeR6t73DJDPuZ/LU8FDHsl26pyhSXaBm46QA0+l/XRUmpCTCNSnZtzjprhjIO7ahb059ej6eS6Q4vDlDVSsg/ecv6yg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB5174 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-11_03,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 spamscore=0 phishscore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2507110082 X-Proofpoint-GUID: V2X0kgWPOhROpQ1-fWoXvEXX-pkgHGAr X-Authority-Analysis: v=2.4 cv=JoHxrN4C c=1 sm=1 tr=0 ts=6870f7bc cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=Wb1JkmetP80A:10 a=GoEa3M9JfhUA:10 a=VwQbUJbxAAAA:8 a=yPCof4ZbAAAA:8 a=cHio3vxFbJXGOxi3Ld4A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzExMDA4MiBTYWx0ZWRfX0CYb1is1YGPY xAmUFxqLzUSd2GU1pvZCy+FNYKhpAJlXqIWbD4EhFsiu5tx9lhR6v/lzyZl87vyfXjP/jRjkWyq 91Rz7bvVM7T+iIT6x98kqQs0iJnB0eJ9DfEWcS9KVY8ydIYWWRTZc59qB7orHyqzwDlmcBwlNld kvZJpY72d0TRA4s3JoJllT0OLIMwCrFL5VrJKCUm23Ncx7oS1uUW6m9wVLstxnTAo0ShM6KOgdN 5CXCoX/72TsK93VR4yCTmxUktJCR3pVVzWH4wyB2W8ZltMn8e6JuwTPA2gbTGQpvWPo2hxG99UZ 1X5o1d55XMp6i7YPdqYKjnjNUL06eazyirN6kitCayeVMyYo+CulUoOIgWU7CLaxFlEJOMy3RX5 g8nNCWqS3Ny4bCPcntn7T1jAJGwKDWmtnzBjtmwHoNQtVysFadZgiHb4zFzp+wKjYrmZ6Ohq X-Proofpoint-ORIG-GUID: V2X0kgWPOhROpQ1-fWoXvEXX-pkgHGAr X-Rspamd-Queue-Id: DC48518000A X-Stat-Signature: aasjbcei4t39ccg975ydzihkuje3fp85 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1752233920-129089 X-HE-Meta: U2FsdGVkX1/WgvqiMc5H8Hc2DV7KP/Rpaow0Vp0VHfhuE/VrHrqaBe2KU/bkpHaL+FWkMd0QwTOSFfymzbHvgVkjUDuFpflobx+naVTD1UNL7e0PdPdhoYhTwM8uwXpd/qXU65AJdbSc/zB505Oo7k7lxFraDL9jM6z6rqVZDa7jdaan8L8qZFLjIJrJNycKpnHZseoLWrDXixeNZ8e6CcyDiRB14B8rTm2E5UYlefmbBSt2vBhdoZ9Q83HV4K8XUB6En1+7aIosTKweXVy7O38zAZoIK5tpC35WxeUjzYmNewasA0o273zYZCmxwooUGuFyk+n5Z3wx75SVP1qtlaQ6pyiXqPc3BRxDPmsMo4PYV5gB6sUPx7fTEweldN/2Hp8wwMJiaGzdAKXgcXNARXEAvv7BBUOPM9UnjUF2m6k8QNOEOJsxIeWZNTfA//U7HiG1KGlPwU972O8dYwYbso1B3Tdx4Sar6VQRr6Myst59RlZ9h8rZINN9Hq/jKoXmo2wBKXbMeyCpmSx4F9r0eE1WMLq0V/A6a5xGWVQ94+FinfrsDctfDNCUnjiDdn2dhWamDxPH+dnYFDy8s7ZWWLpXocM7FHMHpTQ6OM+zfjgn9/rokl1jp58pDwkDX/N0J1hpPciaGRf04p766/zuwtOwnKkuwRjglJFKQTn54BHfrAr3mO3BPMryn9D+Y7hoB7T8VH5YiOJMlx7ThS3ucN1Q2QAkVvXpR8oOlqI26E/RPL8Yv1HPvjbvNo/D9E6OzbgusFExqFOkqZXvak2MITsd70U3W/p+xtox6lRbm6cYLIxzmybb29HxjFmQnU0PsbsPzQBX2d1d5Z52oapM41gpRrbYYJbO3eqrIIuTtfOTIRdMERhTbW49DsyuYn4VTlj1vmLngVq6KSqCvwEBtZt4TJ+WznJRngrVfXQ7Z8ybszr5sTK9NSXCDd6hMoHg6e8v2Q6CfQShWGgnK2v 5196M2lm opl+5PwyANk05xgiCu7XdYkKbf/8UcVOhj1jys3/hDvl8AdpsSXEeLSApgMlQ+uizJYgLf0jz6Qug/4o/mUWHZHJSUbW1AavVER2fQtDG5wBba5K6QaOVpxQumaMP5lwFSHo/4g1yIbctOz2KKUB9JhZg0ovZXs7jo1mvHQyeyRD7dN1RdCbWES3QHgZ3/ZranPuiJxTCfRCJp6pgkQ2DIv+U3mE8YSHepYRRckeoh4Ik8EcODbGwd1UNEHLyd1nSrXO86RyrZ/fQeUjUIvN2qyxpgxK11zF7NXg4wBpMvq3phZ424YCNb0X/Ghf5TYbdLH/JNGaLFRs091L64v+zjbVNee+0IlgVwsHvl7xX1w3KtsVFEE4xvnflAtRaVSY6Xjr3OiVNHgG6B4dY33hv5/lJ8PBwhQz38Gb3C4U7Ui7Vw14U8kTLWh7i/tTLQMrVINtobwm6/90IZQyZhcbf69oO1MXgqb3E/Wp8awAkzcqjCQWuEPtR6mx09YptecDWAnxantaJ2K7xwv37WQLmDigKWINVvcdIvoV7ymJWvxnF6EXtHf7h0yeSGSEfoee/WeXJFx9q7R1+/fbLeeudTXBy+icGY1z5Nc6PKcedbPYdNDMojdKN4iW3i67Aj/j8fzPUBp3u2iObfdtl+TG1+Wu5gWlUiPdYvzbNLIbf9QvUEN0= 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: Historically we've made it a uAPI requirement that mremap() may only operate on a single VMA at a time. For instances where VMAs need to be resized, this makes sense, as it becomes very difficult to determine what a user actually wants should they indicate a desire to expand or shrink the size of multiple VMAs (truncate? Adjust sizes individually? Some other strategy?). However, in instances where a user is moving VMAs, it is restrictive to disallow this. This is especially the case when anonymous mapping remap may or may not be mergeable depending on whether VMAs have or have not been faulted due to anon_vma assignment and folio index alignment with vma->vm_pgoff. Often this can result in surprising impact where a moved region is faulted, then moved back and a user fails to observe a merge from otherwise compatible, adjacent VMAs. This change allows such cases to work without the user having to be cognizant of whether a prior mremap() move or other VMA operations has resulted in VMA fragmentation. In order to do this, this series performs a large amount of refactoring, most pertinently - grouping sanity checks together, separately those that check input parameters and those relating to VMAs. we also simplify the post-mmap lock drop processing for uffd and mlock()'d VMAs. With this done, we can then fairly straightforwardly implement this functionality. This works exclusively for mremap() invocations which specify MREMAP_FIXED. It is not compatible with VMAs which use userfaultfd, as the notification of the userland fault handler would require us to drop the mmap lock. It is also not compatible with file-backed mappings with customised get_unmapped_area() handlers as these may not honour MREMAP_FIXED. The input and output addresses ranges must not overlap. We carefully account for moves which would result in VMA iterator invalidation. While there can be gaps between VMAs in the input range, there can be no gap before the first VMA in the range. v3: * Disallowed move operation except for MREMAP_FIXED. * Disallow gap at start of aggregate range to avoid confusion. * Disallow any file-baked VMAs with custom get_unmapped_area. * Renamed multi_vma to seen_vma to be clearer. Stop reusing new_addr, use separate target_addr var to track next target address. * Check if first VMA fails multi VMA check, if so we'll allow one VMA but not multiple. * Updated the commit message for patch 9 to be clearer about gap behaviour. * Removed accidentally included debug goto statement in test (doh!). Test was and is passing regardless. * Unmap target range in test, previously we ended up moving additional VMAs unintentionally. This still all passed :) but was not what was intended. * Removed self-merge check - there is absolutely no way this can happen across multiple VMAs, as there is no means of moving VMAs such that a VMA merges with itself. v2: * Squashed uffd stub fix into series. * Propagated tags, thanks! * Fixed param naming in patch 4 as per Vlastimil. * Renamed vma_reset to vmi_needs_reset + dropped reset on unmap as per Liam. * Correctly return -EFAULT if no VMAs in input range. * Account for get_unmapped_area() disregarding MAP_FIXED and returning an altered address. * Added additional explanatatory comment to the remap_move() function. https://lore.kernel.org/all/cover.1751865330.git.lorenzo.stoakes@oracle.com/ v1: https://lore.kernel.org/all/cover.1751865330.git.lorenzo.stoakes@oracle.com/ Lorenzo Stoakes (10): mm/mremap: perform some simple cleanups mm/mremap: refactor initial parameter sanity checks mm/mremap: put VMA check and prep logic into helper function mm/mremap: cleanup post-processing stage of mremap mm/mremap: use an explicit uffd failure path for mremap mm/mremap: check remap conditions earlier mm/mremap: move remap_is_valid() into check_prep_vma() mm/mremap: clean up mlock populate behaviour mm/mremap: permit mremap() move of multiple VMAs tools/testing/selftests: extend mremap_test to test multi-VMA mremap fs/userfaultfd.c | 15 +- include/linux/userfaultfd_k.h | 5 + mm/mremap.c | 553 +++++++++++++++-------- tools/testing/selftests/mm/mremap_test.c | 146 +++++- 4 files changed, 518 insertions(+), 201 deletions(-) -- 2.50.0