From patchwork Fri Mar 21 21:54:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Stoakes X-Patchwork-Id: 14026076 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 8F121C36008 for ; Fri, 21 Mar 2025 21:55:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D793A280001; Fri, 21 Mar 2025 17:54:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D28A3280003; Fri, 21 Mar 2025 17:54:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B5855280001; Fri, 21 Mar 2025 17:54:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 81816280003 for ; Fri, 21 Mar 2025 17:54:56 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B4929807C1 for ; Fri, 21 Mar 2025 21:54:57 +0000 (UTC) X-FDA: 83246913834.20.BF05580 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf13.hostedemail.com (Postfix) with ESMTP id 707C220006 for ; Fri, 21 Mar 2025 21:54:54 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Y6tBkjfj; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=S5J87htm; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf13.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=1742594094; a=rsa-sha256; cv=pass; b=mo1tNPzlFnTnWUsQlPMcq1nwUIg1seCswIz6qhZRI8GZI9A6h6AHTjNpiTEdtzPnP6Ymfd SZ0AguLqwyckK9PAm1krFohL4G2g8xWGkLGqfFvgxYSKinYPBXel7r5pVrC7OY66PzZiCO nWFcAtlEnawWvwvWm3Br33IE0SHVzXw= ARC-Authentication-Results: i=2; imf13.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Y6tBkjfj; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=S5J87htm; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf13.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=1742594094; 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=i0z+DYbwTbSc/cvc2OIhFJKQuERm9lLGDIOCKFsdmlM=; b=J3TGGxsGj2AyYsgttxDn9UcuiO8wJ5xSuiCXi90fxDplHLC9SqNxass/aJcMdk6XksqAMm P5Scr1d/CAFfb8bDu/xh1oKeAmRGoQiySBvn8jG5YoemDLMaQqB1YeRGtct61gXUQM14cH Tpm3OtOehS1Jaxe84ZAGsd8XIPEWbi4= Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52LKfu7q019316; Fri, 21 Mar 2025 21:54:46 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-2023-11-20; bh=i0z+DYbwTbSc/cvc 2OIhFJKQuERm9lLGDIOCKFsdmlM=; b=Y6tBkjfjhNRvq7MU8NW03MlOt6qwGBob e22B26k9tnqcM9P4On3RFgxQTkaDTSdbCSUpltWspB9k8fCc0M7JyiwkSy9r1Sn4 YxMOo2KnJdFE99fZ0F7hPnXuSSwHgQWNQ1q9RLPUR/m4otGnRMUpAviP/wBtsjRD 5gCwpVZfElc0rDFLXCEJabKQ5GHgAnnK2dd/PbAVSKIQ6YoBh3PN4/HMXVlwcwr4 XwX4kgo6/wvRmZLQudHw52qG3zYYKi9Lf0T2OQdCf5d4YcsJoeiPDJs1arVegLx6 SvCvf17tJS8+Xa9A2+LOCp4whUOL1r5ZN9vbv/3R3FeoPw8M/Lwlvw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 45d23sa1sx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 21 Mar 2025 21:54:46 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 52LLW4uR019469; Fri, 21 Mar 2025 21:54:45 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2041.outbound.protection.outlook.com [104.47.56.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 45dxdr1823-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 21 Mar 2025 21:54:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=W5eStnpONqZZlYfdrhoSG4FZCY3QCAvSSjiWOVI60UHBZy090ntgFttZq1BMUuJe6jWyOn96HDzV7+dU4SDgSQC5GnfWgYVv6bUHzx6IC7pi3mz/PyiPUYF4CPW8JjrDCrIOmQmXd9eWXzZm37knwi2nvkpniOl635LMq81rMqxubQ9Sd2h+EufT0yzIg18VoDOLYrg46Xkk6d8nrpFS5WuAgpv1vYN6D1olz9NKRJfCgG0Fey3qghszdqGJVr4Vb4lWWjuRgWTR3VqhrgCgDGcVzEQKc2qiG48nroSiLhSYYWhc5U2ynOFmEu0Z8MISThIocZ3RJaCL5W2VcrbIYg== 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=i0z+DYbwTbSc/cvc2OIhFJKQuERm9lLGDIOCKFsdmlM=; b=VxlRsybxaKLvWFyxGCZ56ZOkOrrvIMUBjCjLx7hS4R+6eaMMiH0Ef04nkb+TRQtb3FGkeMcxTOMZL9MwxVN2QwuiAG9a/ZChQizCzCEQm/XtCG/xOOjGqyurG8lQPvoXGB30iEtoUQmOWiTWuE4Or4SHuO7XXJJoyEHhObHfIZh/n8mOdt/Tiszthf5Mit1riqbhzVMIU8PiMJrrG1/pI7LH/E+TBADqgCamANHDp6FvCK4ezY7Scx8H0vi7JydcBvjguSvCT7wY4gxSkm6NZy0HFLjxnv6Aeuor+21mHnealN/V+fwdOogStKZ2ZbyhbckOEMCt9b8qJ483j/EOXg== 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=i0z+DYbwTbSc/cvc2OIhFJKQuERm9lLGDIOCKFsdmlM=; b=S5J87htmIMGW1GZQmje+H/YKJHw24qJbsr4YeqNnVVuHtPAv2jmuvtW+Db+9A84i0vAypk7+iJsev1nK47ghyA9jJMISTV6gmdt2TdXq6W58C6VlcEboOfYXRv8zD6SJ4H+wYbml3zftFBZ2zWaGaNWmC8bxdvE5vA96oCJa6BA= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by CY5PR10MB6144.namprd10.prod.outlook.com (2603:10b6:930:34::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.34; Fri, 21 Mar 2025 21:54:43 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%7]) with mapi id 15.20.8534.036; Fri, 21 Mar 2025 21:54:43 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Vlastimil Babka , Jann Horn , "Liam R . Howlett" , Suren Baghdasaryan , Matthew Wilcox , David Hildenbrand , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 0/7] mm/mremap: introduce more mergeable mremap via MREMAP_RELOCATE_ANON Date: Fri, 21 Mar 2025 21:54:29 +0000 Message-ID: X-Mailer: git-send-email 2.48.1 X-ClientProxiedBy: LO4P265CA0290.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:38f::17) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|CY5PR10MB6144:EE_ X-MS-Office365-Filtering-Correlation-Id: a4af5956-28dc-4143-91aa-08dd68c2fc9b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: /H02udFz2nR7K6cpoMxxGQXnSaFD1hq/Q9LOCBk+REnaka5wmCzbwx/Q7wga2btuZ2ZWJ8Mkh3wux3x8/giX8uLF7tqv7n0GBmpO3oXO8DPsi4drGWPgptm1ks/BU//XjsUF0OXnnV4fEWEOQV4+vX0WJ/DDG887sT6nUrwKeI1pdNXeMekzqxlp7Z7dT15Sd9sIy84m1e+7wLVXfykv/br6l8kaXcohzwDoHhOBTXAm0Qo34NaWO8sxEVQ46FEOabLCncus1Wl0erzYC0kh0KQSSfIXRR246at4qyaBdwZeyaC2qJ7lTPxSMaTSAjRsFAeRmZD4/2+op0HuZcXZK1C9jwRglp0U6NZDyalOEauNIe9jlJYkGoy+rU44cCReVs9beT9Q+e1AZgXjrtNE1EK2ZRAJKujpPnIAN8l0dHE2iE3oUynARw2E8Z3Yz9aciuY4pOPFPmx+pI2YQLd8tM/BAJQkXyWfIbTk8u/21QAWiUpNtHNgmlk/ecjqksiXcKFSswXw3Mi05cRMoVlC1QJCSJUWYDQIa9evXGa4aDDhMVLEkfSh1JcnL9ENAlMemQTJkMtQS711aHI0+Eu061IUMbGfJCpVJlQ6e/z1Ljlu7ZZGA8VqcHffSuZ1fuzUi71UtFhyy9dybT8s3CtyL2P0IWbj59Zfz/InESL+UkOzpnjRfZbBpBgqqX1Np4YvT+MqiTJHkA7ROhiKRfcx5grGAOcchxvA0SgafBbxnXZD3DqM1CQSQnO7SdNLxk+KUow2+UcLRiQ3c3W31+MhUoDu3lMmIpAtybj2Y67/g2GJdKhuTYRs9iWffmgcBETCLp9qWIBUCXc0Gi7WEIemgAmusu7m+RDuLwxEu0IjEXjA7s3S66/y8DT7v3YRLKtBVdmpGWOV4loPLuskAvO06G9U1E+dU6kIvOanvMtwN9crqGD3/wJ+sqZHPaHZdg/v0alfcvGhZkiR0h5l7cFxyEyQaP+zalfA4dUK/HI/VoMF+ZMNeNozTXT3ioH2DB7A9AfQVczvRHZJDgYwdd+mMei2zK7aqonBO/VVU8TsTzx8JFATiqlZ5MjBe/roRgAmr53lUEpUtFe8SHiPSWvKTlAyAvBZHtzWp4WK2LzA0pEqeLG61bDdFa/ETUsbcaMbhBd1xv6Syi12qyDHM9l+6wGQSXljOBsRLIPfZqzcGZMtj5DKGFmSuj/JvKOuJtEPdG2g9M0aFmljg1HMB6yFcqXjcuSIsx9UpwoUDhP/MXtUN/SEaypOJjS40sNXQgC7VjrI3Eqyt1hQ+eP7RIof3baMUKsXpVYNFlUIHY7hGmZYHITHQ+ZqRWp+UrGkbtWbsiFHmMoS1h6+n7Ym8CfDKfMxhuVv1whw3Rthixu+ruiGIfL3HEmlX/+z9+Sqyful X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: U2xscM2HlJLAu3iNsCX0oycqrrAGBdxAb/ERDdHR9Fy/GD8a1KEsV5k2NxUz2wky+SZIlASCWTTddcybP3yo6EeXPQqNFtm7z7A1wUrrko7nC1LRiZDIsRTcecjGT5plJjW3ZnFL1EWlFJYNk5CUfwX9uhx16SZ6CcEbX/avqhTQXQrsQ3VSOJw2WdSUypKWaRNlO0AuYB12Py6Aye3FV1Doect0ehPk2mZXTArhPoqKrgituqtKfDJ7sHhXr6mFOwsypym0W1tD2s0n0N6ei7nf4UHdghocV//B4cXWeBFvgyqKl7UE4pTmr4e0UuJ7/7Hiz6YShGDCdkZ43eTErdKypy2tLkOydOTRqxjoFiGc1MR7Cj5ONwY7oxcXYePQ2hxRhxRgmlCj+PmmOxpD5SHNJWKH4ZoyZ91BPuS2llrBNJs6HOy6CiI+0/XK15d2h6tivi/ZoLKj7HtUWZa+kdCNY4YtyJrVlOKXJjKxYQ2bSUJ69uSu6ArAdEbXSoYBqAuRSUs4MChcgZrJgkVb8/dQaS22HJbVj3qLX6pKG7tyYVDSXLDdn3g+3/Of66zDQaP2sbUEE8E1Y7ZjKpUihtyN8IbU/K5p8I7f7j8CsjNrRNT8FUevB+098EsO1zrQOs5ChF+j8UVS2bdeXW06pkenW5DeoRC6Va3pyryMgBZAt9c8tCdTMsF5E8VWoSvTzzj62yD+DfqANRBgQmX21FLN9vpts+ZBlO9HB90n2dWh39uqqDjB5buzYzBHyMcIG8jpiY6H7k7p6An/GfKvQPuRGqZiEGxmPAHshgYpfV7PPyqqnE7z7mrZIEpwgdPg8WzBP/AnjISkzdYS93IGsJkocSm8uFE+cfhPLW4OtGAE81DRXHq86cWFXHotePdSgKMUrcD/IjZDVe4W1d24wwvYVhUeC6IdkF9Arf5BrIGQAHXXDIvlSCxfCqAdubJrww/xR/lvLb0cidP83GZlso9wi7gibp1Nnkkorit4EgECOiEmh+b0dA9mIM2UDjsJm3Bm77l5GAvoUD+sJRq1Q0R5F/+OOQ/vB3RBUUbAYcLN5dwansuChB4GzjbejKD8Fs7D+XUe8oWxJN2yR71d5gXDwQypEum9B1/ngndx4Dwrc7rKpZpZ7/ruX/rYvKzARBG0cZaskS8TmcPy4KIpdPJTV3UCOLJ/B9ecLyYAIVA6FR1vtu2nzFSFNlXWLSRK/XlkUqE03bMG1ei8Y6Wtg8ziB8czxPsUaTOHR8/NRSH7ZwspMr2z5X4+j96luoJVAuGQuHpNdGkbbg4HpPS+kfvlzZxoc5kZhFH+wlde0+3i4hsGC8pxQPT72CODK8J2EF+Densjb0zDChGUqtqHP+6toRkuEGJuZNeJbh9qSsjn0L2Aaqnq9YJf3l/Wk2qIBwTA19wDRzA1LNrbJY7bBLeaT5rKKDpG+/6Nyt+8lT2kr40jGuL7EXGXe9hZT2h6f4jUK+EjgPxjwRJnKVWkxe6dlt2Lpk+PhwydoO7Xy/pUqvJnY8ouoxH/op4mPjIfJI5P3UPURen0YUxM45HtSR/CmmQY+9pd5w7DPU4TuZ1snHjdPN9d8+2nTTGXvXLf85qozb0HGEUVImNbhbvTFg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: k+YV6rLCR1BVR1DXKI79EpIUcmLpc47GBZQHKDZjlefubo43kmyu1dLgGXiMBoOupJ040ftBfMZutSVU7lFmC/zcVm6HoTvG4/GtGQ9ZoWqNlig7LL79tKQ4xEgpslhPk48Jgj9Dlrqy+9Lr6GkYho9SMT2obU+R6cSWA985fkwDRl8CZrnyo+02ZrYT0UzMgSm0VItVgGOcg609syejM6rsiHbymuup/oIBX70mP0vn/M1XJnJZPDKb5GO4h4NcDEWGegUzubj58BjuVhMIfswG2PQB1khasmN5P/TKkPjgESF/MLvamOoTFNGOHhS97KjKnFr4c2Yntm8yPa3Na5nMfPWf8Yg229iHimDrxNI1jCf/Wg34n4sN1pX6Sr22ymHTdplGepetIsQwuLCxiZVM69ojj3Lf5FZwmGaqBDTC+/mpQooDGXP8p6a/FBIq+Cx8NntgRFBzLK+99qvaQRrLcS5EPw6OVJ4c4gkQGnebGC69rQ8JZHteOTLQJ2c3vccSkJgtse+tjvhwIi4gLedhr7td1v5qXbozeSEkG5tB+cs7l4SqVUZuBhFXtcb74bCQvtOFlbk+KP5DuyXeuvKdhksRh2EE2iMXk4+L+zk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4af5956-28dc-4143-91aa-08dd68c2fc9b X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2025 21:54:42.8521 (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: ft4MXWQf7STqZBy4wc+72KgKVrL8jeQLs3CUltLC8cavPlamClBozlfQB1w3DqzYqzunVDTmv8TWuM9YTZKIPvFQxgXlxe33If3GuixR1eo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB6144 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1093,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-21_07,2025-03-21_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 spamscore=0 adultscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502280000 definitions=main-2503210160 X-Proofpoint-GUID: jLUYux2q4E38A9zifiw20_ohufWcmud6 X-Proofpoint-ORIG-GUID: jLUYux2q4E38A9zifiw20_ohufWcmud6 X-Rspamd-Queue-Id: 707C220006 X-Stat-Signature: f4ruxm3k1itcwt18kpyyhqypihh49x5q X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1742594094-385668 X-HE-Meta: U2FsdGVkX1+bcvkOWjkzGkiutxfPXKaiSlikJvLw1/Mfs5YzK3FLD3v6eA3B8fXV23kmQk5PSjZE8HrYRymYC4QxSdNBw1DrZPJOmVVKR3+CyZ8Zh4qNIHydEK0LNCvG5rcsWNP9w9MZkqox4n5s0RltFPwn2RXPPL0J7yi5xRI5MsS4hPuTey5rZU7WGwgRWq3vcoPpDSrL3Q6t41awzrlmS/BgK8RukxNH67+4cdMV2uZ32YUYiokxGrPMNX/3Hq1It9AXE2oUDEhOR9KQ+eJUhyTQCt6ef3u/Fsj+Lnf45lPosrVoyIMmFGmjdK035+RqWr+LQa82Pd+lyL9bx2CDaYx75vsZjIADm0dPhlmq3U3eaQv/BtSOZ9XGwuVp8Px5kLuIZwHOFiVeopiRAIJUNXD3vx3KsVfDXpazDSs9zEoKghXhYilCTD8sDuiX/q1iv+eIyxOYRDtVwekrMPSQPSmcwkmjT+no97vfC1dCY5w2x8zUTf18BSClgHarsOoVJD49ngJIccyJfUExZVHIRqUjvslSR644qBE/ZBW5aF5J+0K/htCAerplr6wiud5RUdqbnckIdKGL2T1caFpq3aFuucpylU87qwvKasxQktyOgMKhM4rK53HuB8OD3gkKVpZtVZtKORxOKS1S7B5ctTD0MHl91QXJFBidJLeUnwvZuAVGCfswmiczMSjZF3OnWw6jBMLPyxk4QbRbzEFYXl2Ea/xgqYsXfOrZrrtFdUOFEsBp6itUi1Mh3tZF8Y8ODVjcbutnQMtA9/WJDe01a9EHrzllHrJro9HXkxeekyUAahkfsG1KJuS6E7lvoro67fFPHgcrNa6kFlo4ChFf5CwUPUJLzIG0shUnVHpjtAgx7I0rLV/EANI8rywOXbrfT/52Amo4GPBSCHf0y9+rO5XhpEV9lMqYB8Dzu6iuIp+b1ziBDHDE4l4HOLtrhSkA8LUdRmQSgygU8vO w7dgDzbo RUUp3+VwNJVV8+Ohm2BxfZGcBS7Ps454Hw1mh45yhJg0v/BLeON49uGw+iJbAZz9BJ1WsDJZ7MUAHOOQgSOtNGvBnVtg9wwicqz8z/Ya1QlDH25pzqCBzxgTvyUvavb+ckCUTHE1LCW8EfjEx8lJ22YgU1oQd0V56vxmTWVWNid6aoTRQiHp0LaSofoUhHkdKdfksYns+ABxpwyObLPvMsjlJnPRXoK0cY3orsfBR7OsRAD0R8D4ULecSW3S3Vx8V6eXHnYShfCvd2vT7cKLdG895zd8QIUeL+FvYwdXEfA2GGh85bRdcinYjKijqYXfDufMXydZndmqWysS4+5JGPck4k9mtRP18Vx5RVYQKWJoXX1VaQxd763oSTY85ShM5e1MC5OS8S/eiDyKZeZoqxGIeTtfAmvQ5LeZu5hKNkt9H+buJ6IQkMygvazB1R/I54WJUILiMmcDH/ED6HgZcGbDvZifivF54Q7UkvPNIHwrG5FOUYz81TfclUQaRgCwuh6h96D4TN0aIa1CX15uwAauf+gS0RyDhC8p/7kclY30KbJfBEqvxro479ManjyU/kOdwNHnzWvwUWVP46Avqa6dbzxX3dMcL31MzLYRCmRuhzWeoDDwarDP61MJ8NPp2wwhkCFlMP7QxrRSIUyWzQKN+yJ3b40T+tYtg62MkIv/gIb5A36fTXXzgZQ== 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: REVIEWERS NOTES: This relies upon the series sent in https://lore.kernel.org/all/cover.1742245056.git.lorenzo.stoakes@oracle.com/ and must be rebased against this. This RFC has been thoroughly tested but could do with a little further stress testing, especially under heavy reclaim load, so consider this a fairly early version, uploaded in advance of my LSF/MM/BPF topic in relation to this work :) ~~ A long standing issue with VMA merging of anonymous VMAs is the requirement to maintain both vma->vm_pgoff and anon_vma compatibility between merge candidates. For anonymous mappings, vma->vm_pgoff (and consequently, folio->index) refer to virtual page offsets, that is, va >> PAGE_SHIFT. However upon mremap() of an anonymous mapping that has been faulted (that is, where vma->anon_vma != NULL), we would then need to walk page tables to be able to access let alone manipulate folio->index, mapping fields to permit an update of this virtual page offset. Therefore in these instances, we do not do so, instead retaining the virtual page offset the VMA was first faulted in at as it's vma->vm_pgoff field, and of course consequently folio->index. On each occasion we use linear_page_index() to determine the appropriate offset, cleverly offset the vma->vm_pgoff field by the difference between the virtual address and actual VMA start. Doing so in effect fragments the virtual address space, meaning that we are no longer able to merge these VMAs with adjacent ones that could, at least theoretically, be merged. This also creates a difference in behaviour, often surprising to users, between mappings which are faulted and those which are not - as for the latter we adjust vma->vm_pgoff upon mremap() to aid mergeability. This is problematic firstly because this proliferates kernel allocations that are pure memory pressure - unreclaimable and unmovable - i.e. vm_area_struct, anon_vma, anon_vma_chain objects that need not exist. Secondly, mremap() exhibits an implicit uAPI in that it does not permit remaps which span multiple VMAs (though it does permit remaps that constitute a part of a single VMA). This means that a user must concern themselves with whether merges succeed or not should they wish to use mremap() in such a way which causes multiple mremap() calls to be performed upon mappings. This series provides users with an option to accept the overhead of actually updating the VMA and underlying folios via the MREMAP_RELOCATE_ANON flag. If MREMAP_RELOCATE_ANON is specified, but an ordinary merge would result in the mremap() succeeding, then no attempt is made at relocation of folios as this is not required. Even if no merge is possible upon moving of the region, vma->vm_pgoff and folio->index fields are appropriately updated in order that subsequent mremap() or mprotect() calls will succeed in merging. This flag falls back to the ordinary means of mremap() should the operation not be feasible. It also transparently undoes the operation, carefully holding rmap locks such that no racing rmap operation encounters incorrect or missing VMAs. In addition, the MREMAP_MUST_RELOCATE_ANON flag is supplied in case the user needs to know whether or not the operation succeeded - this flag is identical to MREMAP_RELOCATE_ANON, only if the operation cannot succeed, the mremap() fails with -EFAULT. Note that no-op mremap() operations (such as an unpopulated range, or a merge that would trivially succeed already) will succeed under MREMAP_MUST_RELOCATE_ANON. mremap() already walks page tables, so it isn't an order of magntitude increase in workload, but constitutes the need to walk to page table leaf level and manipulate folios. The operations all succeed under THP and in general are compatible with underlying large folios of any size. In fact, the larger the folio, the more efficient the operation is. Performance testing indicate that time taken using MREMAP_RELOCATE_ANON is on the same order of magnitude of ordinary mremap() operations, with both exhibiting time to the proportion of the mapping which is populated. Of course, mremap() operations that are entirely aligned are significantly faster as they need only move a VMA and a smaller number of higher order page tables, but this is unavoidable. Lorenzo Stoakes (7): mm/mremap: introduce more mergeable mremap via MREMAP_RELOCATE_ANON mm/mremap: add MREMAP_MUST_RELOCATE_ANON mm/mremap: add MREMAP[_MUST]_RELOCATE_ANON support for THP folios tools UAPI: Update copy of linux/mman.h from the kernel sources tools/testing/selftests: add mremap() cases that merge normally tools/testing/selftests: add MREMAP_RELOCATE_ANON merge test cases tools/testing/selftests: expand mremap() tests for MREMAP_RELOCATE_ANON include/uapi/linux/mman.h | 8 +- mm/internal.h | 1 + mm/mremap.c | 610 +++++++++- mm/vma.c | 29 +- mm/vma.h | 5 +- tools/include/uapi/linux/mman.h | 8 +- tools/testing/selftests/mm/merge.c | 1338 +++++++++++++++++++++- tools/testing/selftests/mm/mremap_test.c | 270 +++-- tools/testing/vma/vma.c | 5 +- 9 files changed, 2128 insertions(+), 146 deletions(-) --- 2.48.1