From patchwork Wed Jul 10 19:22:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 13729600 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 16A1DC3DA42 for ; Wed, 10 Jul 2024 19:23:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 093DE6B00A5; Wed, 10 Jul 2024 15:23:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 01BE86B00A6; Wed, 10 Jul 2024 15:23:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D62586B00A7; Wed, 10 Jul 2024 15:23:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id AEAF86B00A5 for ; Wed, 10 Jul 2024 15:23:44 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 5F5C1120229 for ; Wed, 10 Jul 2024 19:23:44 +0000 (UTC) X-FDA: 82324817568.25.85F6581 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf17.hostedemail.com (Postfix) with ESMTP id 085EE40009 for ; Wed, 10 Jul 2024 19:23:40 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="R5A/wOOY"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=S8wYpHUs; spf=pass (imf17.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720639396; 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:in-reply-to:references:references:dkim-signature; bh=W8ePtixmHK858Jxwt740eyTinrn/Sv9QWh8NJ5u4sOE=; b=CFt/cPkJU6vMObw4HqgpVXQjlnqxnDwmJBx55SnpygsjnYp6t9xJwNoKemG8TISvC3DWYF aWBWn2B78xgemPPkW8He566iR/vtfSxMzYMqB0Mgg3KkMli3t+FJLGYbnItw5evm/BCxpu 0B9AFPVo3lsQ4AqEsLKCQH2JPKqgy6I= ARC-Authentication-Results: i=2; imf17.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="R5A/wOOY"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=S8wYpHUs; spf=pass (imf17.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1720639396; a=rsa-sha256; cv=pass; b=a6+FFgrpRiSpnyREBQdC3fH+rdoHVwOMNYrIegwoBOwUKx9kA4qG1/vZ8YCcbga/17Wifx 8FnlfJSFnAFAHtI+3OYuz5bTmChJacg1LjuVnNPjtl7e1z7M0biFl71KGPJOTPIypaCXT8 QWCQG71dmoIAJRLa5MaXwtk9eNeyv3k= Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AFi5PI019322; Wed, 10 Jul 2024 19:23:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:in-reply-to:references :content-transfer-encoding:content-type:mime-version; s= corp-2023-11-20; bh=W8ePtixmHK858Jxwt740eyTinrn/Sv9QWh8NJ5u4sOE=; b= R5A/wOOYY8Qatr4JlzU3ePjjPB1w0R/rAO2qJK+MfnF6N5dmf5d/axwTi8vYKfSh 1+KVxMnDt56T6EutjveE3q8j/7+b9l/veCO6sN2k6PEptCNVmwsFLPkJO2rjteQr ZfMhrsnRF0hflKV75iNYQe3EkXzSymw2dXpJDZHX+sBxtTHvl68L+tGeyAautazX Yx1DeEvLClVgdHNpmhbPNEXi7V1l+p7gnOVL9Rsm4K6l4vI/HnlytUR2TmmBAHAy SROli0D+05BOEUGNn6hJ7aCziQfkjvSsargp6wcJkVW+n3f70jolT+BOGocm0qrp QrO9steOzr2oRsqdJtDmVA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wky83qd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:34 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIjker030110; Wed, 10 Jul 2024 19:23:32 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vva92t4-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vl3xzpuRhts1DvEVy+xkFcdeU04eamOfXqhn4URndKPr46JxhBEbvuTB5zrNEOCmh4fMaZ+m4rYyxbiV80RdqjGUCOmxpxfmeIL4JBJ2bIlAG7pQ4Dq/bW5I8cCFsK7UHJQU1xlXfCzDvW1IOslHxO1le8xtKBWdWZPR0R3XaX9M2e8Cb1iUKM0lFUTay4h2e7+7ljHNd2nKQL0i2amW0WPXhCh3FdHCez3NRKcUF9RSEmHxBgSnJJPtnAmIC1crs76UKtnLt5xCnE5VTQCxjZRctAZd8UtTsMCNfZQyNRHjEOtT9GPYQT9fIw+/vvNmQexlrsqtv7cEGSVjsiw3uQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=W8ePtixmHK858Jxwt740eyTinrn/Sv9QWh8NJ5u4sOE=; b=Ntozs2hctpAFV6qseL7qZTcreXO44Pid74OLpLJp4t6vkvMUPyZpVK+TbatX/Vuxx8Awly9fS16H5EFaQ57+d8Pgf/k4sPptFU04rEQZXnWLAO4AnxV3mSfzubHnWwdQusLEN5mRbKwtSmsa2cpaR/p5KFucBBunFcOMI2rkiBLBiBLVKP0Qe33hXac6plBTJGn8WWZlqcptldVx0GOFq5xfz9+etiX3qxQcO3j6oPhBG59G1qU+mcp2UpmoYNZPkAP6v8x2cLnAm4+cGojTDUzQjh7OlM2UPa+yybAjTV76m7OrmissfixXqlQVKrn45sdnJfUneA74g5pLPolmeQ== 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=W8ePtixmHK858Jxwt740eyTinrn/Sv9QWh8NJ5u4sOE=; b=S8wYpHUsEemp/h0DlJ737ZjXHmZVKo8F0CEJdAzJNwhltLz4ayN3gIa+jQ1KFLXZrnujc66jJL03/Sb7XHX9KH5WJn5NgVJBYzhOjKCOgVBtLRHhcvu6k0xdK6J7Agw5GWwPSy67ticxagJ3yTvHFTfOC53YV/W8gJSjvSUHRQE= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7295.namprd10.prod.outlook.com (2603:10b6:8:f7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Wed, 10 Jul 2024 19:23:06 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:23:06 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" , Lorenzo Stoakes Subject: [PATCH v4 04/21] mm/mmap: Extract the gathering of vmas from do_vmi_align_munmap() Date: Wed, 10 Jul 2024 15:22:33 -0400 Message-ID: <20240710192250.4114783-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240710192250.4114783-1-Liam.Howlett@oracle.com> References: <20240710192250.4114783-1-Liam.Howlett@oracle.com> X-ClientProxiedBy: YT4P288CA0027.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::6) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|DS0PR10MB7295:EE_ X-MS-Office365-Filtering-Correlation-Id: 008c11c5-6327-4eca-bcf4-08dca115b9d6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: F/9PaqLKZOucEMDReCZg7S8HIYF5SHe3YYStYeJq8HOPOWeFtO3/fl/pl7Y/W29UkuwyaeJbNPejjuOvfDXqm8cBVCKUyhqYp2ne+QWg15sHs/kBWQNgRNAXZ4VI13FihpXokcH05wHiQTibmNlkC2f699zvZGdxbtuJC2Zs4uVQ92eRizSl8ShmsYRWYxvH3pjkYb61varMORMMepkjXC922/8mnzpCjlTvPL0+EW40tv4onuLy7CaDgVJtq132RP/Cbg/9P0v27gD9WUYeAW5yX6T2pVIOG9cT7I5bC5S1GCK5PUqpN7ElOGpSEAAkbVFLnu0i9jUW+tJqKO3kj0c4Nhu0KWxCR87ReSXUwlrrPr/ut4MzrOj6DHM2nttam2DGAJtP3H8Rw5QAieoULeKP/6582TiWHr5qLo9hLNayedFpdF9OvyAbOttx+5Bv2zes/WUJtKQVvEQ8Sl1+k0HSjcPPq+XVUiRdDHw4z5AFGQhJAh4GTnPqAihwX67QwQSMyIn0iO8zcGqC5CoXc4DkmD2HCOHh7d7XzM6WYTJYpULTolCWohMpehnFKG4uLu68SGsRZvQdwRo3dcKo8PTCMAU3v2a5hbBtuQ//r7E24m2T2bSxbprXWLgocfurAay5E6yBIvtRlNDG6FeGSnzkF/ZuEVpfYb2/5sJf/qM6/m1s3v5Z4zJmiVCIleHpn3RoezUxeJNSRJ7vtyjh4wmYjEFe09gaWVbNtU/9eYyLYt32u0vYA2L2C5vW0S0XWbhS5cIyvGgjJkzaX8sLxNHDzjiGcCl0BErAKRAdC7gO0k82df1C6z2LG5JkLOY+9m//Unk1IOIWTXjo5NvyCLV36vf59r4miAIRvvPg9Y5dogKzb9ao6tMVY+V+0NdxXFjua7nfKfuE3yo8qiMSot5yVEzeMLaKoMLP0XT2gHcEwvFcJngGV7EaNLRQC3/soivaiHaHgFT4enPfSQt5pTyM9UbMjvAYJAg339dDdQjFrqdMg+YnKtfxJwFdzV+quDiZXl5RZn1BVD+nPFMO2RLmOGMa9ncm7VFGrHe0i6jZmK+plG1262TGdC4TPKh1QLlZBN8oZeDuarvK2U2mk7mIFVIXuxRTRdNSP4UGJnJDXSv0+ERh92I0Tg35qzfSTtvVRF6wsy3WuSW8vQswwI7GIRoN+2pNd+HuKoZSt+DNstVLhHFoCGmxmV4DjcC851q8Dir/93lb2JABvMXhmSJZJQSI/ODfRG+qrhP8fUbTWFbdt1Pru64zA66aWOBB4oArgpPdv432eFgzGszOAqj0iu3ghzSRJYbYf8DTTGqMzCu1bBn9A4Ubtz9VlUxQ8QEOxTNxe1ZX0j+RpqSs2Q== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mGCCFtVikbShfEpWWl1dHjefbeKNRoO/P3nbBZZ/GptBATTx2eAMEsgpTx0dtwRAOZT9wqssNzWkU2c9TV0lb1CfnNoxD57IbMOYOXhs7K4SdeedjBjqWOya5Zb8MEKqvVV85fT/WzGKtR9fLtSVFAl+pV5ft0Lb4mCojaqDgFn5xlRrvGQIhL9hxH7657vdyiVISpzGh8G3tWJYXXNA5vlVYPgkaC+cXbt74S/7yB+nfIUhEpbUX7/HyWiwvcNqgBPHREffc/aVBHu9rEoRuYvmCkHEp17+RMK/aZk231w6bE7WhRV+fl9+LYKnRChfH3TubjYaewHd4uwj442+yIRUeOsJ9SiuuN+h07NKZ3ctTP91kyaD6hNIn08VFxVYR2crLu9J7ENoUqpoFDqFog/29fsekAEZhKIzJ9uN/sNp9Se9Cz0i0ZyT9TmGMa1/uC+RVyTGmLs84bBNPI79R9qBcMUQrh7VwqVIxuj+vVEL1ax1WVSz5djsHURLYn6eVQrlt9Qk7ncWobY/Y+Kcu6XlOMjjJJSLMwPlopduggatJN/f3S8e78hQvU+3lwGP1DmZc+9rNBe+c6nxW+JFeR2RgKo+0XAlysMrowqi7w5eTjv+a2h7asbqKNDIgqawKRDWfsNT4wpf5AAAj08VEJVLyLbYPCWG+6HCShbC3yderlCDXWWsrJ6B7fR+xwCDlUmouVe1jgLuJfTC/pjoBBpCN9UQ+lNSAgDp+fhnr2gTqjaL79wFxwa3oorQNxK2NULWL5DUdQs+chU5A+8jSMDiIYinWpTH1i75DKnelqKv31LkzvZ2eQONVbHr3haNfqYmLV+XLRcRTk9FxA7iRCJiWgL5T5VsC7afdTDyH05l2euM8I/B0AZrfz7LFB8kihg/yNOpdzpst6PrKnHO+r4unrKPvvKt9JVapC5arDxmCtUBWX6TksnSNvldE8fk5gvFxT/eLkAj2Z/dtGZZvwPhETJWjrFUebWN6pgB6OXZfz+eAD9WQPx/+ZUHrF0yQ23ABsoLz1GWOvlVtBgzx1Aym9QJlVIH4C7OaiTS1jLA0kPNPxKpa3xMgfeNIcqgbAeW4x7e/uANUm42POG0ip7fZlmxk2Q51YQ/Z5SmjofoKVdNFAkc1GDS52BtXcJ6bKHyLfb3ewzE2d+ELBowANkW79t/Wd33oOtVl0Em8f2PERZhu0mgJtDPmYqxFGheqyAiLHa0mF/NBfi1N5WV4vC1uh6usJ1/6gMryHBsDcar/DdjjzysPeTfRuMbsuvd4//7eAdmaVy6Krj+OgtROEpns6DUwk0acRmJa0QpaNyIkucDjVGPiDq7VRhd8l/2xcywwrBRwSAmwDOPS/iiT57JA5033P8tSZ+Cl8D0+WT6AJO+ArGyxw0Tkdkrq0MUdiMVuQh5luGO8Xvt4ziqHYKRxJ62DhssnIfmqvpQiSohDZ3N0MNy9G1akbu9iX2R0nDDy1Hmn6/S/0MwOUkAXqBQKgaErWvv8nMyQsrIF96KLf+T63YeweDobBjx1lckeV113siq+6HSO29Bhjetkw+Pug/10+cEe/ya+VjNFY8Kfn3tfKDOFv8hudBhjmqPt1cRqCMg794y3n/HGD7Tqg== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4rTPG9VBrLxGjbt6naD39oT90Xz/N0yim7HQM5pUFAJxTMjckqZ17dQwGwvaZFDevmeA5y7k9yBME71XEIjHyxdO71Mqh2NdcQqC45wYnOuIyKn7d6dRF3/B8lzulf+HKmlOpf2Z7p0+hxrqmNQOhs6WypQNFj9xoKH3g1Im+ZZsozsqniSEYr53MIK8yDngSbRb+B6ZRcteC2dCsCfkcj2TmbbC/cpAafusIupxKaDvohsw9TTRaxjbqEh0H0OH57O96V/pIXjqYV9VStNfcrPZa7w42JlZu2IanrYWGvM3tzDGis/JNdrjXlcAM6jxlSHByepgBzGj0FnwOXjXLWt3N+1WaBljNbKZtMW7NTT60tKSJLM2GcxuMJgCpAIARWSiWZUbUnwUbM71ff2NBr9pzooiaeRlBMVDC+weIZXjAFq/b/+Hafhkia+9yiCkbhyX4WBuCxSSd3alwMDiP72Hg8gHigNIwaZZR/l/IrhPqSRiKZ1SqGZD2duzdIiChu0ZNyo2EqetGgO/Ej4jN/QZD/a27ejZ5m8+mP1aBYOSKX8JJtg7azXQVU21vFfrTKl2yR4QF8rzZAnpO84gSw3w9JI1DU13Y2EWZG1jwlY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 008c11c5-6327-4eca-bcf4-08dca115b9d6 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:23:06.4909 (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: QWVe3LxpoStddjeTgqamNVRoPfI5zRl3FSUKKzOWRHZWztj+goPi7nKNxk08aqmCaEOtfnQZJ1+B9PHda9ntUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7295 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: D7zIRJzmtCucabQKyIqMWmuOrFFmyYTV X-Proofpoint-GUID: D7zIRJzmtCucabQKyIqMWmuOrFFmyYTV X-Stat-Signature: mi8euxdt653463kaptznx8ijimcpowm3 X-Rspam-User: X-Rspamd-Queue-Id: 085EE40009 X-Rspamd-Server: rspam02 X-HE-Tag: 1720639420-826053 X-HE-Meta: U2FsdGVkX1/eGQafiSurIZPQ5e7ERZCjqIsWzncUbdRLB9MwbICgLRCUzLggWvxCCl5ZYYX4tBl1jjLPIV0bVNxsMtPinw7H4VHgzUuKjcs8uk6rAgh/6neXpEa4sG10bsxGIq2efKWvACCRCU1pcK6w/nLFQE1hnyEFZo7nIQmS+NA/v1nJtEZxOkcj2CzSkJRSKy7gE0KRljeh1T7Pbbz9xVOk97IvLQhvEg1puWfAgzQvceqUU8MiMcWXI4HY9nXKhSDm0wu4tmSo99ZJUSNeqT6aXeRgnaoD2vCtegYg8MWa0P+23mcbX6dzNdhW7TThywuN7x0RZ7JOMXidGkZfB2SCaUD3RB+fkGyjxgrLP3KJuPdKNHs71944+2V07hvV93amc4BIulfie324SQNjXkJCvc9LAbE1I3p7s3TwTnZe2gCBsJKyu6TjOphfdd0CV9A1uUNDhKqnwAqsuSrnxW4R4MxU0zh8fGIYqMzGfxsCPOL1lYZrHqLgvx5ESsIifRLrbqB0VBLJtjxsnZzz3pSLfKf+2+J7oO7dHR5C/pp5arhQeze7hjPlvcNqRrfoRQR237idlWBnUTv86EDS6OK1XLbCdRGHEifO0NRpSiq5Ae+cEPY8ftOi2AC3nXjOB8AKVQpfnUoynHA8uc/uy29gk27dZFdzELREXkxYC7RPxzvffdmilfHBn9W6cHVa2oKFXsvb4enlE7yJdaqBHvKb2WmBtxgPcgCwnDXlugjtwisIxtbxww8SPEohKzwZt+siVWK7x1cJGBSCQQ+IUDTt1tnktXKK3Q9hn5J/0y9aCDgw0TRDsKwrQkVsQEerXiinQ84i3QJ5xgjixZo6r6XTz9sv8/GzFnCwDPCMZMHGgoSBFJaOXLmZ6sZkGZ4EYinw+PGxM11lqB0UO9Qdi9UU5MfGRt69Vv+MhnUQZlgCulZsEtaUJqMw0YxyuKLLpAEz/oziDTevT4J EM0R/Y4j +01+UJVHUww/2INbfrNS/rdTpYA4l2oZcCCKhg4qrO1QzRCV3GBNGj2FwQtWPSuz5WE4WyZ0Pp0ay9UQJbwy5jBRYLOCNlqVeXk0DB0PeNgp0nleHO53XqnFFjKGPdIxpWBX1YEJtClBG77NGmXxzdd1BupnGldWvr6/1i0Kjvi2CjMPFXLaUq8fvKbuqvb1Vm5g3WfWLFsjMrT7lS66Jr+hZYokiOFb9Ot6PmIQMyC1Toty6I3Z+/Rqnw411Bjh447foEpFbLFjL4GwIClm0xfWpUNJDeCWn4Cg+ulQWXQbgsguRiZBcMzv5+WxH5w5xHzugzjOA3eGPo8sv/F/Agci3+AAFGS4Ij8LHBJQjrjPrgBGMI0DgWxnFlsnue9dqN1In4H3ePDe1u2DKJYIdliGueZEyLt7W+G99zars0VO4tKSZSN3MCqkyoJwoFWHomDKcm5zX9MGiu6nGfQCjObyvn/OCdyClTuFK5ld7oX7mXJXFnXwrkhGgFnLkAE0kqdUXo65xJRpIIU4= 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: Create vmi_gather_munmap_vmas() to handle the gathering of vmas into a detached maple tree for removal later. Part of the gathering is the splitting of vmas that span the boundary. Signed-off-by: Liam R. Howlett Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 80 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 58 insertions(+), 22 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index bd3378935c70..0d03fcf2ac0b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2655,32 +2655,30 @@ vmi_complete_munmap_vmas(struct vma_iterator *vmi, struct vm_area_struct *vma, } /* - * do_vmi_align_munmap() - munmap the aligned region from @start to @end. + * vmi_gather_munmap_vmas() - Put all VMAs within a range into a maple tree + * for removal at a later date. Handles splitting first and last if necessary + * and marking the vmas as isolated. + * * @vmi: The vma iterator * @vma: The starting vm_area_struct * @mm: The mm_struct * @start: The aligned start address to munmap. * @end: The aligned end address to munmap. * @uf: The userfaultfd list_head - * @unlock: Set to true to drop the mmap_lock. unlocking only happens on - * success. + * @mas_detach: The maple state tracking the detached tree + * @locked_vm: a pointer to store the VM_LOCKED pages count. * - * Return: 0 on success and drops the lock if so directed, error and leaves the - * lock held otherwise. + * Return: 0 on success */ static int -do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, +vmi_gather_munmap_vmas(struct vma_iterator *vmi, struct vm_area_struct *vma, struct mm_struct *mm, unsigned long start, - unsigned long end, struct list_head *uf, bool unlock) + unsigned long end, struct list_head *uf, + struct ma_state *mas_detach, unsigned long *locked_vm) { struct vm_area_struct *next = NULL; - struct maple_tree mt_detach; int count = 0; int error = -ENOMEM; - unsigned long locked_vm = 0; - MA_STATE(mas_detach, &mt_detach, 0, 0); - mt_init_flags(&mt_detach, vmi->mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); - mt_on_stack(mt_detach); /* * If we need to split any vma, do it now to save pain later. @@ -2719,15 +2717,15 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, goto end_split_failed; } vma_start_write(next); - mas_set(&mas_detach, count); - error = mas_store_gfp(&mas_detach, next, GFP_KERNEL); + mas_set(mas_detach, count++); + error = mas_store_gfp(mas_detach, next, GFP_KERNEL); if (error) goto munmap_gather_failed; + vma_mark_detached(next, true); if (next->vm_flags & VM_LOCKED) - locked_vm += vma_pages(next); + *locked_vm += vma_pages(next); - count++; if (unlikely(uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas @@ -2752,7 +2750,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ { - MA_STATE(test, &mt_detach, 0, 0); + MA_STATE(test, mas_detach->tree, 0, 0); struct vm_area_struct *vma_mas, *vma_test; int test_count = 0; @@ -2772,6 +2770,48 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, while (vma_iter_addr(vmi) > start) vma_iter_prev_range(vmi); + return 0; + +userfaultfd_error: +munmap_gather_failed: +end_split_failed: + abort_munmap_vmas(mas_detach); +start_split_failed: +map_count_exceeded: + return error; +} + +/* + * do_vmi_align_munmap() - munmap the aligned region from @start to @end. + * @vmi: The vma iterator + * @vma: The starting vm_area_struct + * @mm: The mm_struct + * @start: The aligned start address to munmap. + * @end: The aligned end address to munmap. + * @uf: The userfaultfd list_head + * @unlock: Set to true to drop the mmap_lock. unlocking only happens on + * success. + * + * Return: 0 on success and drops the lock if so directed, error and leaves the + * lock held otherwise. + */ +static int +do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, + struct mm_struct *mm, unsigned long start, + unsigned long end, struct list_head *uf, bool unlock) +{ + struct maple_tree mt_detach; + MA_STATE(mas_detach, &mt_detach, 0, 0); + mt_init_flags(&mt_detach, vmi->mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); + mt_on_stack(mt_detach); + int error; + unsigned long locked_vm = 0; + + error = vmi_gather_munmap_vmas(vmi, vma, mm, start, end, uf, + &mas_detach, &locked_vm); + if (error) + goto gather_failed; + error = vma_iter_clear_gfp(vmi, start, end, GFP_KERNEL); if (error) goto clear_tree_failed; @@ -2782,12 +2822,8 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, return 0; clear_tree_failed: -userfaultfd_error: -munmap_gather_failed: -end_split_failed: abort_munmap_vmas(&mas_detach); -start_split_failed: -map_count_exceeded: +gather_failed: validate_mm(mm); return error; }