From nobody Wed Dec 17 21:13:29 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1776017994D for ; Tue, 25 Jun 2024 19:12:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342739; cv=fail; b=TE8zToFWPvHAfkG0DNmVGRPvrcnOL/ULBKFeOu+TYtZk+TrjTwm5TpiEP2fKAS5lGI2Oicy1bPvxiE2frITfcNALchDDttQ1W5IToSo5sE9ozIxACwFCDDffox74FBtDHAB5nWkRGAXd6U8NKlM+vFYcDB2OOWlr/PJ3hDBiYlw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342739; c=relaxed/simple; bh=ZPESTzeh8XvfaDK583IP69YPpytuZWpRLgai7JM9aKc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=HFQzGpc/J+DhRFD6ilogl7oMyd4hZ5d35Ff7nH/jFQMTdX8hbMd5sgq3+EylXv2TaLO1iiWF03f0LM3BwmIj1HPs5TxHCliLiQg5TFFX+RNiLPrVPLDCrSti1hCS6GyagcSC7Lb9E0ohmRfZwPKT3gRNMxQkPMLKbyqdx03tq2Q= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=mPNhXfD2; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=lEiifg/T; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="mPNhXfD2"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="lEiifg/T" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45PIfTXT012777; Tue, 25 Jun 2024 19:11:57 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=vBrw4cpyDlw0oCxrS1NpsHrvh6il04b/OpjjP2KEzV4=; b= mPNhXfD2YyCu1QIjCFq1gutp9o7z/wM2W289Gzuz+bqYxQ6Crv9PsTN+DN+bIhR/ 3kV1FgF80boAM3+/SWBueFViWUqiZmvawdFLH8YIqiEEpyCU98KUW3OL9nIxTURe yR483TYCp0mqvCeWDCTRzeK1kMHxyj+X1iUlBvWUZS32chO6cTSma0akcMQ3VbtQ SLd96eMr6mosG2hrHceyBgBnIVpmlaSMZa1O9gJu9FV2v1gTRElXIaGUS+eKgpEy HCiVPbBQA+qPdAzRyMCJsbV4J4y7BDYvA8OObhJLIWJ+j8QgSkk7BCF4MYCUX82l Ni3kfs9bkwdOHcPEi85vTQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywpnc9uan-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:11:57 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PIqmFc010741; Tue, 25 Jun 2024 19:11:56 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn2egt33-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:11:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eEHpOtHErB8DakbB8jrEBO+fZjcvBeag8XHhfItckG090HVNw31TsV19UG6wYN/PeF7yk0XdZBUNevZmSb74JuTrAEwB5MTgX1ZZ/enadeKldZglSvJFP3ahSlxA8K5iNRu2EtRM1VnqHuSSAOUZFZMQrAZFJ0i1Ywh/XjoV7sWR4GvBMcqxRuGoqgB+j/RWAAEMMe8InV3GLT57sgdicPvTyBtZqZFbj1j0kJjkvAjTZstxdgXGYqUz0WimUiR5+ZpBC4c0aMX3cIes2zhokiOxG79ngNxfrAGrDrfNILnjgPCcMk5HzK0kwOFg5bQ6qZn6BU+kpwiWHsbUaQVA1g== 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=vBrw4cpyDlw0oCxrS1NpsHrvh6il04b/OpjjP2KEzV4=; b=H+d9WVsjwI9R8RKiXC3XJWSXos+N5UhqCL+hxhpTScTrkqQPh0xdZXO2+JbRv0ws4FLZd77o45BS2TGp4qIzOs7dGwhiEuu+uR3BD3lfxDwqOWXXYTChA8m6VP/aDfw1LG4lA2o/WwF4cq7kHtpYZUGXCauVkBKwxkl9KlmUO+KW9HPoObKvooIG2ha8m1RhJSn6CslVq1OXsJ1Cy3Um3iHyWrJ6FiRM590ceQk10luzyJkZy1AS2KHG2MAjaVdZ7sdVsY1U3EpBWkStFgTqjT4hW265ylHt/op96sycPvZGgH7ts41HDo0J27FyxsETdw5g852b9Mo4IyUeKBqZxw== 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=vBrw4cpyDlw0oCxrS1NpsHrvh6il04b/OpjjP2KEzV4=; b=lEiifg/T1c4VAYIPkFZJVXwjAHlnz+oQD2jcS7CVsqEsW+htt/xdGt5eh1c80LmwygYPzImYU6/oaeZHrEri4/yQnS74hIYVtpu+QCALyrSLvYtHqgmeY0zQTIfHmXXG3ainwl/2m1v87I6HKEz/ajmtKzhc1SeBYMK+UtS7upc= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CO1PR10MB4707.namprd10.prod.outlook.com (2603:10b6:303:92::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 19:11:55 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:11:55 +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" Subject: [PATCH v2 01/15] mm/mmap: Correctly position vma_iterator in __split_vma() Date: Tue, 25 Jun 2024 15:11:31 -0400 Message-ID: <20240625191145.3382793-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0058.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d2::21) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CO1PR10MB4707:EE_ X-MS-Office365-Filtering-Correlation-Id: 6265a5bf-9856-440c-4431-08dc954aad83 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?fGy679aj1+cegQynxq9ggpzb00Y6VPByi1kssyyONJwE71PtdaOvSQuO7vmX?= =?us-ascii?Q?PdcGD8IOtbBawB/HCv3EJ1rK7nM8X+Ue/M0l3NueHADkcBZ+Jwmcvswnfm04?= =?us-ascii?Q?cLlkYhXS3mkoOup1K8RqjMlNo2lsGfPHh/XSAfMTF4lM924FFpHxDayKYmgP?= =?us-ascii?Q?5zpZ/N/srJNJ2Y1wDNv38JAwq6Vnsxe6KClD5cKv4j6HLSzRUj2KuFy3Qq6a?= =?us-ascii?Q?/ZLFoGfPV09W9g3v50XJlX2diBchyodIvEy5PdsbDyIkm8ik+rzzCbb70ym6?= =?us-ascii?Q?KXBp/xh3loD6RjO4YaENv0oXu4dGx9iryNQlMEUHcJIrYXPJ7qzjs9a2gcSM?= =?us-ascii?Q?KyQ7g09MnJkT6t3IHDqzORVcSRBX7KSWzT0BMsSSKYMxDeiAw5KreBTxqgaL?= =?us-ascii?Q?5SYQmJJnutueBuezajvCZVaUwg/Sd7tzLjbNfLXIjat/G/f4SAUZ/GBuJAWE?= =?us-ascii?Q?XD8rLxcjphldyP4jkwm7bftX+uh4rrXBU30EwiZhOT49eAL644+TdB94yYQB?= =?us-ascii?Q?tCQD1d1TOcuNh+3TkyfP6iAQT8AJ+Qd6GyaL4i1tJNgANwD01LVX4X6/q89i?= =?us-ascii?Q?WhSSLsfde1g2Ozp3dWf+TgcxajBvXzx+L3K07yYScLxNTjMkMSE3E2NEdlwq?= =?us-ascii?Q?8U+rB2btC0zPTM/QTAaMRguaX82yjXCu3eRMAod9UBtgIZWWJxS6+k9uM8ke?= =?us-ascii?Q?apKSEUVNIkefj1tzSPTc4fd+9U3gME77oFsOx80cfLolN4IagrDyaAYpSgvL?= =?us-ascii?Q?wTxAV73g3qHyUa2g8pJ+NrsTbdslRVmygBkyd26iurjx9iZ8pubTZd2zEtLT?= =?us-ascii?Q?u7u4TCu+nTaCi2GutyZx9CG3WAwzZwztuIYqbVvHt70WbTxCKp/fhD9/iqJG?= =?us-ascii?Q?PSFR5ZRvLoRwOVfNYefbejNA0LW3SUkUNRxnV9CZbLtRFmw5Ww9jHX8E6wuu?= =?us-ascii?Q?59BGRTeN6dQppDbZJCYOzvCRlp/FMz9Am4pioSacaKd1Hm9Sn0bJOJZOJile?= =?us-ascii?Q?yfnm0NjPMjwjgkDWmsBt1bAVDchp4Ajlk7fvCRRvagN8xVxG2kld4p1TepvI?= =?us-ascii?Q?6RTJTMuTyF9TzmFs4tg9akthxEnNs5HQwj6hmdNyEgYJE2MP1MHInebtDjFl?= =?us-ascii?Q?wiWa/fPbWlw2hvJ2owqpQnb17IgWVEvuTLSNpGqo25SlfldGrMFztrgpt0eT?= =?us-ascii?Q?xme+k/ok62tsZ0A7AntM3Vass++uQDf2tcIQGNEGBBHKy6ULk1N0FwmcP8IG?= =?us-ascii?Q?4cxGKNeTE3w62esOnRkHubvX9EHN2M9GYdpdbvINL7TjL9GoBeAm5x3kxDRd?= =?us-ascii?Q?2ZXHlwKMk9jurz71LkXL8U1Q?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+WvB7CrGT6+VIuwdJdz0RX4/UtsTVdPYzyptIeTgnxvtwzqMRg35ucQFjn+m?= =?us-ascii?Q?5jg14AOsNULAA4Ce6hVFtMWJI4JliMOYcHOTNaLnSKP6gLHmcGd+J4sSXubc?= =?us-ascii?Q?iguHog1Y8wNyins3xzVsO9Hf+q/mMxq1oy+CKkUaHWs6g1B22WHCo4LUwJQl?= =?us-ascii?Q?oDVQQ34Udq689smDjJ/rtrusA2dYTsdwV3buOTI4K9msF4JU4iFhJYX5ROXr?= =?us-ascii?Q?+aKRGfSRPuF55Di/q/TOuHU2UsT1IECbQCNiQuhbIe4bZA2OVXxv53r4kIZf?= =?us-ascii?Q?zIn3luK6T142bZSERb6Lhg00PUTsJGkWPVKhu20k44Cep7Wtp2N8zVd7CXQG?= =?us-ascii?Q?z61HxBEEY984+04bHhm+p//jXUiYTfkN5P4qbmST4tlI1mp6n6K20tCR+rk5?= =?us-ascii?Q?r8LFtg4MpnusQnYEXnFiR/gVn5rRSDFgSabJIR5cj9Pb9JjfQHj6vT4vAk9L?= =?us-ascii?Q?mhZ5SNwjsGNF4aZ73GCD1bh0EDQU1TfgiVwIKThkZxWwQ+l0KZYUMeSDMkCl?= =?us-ascii?Q?2FPbLhkmLontYyspDZ2j+/xuu8v/dcb7GnTfy5LshV41iOZRaNgvac31vDYP?= =?us-ascii?Q?08UtwWHPyG7ZxudYicD+mU/WVma/fBTCkZJLsMMiYKbjzFYTQLdhVnANuYFi?= =?us-ascii?Q?15b03yzRyNUXAA8W/3kJHoxyrgxORWmIdZyLWnsjeRdCfBPdjP5jDyWhoDkY?= =?us-ascii?Q?lV3EQaYwJ/IWNcbpKBqrQ+4BMBfQ809rhRXGb8inlkrM/mLmNScwJUG1FwL2?= =?us-ascii?Q?DpKsot9aNxao8TuMs11swfDxkNP7vHH+eMGYJ1XjE9YbnSMH+k0dc7nAwODv?= =?us-ascii?Q?ejWRvQJBH5GS9lcrXeHpyVSeJpTvo9CVUWJ/NiQmlsq5ZLJfC4LqpEQIOzhk?= =?us-ascii?Q?2XNrVpnGZ2bDtme7eMBsNeLVLKkgY+ihuw7vzELYgA4TkOQ4ttwPYBijRTIN?= =?us-ascii?Q?ojT8IVGbTGt1hN2UCoR/MSMc1lxXaJkjdMTmoWmvtJfb7AXrgpiL8lxX7ZMv?= =?us-ascii?Q?wesN913+2QjtgtdQHpqT94ITaxF03mx9MFeQIefGzPjSZvehrnGiyYuOUslr?= =?us-ascii?Q?2rmwgvQ6seoIKAMkpIevqj54ySV51TW0QcdZ39YN/HIY+OgrT+wJhqCAGthZ?= =?us-ascii?Q?Kxu/S/EJokpr1NK135/MiJdeZrHAAeviPiKBdxHQoPgPad0atx2GLywjsMSH?= =?us-ascii?Q?Y3gksPZUouV1ECmIgP6Wf3lfzprSi7miF5N6GooeCdPr1NQtwtG14+4NqH0r?= =?us-ascii?Q?bTKhaX9lrvcq1lM1O2+GcbR4E6DWT9Tav3LMAUK9PC0aEmDdAm3iU2XvDukf?= =?us-ascii?Q?iS3L3JNnc8DEgK8uMqM2Fy+U7+Zz/4gD6CqWCoup+2kpLrB/En0vU74/KN3w?= =?us-ascii?Q?yGTl/yIgRXvTB8vvF9lj6Qz3zrnhA6WuGO/PSyH7zurfa/4gEN+Efhi+idgy?= =?us-ascii?Q?qXPNvz1cOIVvC4aZkb54DSjQaNjY0LGZdxQMTt8Fy9nqv+TfLvIv97Zgvp9a?= =?us-ascii?Q?VRvfqZzb0EhdpcLpgK85FADMOslbAg/PiUyCO1SHXOJx8vRdIcoC8eQCM3cK?= =?us-ascii?Q?fdOuQRapzfuX/4fF+gyAboIwLPGHmWntFUnahKeL?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 55LF2vGPax14wf6hiMqCHwaCXf6D2hSzzKOPnyoxVcWQ/RXnUQ8SdxrhediNHsD2axM/bBB9wkPjH/H1JCiQirTlRyLtoNMgIaG8YbswbwR5ZBX31UMzT8upyQKcRk0gOByGR7i+c5QhavPEFl3mbBIjJXCNmSh2NgE/OD7fGwDWkwkfT+SDIhLzeE0ZUi9mZHaapJulspq41cRmgmhrWBog/qan0oYEc0Uu+b8ZbV6x8rclXstxGSLbeLSorKGbsoCQLYIj58U+P4oNp1Sz6hhVxnUlYeDyMkjL0LDXM0gepaJcyhxWtPMzjG9BhNSQIgPZ7bv+0vuP+q7FR6Rf1n/CgeNCP9z6unbxyptVhiYvKqSOMeBP7Ww/ANTWUpd6uiuv56hfXFVo+6TH2q9dzEawcP22FY3/M305ZqUZO9Im/wB5iAUtUQ8g8gVi5xKnJjB80zmxmEAfT0r257CE0HtXLof4tTep6xlGOI78bJ9Td/ZUVzqXXHbpLZHs0pu99kBO3WfrUGaOqi4WYKfsc8XzObr2Gt4DRDjYezXypP4vRT05X15t9xRROIuWTzygrdAdGu6B9QjcRN2uD0g66CXcuOiUbfHF1lWNcBHfFBM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6265a5bf-9856-440c-4431-08dc954aad83 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:11:55.1989 (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: Hrm945YIyWRIJ5/dWHA0UmQ/X6F/bUQIb++DVHwkX52j4w5Kw3Rp4db6vsXycDMmC+uFoCVZMnOXvr0Mt8fw6g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4707 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: _NQkidzSuWG8KZKS_Xw_eGL4S8d_6KHA X-Proofpoint-ORIG-GUID: _NQkidzSuWG8KZKS_Xw_eGL4S8d_6KHA Content-Type: text/plain; charset="utf-8" The vma iterator may be left pointing to the newly created vma. This happens when inserting the new vma at the end of the old vma (!new_below). The incorrect position in the vma iterator is not exposed currently since the vma iterator is repositioned in the munmap path and is not reused in any of the other paths. This has limited impact in the current code, but is required for future changes. Fixes: b2b3b886738f ("mm: don't use __vma_adjust() in __split_vma()") Signed-off-by: Liam R. Howlett Reviewed-by: Suren Baghdasaryan Reviewed-by: Lorenzo Stoakes --- mm/mmap.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mm/mmap.c b/mm/mmap.c index e42d89f98071..28a46d9ddde0 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2414,7 +2414,7 @@ static void unmap_region(struct mm_struct *mm, struct= ma_state *mas, /* * __split_vma() bypasses sysctl_max_map_count checking. We use this wher= e it * has already been checked or doesn't make sense to fail. - * VMA Iterator will point to the end VMA. + * VMA Iterator will point to the original vma. */ static int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vm= a, unsigned long addr, int new_below) @@ -2483,6 +2483,9 @@ static int __split_vma(struct vma_iterator *vmi, stru= ct vm_area_struct *vma, /* Success. */ if (new_below) vma_next(vmi); + else + vma_prev(vmi); + return 0; =20 out_free_mpol: --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C282817A906 for ; Tue, 25 Jun 2024 19:12:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342737; cv=fail; b=ThlbhvbqrVDn2mEMqUbLQA6OSVawgRH9kw60YCC9dmCGSYQ7pJjEgu0WqP3LJeXkp4w0pbIo5jdF8M/WfmHJTco8J7Na+NIaosMJxjod57oQ0EcBlk0OexkZV1z1fgnEihMCwmpJcfZ8SRd+0DvcxdyggSXYiu7Lgm5s0n18IRU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342737; c=relaxed/simple; bh=MUdGcyuD1zj/hoz6fbwcxO8kS6iWTbAgAnBkUwwqZ2U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=TT45D8Hqevq7W3bivdd2N7LFsKgx7W8jP+z/MMO3I3BijjBgx6TXtNicOUNiJvql/nssBJ+Fvoe01oUbUN1/nMIETmqwmV8thd7dtZOe0KM2les03JowbgjRSoxcUNX6oxf2nJ0sqo8vpUInbe10LVB0/bzW7GrtY1A9bMPQkSo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=geKPBgWh; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=a3O9nx2l; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="geKPBgWh"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="a3O9nx2l" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45PIfTXk018305; Tue, 25 Jun 2024 19:12:02 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=zSu8hDWlGjMxPlRgldY+gYYh1jH3ES1rfBL14tJEjt0=; b= geKPBgWhM5WIp2+ekoXwDoNwufxBJj6bRgerNypGXAtUA7xW3ZNNxoUVSdGqXbRJ aBNX4C578kFSazvs5IZODIW8cE5rvpXFozxsaJtMwsfFzRQLr7NrMS0ciPt0mp/v MFneqkDrTWAwl/Lve2qZsxS1KJiM1FXVDNgfkbvMJg4ruhc6DnLRUZXT8o+vr/J8 wNFVUxJjjsgNky6ekITINPuLKtlVTbKtk1ZeXOR/aNx/doMRNOV47ggxeQeNehLd /3IxnJ8jboqTbU4wt+WfNpYjia9vl5eNEhlMq35RdOM9Xt94cqxIm3+wGSmsgkbg l1gFkPxXArJiUSdG+RSLVA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywnd2hmby-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:01 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PIrYKp010721; Tue, 25 Jun 2024 19:12:01 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn2egtb2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RnMtv6b7znPbELE25pRfsGA4dhQEgmzFIoZQLJLsaQaszzT2myG55Q+s7Jn+k15jwGaTNs/gk/oGLwvH9/iToBwz0RAfmN3gB0v/r7P573zb/fQ4HXPVlqcfM/d9yXE8hbT8/EdgJliW7l87JjZITwmHCDqYZAW6DKgG8ITWzViIjygV7ZKCBO/mj8RRLXsRsL+mNfqB39Q2MGMk/6WF28PsDsxXZgqv3R8b2dSjw0CJV18OGAfJGPtJQWhaSap6UYXsBBSF2Kp8tlQT+B5+0UFBWk5uruIQdHVSo4iNElpDH/2U9NtJi0XVqu0WglUR6hsORue2eYxVi6B8OLbYMw== 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=zSu8hDWlGjMxPlRgldY+gYYh1jH3ES1rfBL14tJEjt0=; b=aiiFpfm2MLxPy8cPZrCQ1VaLeUrXWqmvObgzQhJ8cLdC8VkSAbI3BeGAtd0v7MLsUxwi6jLPYWywyRAcm/aT238YpjddcF3WRAT5iUX+0+twMYFO4al8XWvK4QOBciY0u7SVGpG6a7wgZ2H6hDNCi1GpLuMEmmCHyUN56oIQS7x0MoJX2ZlW9mv+3NC2uqCCDis7XV8AKfg4Kl7wJPvDh1+t64YG+nr827Zh3qbrDNjIh+p8qLn28gzQ51fdoFJ7EPSIB4w3A4DaPxJ3Je4Vu0Js+vsGtbFLXXoyY54+ggUHWYyf3Qw4RcS9fRyPN1JvtPoYcRFtp8xHonM9eRz/FA== 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=zSu8hDWlGjMxPlRgldY+gYYh1jH3ES1rfBL14tJEjt0=; b=a3O9nx2lOKAGh3dnVekeXdbA2QoGK7yqMC5KNM/Uv0xzLBvrv19YGcr9BDefzkSRLW5DCg1nTfiwBNriwS/zMX/QyHcekfvjzBCVPB4tEEjmC5sCG5X/qPYChEnBirSRVy2W2JLdxA2P/5ql10AB37u7eA6XU/qGRqQp5szAIbY= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CO1PR10MB4707.namprd10.prod.outlook.com (2603:10b6:303:92::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 19:11:58 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:11:57 +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" Subject: [PATCH v2 02/15] mm/mmap: Introduce abort_munmap_vmas() Date: Tue, 25 Jun 2024 15:11:32 -0400 Message-ID: <20240625191145.3382793-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0057.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d2::14) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CO1PR10MB4707:EE_ X-MS-Office365-Filtering-Correlation-Id: 36296a7f-ac08-4850-d64a-08dc954aaed5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?NwbYqFQpi44WKwMz2ua+aosjy/aeBPxdj0XcvPiHNqSG1gPeTxeYhcDkRZhk?= =?us-ascii?Q?Cwh+75iVHNFMj0Uydm1kGR+lk+fTY97DuoH+W148JKIUOiDUgbyOT5G9xkai?= =?us-ascii?Q?2fIq8N4w7G7pDo6ZaanbJK26SwN3z2mp3lka8440Az4hGBOoZrXsiSimEw0B?= =?us-ascii?Q?xFL+/k62ZoxXHGtiQD0To+/wCJDbTz9BnFyOCJTRfaIFt5hc/aoKnce/Gwzy?= =?us-ascii?Q?ShQLve4Uw+f7OgJ7R/fvXTiJ45KI29Y0YU3UBhcguQTVQdlHGaAxo+quPs19?= =?us-ascii?Q?effPMwrWlUMwkNMjfDxeFZG/oithNYYVMJdJegPH3x8egi27pBQvTrKoCxtb?= =?us-ascii?Q?8Ajyd/B0CtTydIdAtk+UHXzGjiSw7TH/V7ZjfROR/8KFpawofR9Eu6BCqvF9?= =?us-ascii?Q?sPm++rma4Nymf5WnsYVWQBGhhGD0LPGnfkMCfIeC5TgA0TYq+MkSM6RObQOa?= =?us-ascii?Q?bNn4saIF0IjHzVl025dKGlq3OOwiZLicV5gGB2W1VLGwiLSLgUFJZjfqAPZ8?= =?us-ascii?Q?N9Hj7czks/nL3HfS95wkcc9Xwk5bID466gbSmeT1OD3PUgO6hq5udTpbFbkJ?= =?us-ascii?Q?/Rns7YbsqOw5FAVnrOUTmuwds3LWcjCheaQu9sv7eQ4wRzgI+46LW9/4DLXh?= =?us-ascii?Q?1Eq1OCqjgoU0lKWVtzdCr8sX/3zfaeTozy/HLLj8rBlrpQJmCuAJuo+qmXaM?= =?us-ascii?Q?FDJEvcfeDenBi9f1WLmWwpv4HL/SsmdtPZ6GCjo3gCgSf7ntrXl77O9PEusg?= =?us-ascii?Q?+yNkv4TOSpXivUzsDIMx5TNVIvXCj9bicoX4gyGDKLlENjY052FtP5NlQBOp?= =?us-ascii?Q?apTeH0b0ty7D88MszwF6ty3B0IiOhLKS2/JzN3KJoruZuvrRto2X7DHs9INR?= =?us-ascii?Q?HM13X47flaR64tJw8cpUEti1lqullI+mA7Q3/uZMDtufuaa9h4PbKAsTTWL4?= =?us-ascii?Q?eS8HS4vSnGhA04X5ZUm9aRF1c0BjJYahXWmKdU/22B1nwjPkr8hKql589IR2?= =?us-ascii?Q?XmCBR4I8dSSuKRff6NEU2oDk1pQSHacYjXSvsbUER8YCkVXYCFvE/tACGvh1?= =?us-ascii?Q?CDDg5bBn0E7b81/+NxUTlS+a1+s9yXnmAAgUp6RdUm4J2Wpl9nZSgDE1eR0r?= =?us-ascii?Q?JZRFrUGpPRUkWqvTK2SK6oQ0poXoyyFCK4L9O/ph8U4S0ODJC8RvPi0WLNjX?= =?us-ascii?Q?kGxp+v7LL1oPLewJHjit5fRz3VNn0S7tHa0vmFNMptT1gJJpgX5bg4SUq4gM?= =?us-ascii?Q?pEZ7LQJuS0s0L2pC7Y7xHh1Ku7XUH+wQ3v2NpqZmjyTQMvVGJJWwpvVvyvTf?= =?us-ascii?Q?UFw4KlI/L0VfBmnZf8qlpLgx?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZmGh4lWeZyu1V8C28NP2HqGxJA5f7XghJnpgzoOWgKiV+CkhW6au5o1W8M8s?= =?us-ascii?Q?HwclAxflOOfjjMsjByhiaany0+ArZ4xL2tCDBBN41/YMbDMUNcfqJvoEWN2C?= =?us-ascii?Q?nEXiIwfTfJk5XFCM9ic9PVE/UXMgECqUiDIJKkA2TWXXDQLhljgi5nAqTnj+?= =?us-ascii?Q?MnXY5g1FshSX9NQlbLY/4Sk7ZeoWQejPwduMOONUsyv+CcQlg2aCvkZQEoXI?= =?us-ascii?Q?XKjjJ2Y0K7SOL4BsLQSDODzs/tbEaLoCXYBEFNxKavxSqoMPRjF0CxE3FOHb?= =?us-ascii?Q?KHqj8CMkHbBcjuklzYqucv87D+Y0CkQy++VWTmy1XAuhCaAlIAByWgB8LYjI?= =?us-ascii?Q?uc0iDjpsKpHPpdI+7ybtuiXth3ytQOSSF/8GCZ6KK0Ez3QX8OjCMmisV4bmm?= =?us-ascii?Q?8d1/6M0XkGsLYQ1bAk6K1ydYCArmyYrJZeVO+3gF5vENmF52tkvMMTKxfAA1?= =?us-ascii?Q?lnO35bFGpKc4HLU2sVl7EXHVXZ80Z+B5nsierbksfRrcZBYpmUpjZsHr1SMs?= =?us-ascii?Q?JcMtldbcyYh37SB2QVweuzWiHFQ9lOZZhQcu4PNvn3K+IIAI6u0vQQSMkLuX?= =?us-ascii?Q?goswoG5x7RyqvPUyyxD4L/DncRDlIp2Ng/hHJMS/he1MNjo2ThVEXLXwhG7k?= =?us-ascii?Q?y/mT7Naiil8AO6wWvM0sfJDx6xrzLjLZVjXZZXiWXYrn/Pfd8Gnr0NlH0YaW?= =?us-ascii?Q?mJleTDGZmUlF8yTZ5gl5sWD/4mDZPpjpW2ZJrQS5ltxyT3eVY4KSPI0A2XhX?= =?us-ascii?Q?nq2r7oDV25tDdgdeF+zwxV5zM2wuEpV9pEhUVTVa1jSabG6/2VQwfdLuQNGm?= =?us-ascii?Q?FwGZEho6hZre5c2YP64Xy6k0CaOfY/7Hmw6v1rC2qYJ3zz3e9hKu7cMhGm+X?= =?us-ascii?Q?0CVHcgCr+z+GeXa1RBMdSiLH7OTjdBg9xKQsypYPiJWIFrH5dZNWkgiAyqHG?= =?us-ascii?Q?+m2I4QxrFLEHiZzzUzsyPE+uy3RE1JH0kDaKzy8tCSIYeQ4IDt9zxjJcxPiO?= =?us-ascii?Q?8EqM7Hi2yZ67zHOUrOcP5Ity7NF/FFSt2yItxLvdyRytP8OIQSOsgPmmpq13?= =?us-ascii?Q?Qoe95rKfcHaYTHyAP+uXA2sY/vA8tJYWWcnG1DsfccTJdzTdCjLV3Um803Y/?= =?us-ascii?Q?FI9t6tt3p9KJL31b5fhd8OV3BI7e6O8JxNyINk0Bx125miYd/i5yUcw8wFct?= =?us-ascii?Q?ngpL/M6AV+0Ynu+nitE5rMBYvjs02LScZq3GG3YkaEYPQpcRx/70xeBei5xq?= =?us-ascii?Q?DSuPfpSw6WOJHONhQK2W+vE1zoS3+IDtywOFOH+IHR4yZZ7qqXFVUvm4oQ0i?= =?us-ascii?Q?UZtIbm2/BY9q4OMdfrIoC604gLmR7kHH9xry1Tv5blIUoi9gmtvyBVYiaKdf?= =?us-ascii?Q?tu/o1DUA5UhJr2REk7+bJZ/80GQSSyJmBhVPhK7ehUPRcyQnuKRayG5nO7FQ?= =?us-ascii?Q?qQ7f8krPs4ELu51MoThAx4691Oq2IOZ3cKMycnvW9oANrJ1mCNKHJtrU+24E?= =?us-ascii?Q?lffCN3TprqlKdCGtf+/VHTfSWrR4QSj3oq+5Hv0D2FtF8xEKsPyIf4Ndr7wG?= =?us-ascii?Q?KZcCawJd4xORW4lP6okZW68NBPGtwb4BababhmoG?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: c5SVP4S2q6JOIpxfSStRILTOdaDmbXf6Pqbd6UU1XKSyR/hWrKKKktAcIzlO/FaKQSc6mLnrGTDkGIlt7neSPmoe9xzz9k94dCj9m8K95AHyEz1ePez/QXlNWRFA5PJTIldiW9KUhVfDkMWI89bmn+4+AthJntPhxodvDU4NqYibQS5ta9U/3a7YLZ+zHL/Po1bnRFs8UbqfDknTrkTW0LRZgKipITjoFB3GOPIGPCZ/uxGk77CyMq8SSbk1eJcyoc9bMeqj/qGiL3vLjg38NxYeNyfdVhEfTD2z33WwKpRSajw9K9DxoMpWhLv8mgwlawpczqywBY3vgx16lKb9Dijuj8XpdmAK2RR6/ju1IQ5lkGc76ZuMSTLWdPblWlpcz7xXyYy0kamzkhUPAlKUD8Oo68nyjUQAf2U/VkVqmpUFQCGRFThP0r4pVGhdIpwHMgNBaFTTOYOdaWLGtW6BKY93OkNq0q2GehQlcVcTr9cUcmCKfu2cE9GFJi3gthxkHdJieydAljk1fxrKUSnRdaWBYkfKzlIPWIewuraAJJVvZb0mR84OtleoNhdi3cUur1ENpglsvt2ir8lU+63hAi1XLeaA6oWPQXK1v3+RUCk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 36296a7f-ac08-4850-d64a-08dc954aaed5 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:11:57.4211 (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: DSliW50W3k0XYfzLXr28pMJ3Th/3QMgf3FrlmPXSOnqfhCvMZT8IBs4WvkvClr6i1lUWqv4wzdD9WQh//w7aOg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4707 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-ORIG-GUID: wwxhG0xOyhSs-M8cgL1YVo9GwSdW2cxm X-Proofpoint-GUID: wwxhG0xOyhSs-M8cgL1YVo9GwSdW2cxm Content-Type: text/plain; charset="utf-8" Extract clean up of failed munmap() operations from do_vmi_align_munmap(). This simplifies later patches in the series. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 28a46d9ddde0..d572e1ff8255 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2586,6 +2586,25 @@ struct vm_area_struct *vma_merge_extend(struct vma_i= terator *vmi, vma->vm_userfaultfd_ctx, anon_vma_name(vma)); } =20 +/* + * abort_munmap_vmas - Undo any munmap work and free resources + * + * Reattach detached vmas, free up maple tree used to track the vmas. + */ +static inline void abort_munmap_vmas(struct ma_state *mas_detach) +{ + struct vm_area_struct *vma; + int limit; + + limit =3D mas_detach->index; + mas_set(mas_detach, 0); + /* Re-attach any detached VMAs */ + mas_for_each(mas_detach, vma, limit) + vma_mark_detached(vma, false); + + __mt_destroy(mas_detach->tree); +} + /* * do_vmi_align_munmap() - munmap the aligned region from @start to @end. * @vmi: The vma iterator @@ -2740,11 +2759,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, userfaultfd_error: munmap_gather_failed: end_split_failed: - mas_set(&mas_detach, 0); - mas_for_each(&mas_detach, next, end) - vma_mark_detached(next, false); - - __mt_destroy(&mt_detach); + abort_munmap_vmas(&mas_detach); start_split_failed: map_count_exceeded: validate_mm(mm); --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E0B6017C7C8 for ; Tue, 25 Jun 2024 19:12:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342738; cv=fail; b=sdqcPRuHKtIFVxDwWHkm0hxuZzwKJEle9C50DUKVZV9EFlRrxlAqFMY7uV4QgY0ikQ5zGdznZJfphAFm4DIz0MTTaVjIlX2ynfSz1IBQmzHrmwtVtSJQ0NS/g4+hjGNENChJN5UQ8mqcyc/F793orSKXV4aE1SVbic4JgzmFtJA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342738; c=relaxed/simple; bh=7oU6qNd5I1YrI+pnQ6kplIj9Locb9846FE8DwKSEQC0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lqDPniISI6yAFI7doLUdydP77bICFMedA2svA7/JdmzrjkArdcVe5LjzHK+iIJQ1/VxBfWx5h7EvrI5WcLNenPwIPV5v3Nuj7crQShd2yn/BahRDV94ZMaqRGyipuDPpLUei/GF9kLHThhKVHCRmF24uRGGgljU/grpe1aIqbaU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=kJ8GdHJb; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=b4xN6jRV; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="kJ8GdHJb"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="b4xN6jRV" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45PIfXCx007445; Tue, 25 Jun 2024 19:12:02 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=60kAsYjdha+bVEANDM89tZg/qOvXIAnhtflm3wfsjyU=; b= kJ8GdHJbigNqgTczOPTBabgG/RBfqbUkPAXJs4BJMM7J6xLgTvlOwz63kBItV87O 9c9tNCcNtQy8mqVuqhvED6b5DlOVJY+HXp+BzVTT7U2eeu5rcB5MCirxPTWo2RGn p6sX7L3UmzQDtFfvULPr6RfLB9NuTS8fs5EpPTxRbjIpbXCDt3g/568hoV9RnKQD NqylEjw1AqmBZjuZ3h3xpEpGE5oNh0cnvrpMcs3PTCpmJaJb7zoC+VjmIHkylrtg vVMwVIGZldloeOggQHZwgf3uz4RPNJvnArEcT6V1rXL3XYpV/svowpSsiWIkTo1H 7ErUK5YjAPXSWgSWzBljag== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywn1d1dmw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:02 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PIrYKr010721; Tue, 25 Jun 2024 19:12:01 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn2egtb2-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RA6RXlGaG+L8D043UXRcY0rbikkAyfMePKGiGR68GKqdVXW16VhzfVymwJj9lx45Bn39EIAN+dd6FcHGW5CIZvTDlsR90ViFTdfkN0F1vOkX8jjJYfz1pVnRa5Gkm7SdPmkMuToAmazS+lvCm5WNI7mPp+oIfVGANQwQ7wmgSQOGoWstb+h+XZym704F+EAcA0zW8PqHc+5cj1s0ZBGdu3aqfoJPpznes0ObQrk/ieZeJDbP/loaUeOH9iTMCGNHMa47l6h2vEMQpXyeN/Uh8pqyHncgAeoiwNl6bnjIn6d3znLnqBilx5tcj8jcD4sqcfKVw+uxu/Vfa4vJE3hBMw== 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=60kAsYjdha+bVEANDM89tZg/qOvXIAnhtflm3wfsjyU=; b=WwUQ8fqekeflwapJ492t4mAUuc/yIjol5vWExKiQyLQsLBSHyvY6SP5OcHXCJShzKEhF8g3ywuoX5Iv2cruj9kOQkzC/dMevl3FceLT77Kjg0ufP9HEZSBoGMnPTLqsJXAASFWArMx3d0LivgVHOu8mUu2dxLijUPBYjyzIi2p8+3l+YhzIrGkCWyhgqbgmq5hoWbT6Fz60krd07vMdpprlc/uVN9/iyyqidZnXU/jxiA3IMubAGnEzdJ1Gw0LkOx7yv3XAmSraLg2V5kAk7PL7wFgfYZsnlncWKC5SWnKJFmlNe8Q813pR9aFWmYF4IQciJezKz3afwOVXjYJ0aAA== 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=60kAsYjdha+bVEANDM89tZg/qOvXIAnhtflm3wfsjyU=; b=b4xN6jRVK/EUQbw4pSUeypT65S9VjQSTEpw1StCMPTgckV56UYnFDDvkP6SORjHOiMNWwI5rQvu9VsfhI5fxX5KbUuJXOEpfGWxn6ccl4I3XF6/64pI1CTWiKF0GamP2tsNj/0DNYP+INpWYgdCIF1YlTuzOHz1nU1w/WbbsAyw= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CO1PR10MB4707.namprd10.prod.outlook.com (2603:10b6:303:92::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 19:11:59 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:11:59 +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" Subject: [PATCH v2 03/15] mm/mmap: Introduce vmi_complete_munmap_vmas() Date: Tue, 25 Jun 2024 15:11:33 -0400 Message-ID: <20240625191145.3382793-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1P288CA0018.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01::31) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CO1PR10MB4707:EE_ X-MS-Office365-Filtering-Correlation-Id: 86905b5d-8152-41c6-6d0a-08dc954ab01b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xpCY7NHADJYTBlJoX9Bm/GXt+xiCEK2G8mdUjoGG1rvPPgpA8uv9BEtuidHb?= =?us-ascii?Q?5w5DUBrz2jQkc/0PiLZQP5GFlubg+Grdh7l9QxO+ph5H7XZrxxvIT/U6WDxg?= =?us-ascii?Q?uhbsbli09pecmlCZyZQnWHsiSQw4Szx8fbgCfUvRwHC4PGAtqLo2cdcPcRjN?= =?us-ascii?Q?fqmNjnaYkNPk4e/FddkspYqE55n2Q0mrp9GHgwKzLhbarthe/2xHZSZblPSg?= =?us-ascii?Q?KQ4OH+xEjzt7i7ebNW6ucJBSHYahTxuvSkBQhW6wYmR5wtyJ2Vwb5qXL4zP9?= =?us-ascii?Q?rNVcLrKIbDiATFTPayaj2QBUYjJzSYkXgLYaMTEN6Ow6k2Q5WDqkPfynvyoh?= =?us-ascii?Q?Av0hD7k93OXxM9l19xQmeXT8L5E5zd8mcfWt8gvuxOo7MZvHsOuzZWhE4f7v?= =?us-ascii?Q?XSY8viVBkoCF3TBGR8mjIQvZy2rBOzmBvsXpPe7B063U2XRWPfpxZXEN+SI4?= =?us-ascii?Q?B3S5NOs8y7JziN/xoaSL9JGfJOL7tXtGIoD/yObbGJzPcRvE/3N9S0lXYxJM?= =?us-ascii?Q?CiwamT2Dxvl/3lUCaVMvFvRbcL9d6PwM/e9oHhQ5bVLzQf7Tq1pqzCGHewVQ?= =?us-ascii?Q?uDIKRSeFSlbxqeuVC+kbIUkPCvaqs2OVmY1ZcKejfhRK531+b0YnLJnQ6lfx?= =?us-ascii?Q?+s2mWpqlyKZjhb82M88R2rcTLitwXKwB4nxLRcb/0DF8pqnoAw3RxPK+zLQ3?= =?us-ascii?Q?lqn9D28x7pjWRFkPDbrPIwnyjKKI1SrwGJ+1WHepLQmk5jh1lF9/lvQIyDYJ?= =?us-ascii?Q?Cie4DT2gn5Ntqka9iogxurwr3O4Gbm9KKOJZ5hY7N8iJlbw5cUQJxJGaMQry?= =?us-ascii?Q?ND7HnE8aXGSB+dL8E853HFsoUyz8EbGRu/srUARObNuZPO4gGfijJGoLrFUl?= =?us-ascii?Q?aOVeK+CXDfgNO1z0+skg9lkowvX3WlqhqOGT0Ya8xDYxMrgNDvCdqlFvMmfQ?= =?us-ascii?Q?zIAM/Nw8TOKD7o5DGdP2QNIR6JmYf8/xV7/U6NfGUOyfzwXYu+Li2PatkDgl?= =?us-ascii?Q?MJ1mITbs81NGz42fS9QlvzY/QZ9bteCgsXwXJU9hvQBgLZxuW8uu+aLiqLN0?= =?us-ascii?Q?5p39Wb2otOgUKksWJApJ63G+X2RzIjjksPJMqNBXpYIQVntPZnvN95L0wu17?= =?us-ascii?Q?JohQEYm/20f7XuDgFHlfZ3L13zQCNGW8WgoooIOMEMR1zUv0H9KTQwxCzm0c?= =?us-ascii?Q?w8HRXCR7C41rGedh7xSIuhc9ehfXml/26mo6/icLashS0MQ6dcUGNQ1VU79K?= =?us-ascii?Q?fj19tmoiZwpUQ4g4lik3vn6mp5HvCBpB1dPM0i/7iDhLBQ+4oqXkLqocTOj1?= =?us-ascii?Q?Eajl6/1uR8ZD0wYDLYzBWpio?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Fhn6ygJHsZEFH+Cqh2uyPSzNsw7mHNyh2hcjjxB3LSx8/1wFNOdVorItwg1Q?= =?us-ascii?Q?dcS/PeUxx8RX336oTjd7GwYHvEbE4Q7FAPhWo3GKw7wrqEx+NWkDjGvi08rU?= =?us-ascii?Q?DIE0OEqFIZjyxEniHtREILLjUgaB5WsaFlxcXgxFdcLFv3UMRwwSKqiOPQtF?= =?us-ascii?Q?ptD5FDnnLO4x9EgPDCNMg6yhosnJyPr4wDgKd/osMRRWw9qI29VMTqghtO/E?= =?us-ascii?Q?SYwd9cYvkrJjP6g573fdLi0ijDeqKscLha7dXjY1uZYNcJ/rApOijUcEqVP5?= =?us-ascii?Q?MBmqKMTywRntRL4XAvwDyFM+n+jR+dHH9NOcCT9OSCsCtS1r+RnXJbjDJH/U?= =?us-ascii?Q?N7i1lWy627vyzqLQ54PSRh9RTxhi4kMTVde5ykZgdMssHssOt4Ha5Nxbuj5H?= =?us-ascii?Q?8rckUD0t/fNrGW4+T1aMFGyTPjgLSPztL72vOWHVfmBp9H4Gai8vSKcdEyFi?= =?us-ascii?Q?2FBLlTiFfTbiE0HQvITKJIGQI8AHTkot/drbtfT3jWdLsHk8t80rVXo7+NI/?= =?us-ascii?Q?ZvE4GXTrBqU58DjaEsOENcbuBQJJcymtDbdHE7TzpS8ifD0gHQRl0KTPg8EY?= =?us-ascii?Q?wq4T4QED5uL2yijFdKMJRSF0zjbrEP9saPW4sneHkgtisaC8XNf39OHQgKoN?= =?us-ascii?Q?ChH/bcP+dcVDKsa1ei9Pyl1VQAlL/85mHRzHrdNhZSmVdqMcx9aBlXpIuVzJ?= =?us-ascii?Q?Bj53mz1/hJlnTJ/qeyg9U/mxKKt/cRliV+mBtESo5DsSoXLVhryCEM5j8uZz?= =?us-ascii?Q?eHmLZqlgQkER5RNCvwATncsKYrkojfCkast5MRN+ta3jtSwWFXYL88FsgkX+?= =?us-ascii?Q?nhC7X25e58Iz7jx8mu03F16TKeLVt4vGX3QuMJ8cwa5O2rjIboJNZOKxlSje?= =?us-ascii?Q?7vLhIds8PK+dmYzwXEnM4a0VF7qVxk0U5OnSAsOCVIWmdorXVShqp8Kqoa3N?= =?us-ascii?Q?zbEJJzaqgN28LdMlD1f+/yYFnRmJxfqL2QV9mubUZGp0JJYTzdwhpqYI2hja?= =?us-ascii?Q?pcGu8RO5pxWSFernE2+p/IyKbz2RUXXNcfFDh5UV2fOCRe2jldRWbISlzNBy?= =?us-ascii?Q?1da8NXqYCd0zuKZJz6kBkNIUhaptImbNaTE6u9PdhGmVsOvs49JxdKkWAc1G?= =?us-ascii?Q?qv3sW9g+nmTc+zb86HIwXf6B3uKi0ISDac2E7ZhN17io2QqNslKMVtntZCDT?= =?us-ascii?Q?alVVJV2tvxePP6HJ8xM3NQWY4HjYRCKbzaCwV/lZa4N1xy5nzE1kCYsGtkIf?= =?us-ascii?Q?gLd+/iGQmajK7gRdXw4NsFSRNt9G0cJM2MqGFSP90zkYyS7e3FkwuYrp/quk?= =?us-ascii?Q?+DVhqvsDYDcbAYTRCDIjXt8JFI2q7nkZf2WYAd+XuF/h2ZYdXF3J8R4hNu0A?= =?us-ascii?Q?XGknn05j4zarRmugKfDuO4bWyB03lovGpRlbPxcw73Al2pmBnJU31g/kgBDP?= =?us-ascii?Q?Fqef3P+kXVhFOb2+v12KpD2yOKhtIgfg8DOuOZ4FuHTSUcj2Ga4DIStWcsTv?= =?us-ascii?Q?E+VRGwX+G0njCo4lchi/cWqI90yqdG02bGX+I4ndlS9VvBMeCay7j8iOqRKV?= =?us-ascii?Q?Ao24r6L0+AT23tbrVZqLZZESjxGgVAgqp9ZcJW9A70HF9A7yknthypA4UtYm?= =?us-ascii?Q?Bw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: BPYnE8m6tUwjBVWAaR410wjY1u+2ugLK6L9zS5egkp0akeQRYurMBL69qdKh4A4ORtQf717oNCoch5EqONA7d78AdrudbzQaCwHxC6mZn0PBvbEg/GJ/iLDSFF6Hn779nnZQ9I2bvB8ihnC3BmVq3PlyziuYLUHvtJ7U/MXbRVd6THT03X3aMbF8KKewYA9eAC38nNufBDkNLLZe2B23EahLF/eb2zF9dEwUuabGQgNdd+R0dqVe7tbtdTestbNC5nSCNPN0HKga+AWNStsSpodTNKJlDu36cSXWjcheCiK7+MDb4KIILQaOOY8FO9rrbvs0IodOrnK/VYyd2QBtdrX7zU0G/0DCmq0fVtD/BTyuXaS+4hEznO8wcMxCXLPAot4AC+g6IW23QFmnqAKe6VUlABYNIA1RcRccsYFNSLXl+vmnNK2vNvXLI21Z83hlCi1US2+lCaHCaMJu4IrPjOLBbWhp6Cn8AmIxiQaSdkEV8J6KXwrijrZhJjTHa7gEdKQaAkFca7zFGAcL2Ysk/ApgHrbhr6iaqYI/m+aTcyTrnfijYrba8yY/jbVi3ju/gnaubJjLEhZ6m4nkQoh+IWbu5qyNA+OEmRDgYt3lpBs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 86905b5d-8152-41c6-6d0a-08dc954ab01b X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:11:59.5390 (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: 130V9HAdtTt385QZ6VBJGgMoVnZaGshn0tzzwAcGEXG6fVZeu6iPwZV34nfYuFt3v0xlJb5SOJbLmjeJcikgLQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4707 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: vDB4gi-6sXuHqLqtcoE5JwYBXbZ3o3HZ X-Proofpoint-ORIG-GUID: vDB4gi-6sXuHqLqtcoE5JwYBXbZ3o3HZ Content-Type: text/plain; charset="utf-8" Extract all necessary operations that need to be completed after the vma maple tree is updated from a munmap() operation. Extracting this makes the later patch in the series easier to understand. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 79 +++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 26 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index d572e1ff8255..411798f46932 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2605,6 +2605,56 @@ static inline void abort_munmap_vmas(struct ma_state= *mas_detach) __mt_destroy(mas_detach->tree); } =20 +/* + * vmi_complete_munmap_vmas() - Finish the munmap() operation + * @vmi: The vma iterator + * @start: The start address + * @end: The end address + * @unlock: Unlock the mm or not + * @mas_detach: them maple state of the detached vma maple tree + * @locked_vm: The locked_vm count in the detached vmas + * + * This function updates the mm_struct, unmaps the region, frees the resou= rces + * used for the munmap() and may downgrade the lock - if requested. Every= thing + * needed to be done once the vma maple tree is updated. + */ +static void +vmi_complete_munmap_vmas(struct vma_iterator *vmi, struct vm_area_struct *= vma, + struct mm_struct *mm, unsigned long start, + unsigned long end, bool unlock, struct ma_state *mas_detach, + unsigned long locked_vm) +{ + struct vm_area_struct *prev, *next; + int count; + + count =3D mas_detach->index + 1; + mm->map_count -=3D count; + mm->locked_vm -=3D locked_vm; + if (unlock) + mmap_write_downgrade(mm); + + prev =3D vma_iter_prev_range(vmi); + next =3D vma_next(vmi); + if (next) + vma_iter_prev_range(vmi); + + /* + * We can free page tables without write-locking mmap_lock because VMAs + * were isolated before we downgraded mmap_lock. + */ + mas_set(mas_detach, 1); + unmap_region(mm, mas_detach, vma, prev, next, start, end, count, + !unlock); + /* Statistics and freeing VMAs */ + mas_set(mas_detach, 0); + remove_mt(mm, mas_detach); + validate_mm(mm); + if (unlock) + mmap_read_unlock(mm); + + __mt_destroy(mas_detach->tree); +} + /* * do_vmi_align_munmap() - munmap the aligned region from @start to @end. * @vmi: The vma iterator @@ -2624,7 +2674,7 @@ 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 vm_area_struct *prev, *next =3D NULL; + struct vm_area_struct *next =3D NULL; struct maple_tree mt_detach; int count =3D 0; int error =3D -ENOMEM; @@ -2728,31 +2778,8 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, goto clear_tree_failed; =20 /* Point of no return */ - mm->locked_vm -=3D locked_vm; - mm->map_count -=3D count; - if (unlock) - mmap_write_downgrade(mm); - - prev =3D vma_iter_prev_range(vmi); - next =3D vma_next(vmi); - if (next) - vma_iter_prev_range(vmi); - - /* - * We can free page tables without write-locking mmap_lock because VMAs - * were isolated before we downgraded mmap_lock. - */ - mas_set(&mas_detach, 1); - unmap_region(mm, &mas_detach, vma, prev, next, start, end, count, - !unlock); - /* Statistics and freeing VMAs */ - mas_set(&mas_detach, 0); - remove_mt(mm, &mas_detach); - validate_mm(mm); - if (unlock) - mmap_read_unlock(mm); - - __mt_destroy(&mt_detach); + vmi_complete_munmap_vmas(vmi, vma, mm, start, end, unlock, &mas_detach, + locked_vm); return 0; =20 clear_tree_failed: --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 98AFC17C9E3 for ; Tue, 25 Jun 2024 19:12:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342740; cv=fail; b=lGAepWM2R7ALzsKlEgT2dAP640/btdPvxe6Y8k/j5dDLKkbYyYjMIa7GRTyxItV0U/ckhFZp5Sy6gnGOGJUQB38yTY5mpXJP/eu4OZKw399gd0mNDAoD9LzlDticJ4mxaqhPrJR2f/ciiws9PDqfhQ4WdsgOnjCdP6NwMZxxI5g= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342740; c=relaxed/simple; bh=yLsCZojYpceWxBcHPMJfRXfVPYQ+yXjS5NbS8G6N0SY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lyW+gjiSz+HWPXHJ6pzAtUq/XnSnEU9qHpjF+PsEfN9RkllbhnY4efAVA6IlDsGAkFYa3J3egjSAdYIS59HhS1Nuk1buQSw6gRaI2IrduKZm3BTL7clyqe+btx6fWrkN0quarVjzaIzE5nbdNr/EAv2L3H/OMhrxBplpniMZ9DU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=oxJisfns; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=lnXd51M/; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="oxJisfns"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="lnXd51M/" 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 45PIfYWZ009059; Tue, 25 Jun 2024 19:12:05 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=CR5r5SlcrI9HaSM6OStIkTOvAIfiXnGdaLZK//vb76c=; b= oxJisfnshsrnegtJUyWxs0XdwrjdjgGlg3+NpANGu2lo4VRqCknZ1EhWGZUZFTxS qDcMd3GRud5uejPKvgYB3Utmn7/oqlszzudC+9QWg7Xb+mLgMJSvWTwwUiVpHgjt Kh8+1FtMMgfW3Pbg2y4KwVkw4Sa0kGQS/vf/XV2/ISF9JkB5zHu+pCV/i/WiQrvp 8i9uqz1NI4tQMmf7Fv65vhE7QggH1sC394TmDn7+n13axdIX1hI/ciTNttbDuaPN oYSrGdJjTEJJq3HiMQKJtelJNScTGGuN+Dy3DFh12ZsVTg7q9Fe1POIGFN/Y2M6g 7VEHjS32CRVPXvjNE3FxIg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywnhb1jqk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:05 +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 45PIIVKD023395; Tue, 25 Jun 2024 19:12:04 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn2ehg26-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LDsOvpLLHsTKZMOjc9q2IjPRbG0VeK7/soCSFSnpWcL4gx41Bu7T7U9BXWr+hxaPiSdNOdZ2sCjRvEwqaGxxJoH/IkRoPMKsVf8jAQ2MVEfWIClSno23uffvr5LQfoVF62Uc15HaL64FXDEYKfZLCq15VyFFQy6gkVPCgmeuxcbynPUXtzAlP3XXNdasGPbAgTpjeFWAodK9j1Sjmipa4OgCPKyekp1OC2texHYblpf7kyidUGDEyD1vtM3L3rwrU6FW5GdswIXXNdcJoY4QpxZjTxwoQm8/Zbw9FILJFoVM8RBk+/wEtwO3BjBbxrCIatGa4fOUHJDYOPXteGoUXQ== 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=CR5r5SlcrI9HaSM6OStIkTOvAIfiXnGdaLZK//vb76c=; b=lWDT3LLq1phJLLLOle9+ozr7YSJgY+xjuEFn5sVYa0dCaP0TPVYQzPnol/HZcWZjb4i6Bco32zb8N3YdCaPipgkw6HhEa9R62/kvUi9hT6ge680RKZDO2CUGsmPLTIg2OOgHQwcfTNes+sJaREizDToYcOyGPMrHfaEc8idBQxTQXKnCPHme8NXRFKSbu6ypq0sBg23O0suVTNhnW1DCUVFBZ096jSa1ssk69cRLOzKEgHDQ9odpxWvGPAUIijNnUVtjgkBzDBCYWtVpLx9kkt2VUykG9eYdkTI8K902PgkJaQBIGxMoYwUph+82eBHvtDDN6hUd1Kv+xNN9hzOo/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=CR5r5SlcrI9HaSM6OStIkTOvAIfiXnGdaLZK//vb76c=; b=lnXd51M/eh/MXJoXCVHntLspWlYdO+VLCMkVQCv+1Uvx5t6m3mhbZdsfFRJNjHEfgHZfSJkPCHCb2ebhI+DL8U2Hp2eRMKeE7z6B+4s87O2hUW4j7CR4mRRbYvPCxG6FAciisDRHcX1IXcG8c96UrDp8Erit47OxfcvWnkj3/lY= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CO1PR10MB4707.namprd10.prod.outlook.com (2603:10b6:303:92::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 19:12:01 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:01 +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" Subject: [PATCH v2 04/15] mm/mmap: Extract the gathering of vmas from do_vmi_align_munmap() Date: Tue, 25 Jun 2024 15:11:34 -0400 Message-ID: <20240625191145.3382793-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0212.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ad::10) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CO1PR10MB4707:EE_ X-MS-Office365-Filtering-Correlation-Id: 329da883-a507-4f62-9da4-08dc954ab126 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?R7Ic4VwgaDcjJgACyc+WI1l1n9oHC4aVmKcWrh5kD2CGSw4A836U11M4zoL+?= =?us-ascii?Q?lHv5Qexo6OkPySS8ztcJNnI8at7EH5wobZMNUl5oILT9U8AuRh+cUbCvPe4N?= =?us-ascii?Q?6n+4wx7IVobwtIJUs7xhIUSf2HdSBuqv+9k17BnOvGKEX33QYWcO2uOMeaDe?= =?us-ascii?Q?vdk0E94fm05PdjeqvfpT1IvcU4/j7Z8QmtLhHxrDnV4F+yUwcPlV56F7pW+R?= =?us-ascii?Q?uwNKvacz1cjBGZy0wB0cwQpD+3Zpu2PyMQZUOrLfalFxgxl3/i/qgeyzWmCe?= =?us-ascii?Q?KRTPZp1wxPnyYn0EEtNiDcLkYzSa/fvJMae0zEy2+53X0gS4AluAegMafVu7?= =?us-ascii?Q?y38CLPVxLklZp4J847SWRQDXn/LHW/nYT+a51EwALMcbq42tXr6XkX6b6G4z?= =?us-ascii?Q?JIM31GrAoM5gtJki8Ik3cGUi9H8JN9wdd7tpe5HnUEW01ekiy66NGTcjcUTM?= =?us-ascii?Q?WjD1YeuvTImZEVA5l81L0+2txVYBHKCc5gpwGhwyT9jKGoOEEjVnZstKSdl9?= =?us-ascii?Q?4Slj96+Na5WnxWG5S9vepzgMY05o9HWkIpj64ZRvRk2YCx00MCmFduZxjOEr?= =?us-ascii?Q?47e2RaQK/MrQCXT7TsQVsjrqO9cs+d78bQTmF+Sxs1UEVYhHpDHVlCbOnUR7?= =?us-ascii?Q?QcmM+on6djKl2gp1mUsyahNoSKyn/f3wKXSaj1ifODuTd9bgPWTRBNJRi/J2?= =?us-ascii?Q?7uKjfI5ghakugzMMBuYJ8peWhPfMmeE2/AVmYTJXhvjFhqwKoBdVaEz3WKuq?= =?us-ascii?Q?w83+S1m6SUzm6fxk/0lowvGVBlCmJN5MMi5PTfQ70DS7aF+k5xmL+1NxkiA8?= =?us-ascii?Q?IOtOd6THl3vo6KSeGtQ0QJw4DGtOupttlHVrRT6yLNzM7HiNXX9P28gTBnZ9?= =?us-ascii?Q?qN2PBurFaNu6U4mJG+JkJcnX/Nj8rGYjkshUM6HImD9sLqoe00TSpUu+LpLE?= =?us-ascii?Q?KfZrc4BZGS1by8Hv+GxQHwUG/UGqIJdIIqJj5J+0NatK/hb9UjaLZ+mSvOZy?= =?us-ascii?Q?0V+LrdqwGnVWWZuv5uXdnFJv0V4AR/A1cUpMR/Kjr7Ka3R2aV3izodwLJ9IM?= =?us-ascii?Q?YUm6lwVsvkjCAfSsXtczHND5wG9GSV6AzT+/lECFdUUxt1I0Bl487FK/x4Qk?= =?us-ascii?Q?FnEbFWRebOUfeD5GCvKrlPuvefBvfRAgUbGK47AKV13MOSfi/+ubqRpbInG0?= =?us-ascii?Q?X49CY3XzpBtunlHeb5/4n/PkVnBpA1WN6vaAq1EkSqU99lssx4gaCG48gZNG?= =?us-ascii?Q?zvUqxUfICw5MNOdyA5L/dMhd5DjQNCtEE3I07WfNS32oWoMluxUYlEcgzMIl?= =?us-ascii?Q?yKy/O2DyiG+arQ0BPkQclenw?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Xnzkf56g8fUz3XvQU2ICBzyAay/0Yf0HahOvAtMRKUpbkOgxnSbsrmmxAQfj?= =?us-ascii?Q?IMf4ntFp0+0SQBkzStzBTR5PxX1O2TXm6CLlJLKhyomFvLxgLfjaxABuc0DU?= =?us-ascii?Q?MgkAFaTn2kZP4PMVOJkQPqfbil0TUD555LUJ9CA6WbdK19quFnCA9ss+5QCq?= =?us-ascii?Q?4wZ9lwl0SDmVhQwhezDxeLZrSK9DhnskUUTp2fRn8LIu73TJQsvTuK7Odtp/?= =?us-ascii?Q?4UOwlxE8SmkpQtCJOpqIwfG5QP6dQnRP1EZnxktkwolQSGwRUjNATw6Hxf2G?= =?us-ascii?Q?irtmFkwEgHxA1pAhHcZfX4dflFiwNt6VX222Sh7EmBxUqMf6YLLYu6dZmt5m?= =?us-ascii?Q?FcxsD7KFk6rfqPhPHjrSyF1KTu6mtUeaQfLeL0Ev3zUKEkkiA1bfW8LY1WYc?= =?us-ascii?Q?06YGdDu1SOAWA7+ifthsk5bpzQbpwTVIcjLWPQey5oqMVvKEUX3fD1+Fw1HL?= =?us-ascii?Q?/W+BBiogMRji3jkvht86UutNKmmojpp2UsZffxM5kXewemAuu42HSErkR0wm?= =?us-ascii?Q?L4UJYSPkmkQLlfbhG9Nr3dthhxxbKwfP1EW9j4/U4NxudYbKHCmHuW9vEioP?= =?us-ascii?Q?Zsnb+iFdbQWc2TzITaaIalqt9pHB051ZCKoYbrgjzOI0wgQo/pbofHaYQKzA?= =?us-ascii?Q?L2njzeY/RugucMma9WhZrMdnsnRkxe8vdneQHW5rJSvGD4rb8jU9L5c+oD2F?= =?us-ascii?Q?5Td45O4pGH4fGZSflFqjbVOA70IBjmz5FG80r+xZWFCNIv2uudFiPo8AbRF9?= =?us-ascii?Q?1bLKxczwHQOrxj5vDa6OtqtKCSB9JV0lIb+uPPekbgMgkZoZa6ufOse4rYys?= =?us-ascii?Q?1jfEWOh37v4jAUQfvAN0eJIIPCESiZ/R+FFjsSJl+FZlcl/jqciWD9ymsfHZ?= =?us-ascii?Q?gbckuC0w9iNxvbHTDb1Fqkzdu+mVBQ58Djn6xYzAk0eaZ4364ey2UrcONvVc?= =?us-ascii?Q?sCoGXxikLZep/9vA5rBkqjOHEDu0nK989MaPM9ruDYtNvayxWHaOGGm/cL5d?= =?us-ascii?Q?So/0yIWDNzfIGQqL6rLjTT6ZxwQBn9dt13D3wPQ6R5wQv3GHYfaMZt/0O0GP?= =?us-ascii?Q?5epz5ahrS+jAHVwZh7/hY1xDDiomy/077ZNnhCH4UDWi8dOeJR7bAqJQt3nV?= =?us-ascii?Q?U4HNakYr8gVJDUbgTxih+OEP2hXXaA0H6zYEvKV0UiG31XSz/+sVWWmGyNEU?= =?us-ascii?Q?pet2nOsvtrr0H0FYgT+8p3p59no0P7CSrY2iqU2aKSU7AL90QcetwCPmaZOT?= =?us-ascii?Q?0UMN2XMsu3iDa22SGcD9p3Ml17ACdncJJidpqLdFdj/ywaaCfEwc50bYDqc9?= =?us-ascii?Q?dOj6gOQzMhYEVig3YbwUllMYUS1Ss9b9rLjvdTwivsanch2B+LhipQNGRqo6?= =?us-ascii?Q?1bu662AohVR5IUV0LT2BY4FkrU9awq+ed1GUMuD8QfpJEM3+T6zSfOmBfUCt?= =?us-ascii?Q?w8SF5TUuci92OkpQw5r21uqkSLq27Q7G9vSutavZxTv6g3OOZmoS96ZnFrYy?= =?us-ascii?Q?8OzCfUlfVYQ5miV52m+5hK1llFSRRwWiTtJYDfV+rCwPwd5XslcuXg+t/g2P?= =?us-ascii?Q?TSZXXtzYqy0OWyai10m+dCOcBqcvCGiW+8YA0bZUk/Jw0wAQuAj5MnE0vk0u?= =?us-ascii?Q?Jg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: D5Qh9wSrY7meNL9YVbgcJlBlSy2JVAhzEWCvCWi1smerMjYQGZJyDEKDPyCtEO0qiWQMiBsBX5JDbB+2vkN/pDA6N8QMgFd8snNAoxXWdhIJXheyorqUTKuaKiMP+VXZaeG0WLhmhpzOp8cStiPIwmla4k11UhpOJCP//asnLTrhl3poP8kDN8t2hiH/DE5wiqdWiXHkl2k6SxU3oWf0zmYLzLDqhgVccRixPHExOFZQvpzmZ7h2uxnh6Y2l+hQkioDuwb+MlZ48JoduGf04fg0GfcYqD8U462hTmTDAdyuMen5Nn6dT+jXCiswI8EKNBhArcL/FnAXcDYyUisQL8Czyttnvg6sRMvLZu4XdugNa29adgeYrO+hqDz5zuUN9OB7MzmOq/DNdQWwpONJorXc6Y0EtcTdzY3O7Fw7/UuIOnTso8nPxQorvZH69+bMRwJTmmVGUmjQUEymtWMib+abG0B0CvRIHZHtXxTwxZxXaZGK40YPz+RZIdNANy0jVHJ5nT5TzutBQ7XZG7+WQ4xQKtZWW4FX4jy7T/9ec1rtdhAvUDts+hYy915J1wv10Uqfyzi1Pqqkq9TW7+W/vGwJleRymFZSs8IEZ+3d99rM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 329da883-a507-4f62-9da4-08dc954ab126 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:01.2995 (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: lCs99qoXMWRBnTqXzMdFqzDe8RSDgEBKAmyKRSHAM7kUdwzWWEqML3kEgqCiTrHhZYtFktvjWQ0YXpo+M6IdtA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4707 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 suspectscore=0 phishscore=0 adultscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: p4198vMT2zga54XI8MWqHsd1_Ikof5No X-Proofpoint-ORIG-GUID: p4198vMT2zga54XI8MWqHsd1_Ikof5No Content-Type: text/plain; charset="utf-8" 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 --- mm/mmap.c | 82 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 24 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 411798f46932..8dc8ffbf9d8d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2656,32 +2656,29 @@ vmi_complete_munmap_vmas(struct vma_iterator *vmi, = struct vm_area_struct *vma, } =20 /* - * 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 neces= sary + * 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 * - * Return: 0 on success and drops the lock if so directed, error and leave= s 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 *vm= a, 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 =3D NULL; - struct maple_tree mt_detach; int count =3D 0; int error =3D -ENOMEM; - unsigned long locked_vm =3D 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); =20 /* * If we need to split any vma, do it now to save pain later. @@ -2720,15 +2717,14 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struc= t vm_area_struct *vma, goto end_split_failed; } vma_start_write(next); - mas_set(&mas_detach, count); - error =3D mas_store_gfp(&mas_detach, next, GFP_KERNEL); + mas_set(mas_detach, count++); + if (next->vm_flags & VM_LOCKED) + *locked_vm +=3D vma_pages(next); + + error =3D 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 +=3D vma_pages(next); - - count++; if (unlikely(uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas @@ -2753,7 +2749,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 =3D 0; =20 @@ -2773,6 +2769,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); =20 + 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 leave= s 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 =3D 0; + + error =3D vmi_gather_munmap_vmas(vmi, vma, mm, start, end, uf, + &mas_detach, &locked_vm); + if (error) + goto gather_failed; + error =3D vma_iter_clear_gfp(vmi, start, end, GFP_KERNEL); if (error) goto clear_tree_failed; @@ -2783,12 +2821,8 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, return 0; =20 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; } --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8560D17CA04 for ; Tue, 25 Jun 2024 19:12:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342744; cv=fail; b=SqRkpmVFPtvIoG/SkswV1vbV4RQRGzZbWJEx5mxGfUCLh3tJ4ZBJaNO8YV50S6HAllvM3vfgGKHH0KG5V23BfOz85lS0m7VjkORlkS0lxPzKhRdkchgGOXkdUHp7PsrC8xop0AVFvKGkz+x6lfBDJ6fLCSHgKdWSCBWPkldWoqQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342744; c=relaxed/simple; bh=TJe26+4xmfs4cm5MU20Ixh4qXojLenLsmPLjcjqSsvc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=dKwlIhCyFp4pvipIZZHo/ooslJyStzpEwDYl/zCz5jEpSdo5isLnSkYdoPo/Dg9sEj7iTTk0EOZDJXs/Dmf/cCsOLhD76C5f0KQ3XjZ8LXhS7VaZpn+ENh0hQ0wBjv8DDyAfeKMJfP8mlsDFibPKsk3CK2kiZhKcgnFqNiT9Pw4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=YJSJDqwa; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=iTzP7DrI; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="YJSJDqwa"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="iTzP7DrI" 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 45PIfXbc021444; Tue, 25 Jun 2024 19:12:06 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=eRq7JyP2yI0dRhju0RZTyqnMYJTiuiqUZEZuPD6xbEU=; b= YJSJDqwa+5+TCTgJLUTj1Cmhk487/LTNbONa1JlKMIMDaCFE44zc5Lnm1qKO2IWC XOVbMsSaikQphCg8JzQU0Fdp9vTeg3e5s1qzlYIsrs1jykXmkO+Vw2jlMCNsZ8Ir CKHebnIuIRx626oEWIBUq7ZInMrVFYsPPgd/cZK9F0Ab+C7LLqO8E3SUs8moEd46 rJTCD1/FP/LOl8ejY+DKmvKfngVtllvzcUvAW3iGWlxmdEKTQNrFeANB4yVi8qWA AB4sGzSK1c94XoKtVAEqJtKxBfOZsRaFV+H3DpX8jhv0g3+KTpIFEqjGzCpXKp00 xIHa77oyD9PEqMBqMBmUKw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywpg99av7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:06 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PJ61Pg001320; Tue, 25 Jun 2024 19:12:05 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn28rc1p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hP0ZL3/ObjUXmGeDUnkGuYQ1Bwr2M8u7KPeK9pq7TEdp/umAx8WX/AK9wDXBeHs0Mj0G13wAoLr8knbw6XA4YUYwrZuhTfrijKfxQLE/4hrsbMAz7MOYWIvwgrt94vNPVI8TPD89Jz2OsGMLfzPCjLYcD6TcvAG9Xm9Efj5eEBd8G2N36C0Bj0z52GlPCt6ZkfFSV9ZZdx13iYJAcb+wLGfQ2r9pQo2SsYYbg7yzknBnRS3Us5qBVOtaQQjCC5OiVYGrZyASQR+OkYCkAnhxc2x6Z6/M9EVYzsNR6Qk38R6DZHbNyGgBaF2C8fuhVVccQsgPp7NvYjzp+ew/gmWtAw== 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=eRq7JyP2yI0dRhju0RZTyqnMYJTiuiqUZEZuPD6xbEU=; b=dO0UZPAPzVxJnJnl67ADAevLpXHdcihxMLJi5nxiUTRu1jADcTyvSObIN84W9nrT4suxkQXwgBk8eOKSdmxmtLjB7AQ0L/I3Jv8wv1s8mTf6wHGO+j88J6BMBHTihdQT3Izy2cdr1AfOZhaYdQLK2p+fYFUmk34HtRfSs1LbpHB2k8+4UoUyrTTV4z7zPu1eRuOdg0llEHrm+0TbvkXbM/7wQP1FgOHRyCdm+UCnBMu4Fr1cFpfup1mxS80owwJiDAaUWEUkOE3ETUod5CnL0Srca8VB6C7ZneHIqC7jFsqAEcOE+DkfDZsRSnF6l8ICuYdfiG+3WQ/71WuBoy+YQQ== 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=eRq7JyP2yI0dRhju0RZTyqnMYJTiuiqUZEZuPD6xbEU=; b=iTzP7DrIQJRMi8hAjDlw5rh6mBTIga11RPGKm8SlndsSLO2SYDVkxbCFLT6e8Zhon1hNouiIdV7GHxuBz5wh1KNNUvsMbf9C2lGPu4rMnHLbII+kIYmIWGOWnK72bbfxdxR+cP1cONi1WcLTGPfFZ6fwNkt/8mvBJg6QcbKadr4= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CO1PR10MB4707.namprd10.prod.outlook.com (2603:10b6:303:92::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 19:12:03 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:03 +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" Subject: [PATCH v2 05/15] mm/mmap: Introduce vma_munmap_struct for use in munmap operations Date: Tue, 25 Jun 2024 15:11:35 -0400 Message-ID: <20240625191145.3382793-6-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0336.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10a::20) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CO1PR10MB4707:EE_ X-MS-Office365-Filtering-Correlation-Id: 616d0428-3c02-45ff-68f4-08dc954ab243 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?dJVQWsEQITQzEELYI/Lqtd6uZ7xSl0rd1D16K3J3dB8TPx5+4KMgn5VlRcZz?= =?us-ascii?Q?zIiFixI6M41BBapCA409VCgUHg0D9VgaQsb9tBCzktAz9/SFVLYql0LjWL1s?= =?us-ascii?Q?TYwPhCag+wW3JJ4JWoQZ7qTLe6w/Fg7pJBCBPV09dWqQnYKrso4izCoLeEh+?= =?us-ascii?Q?Q6LK6TUCRvPlklBwzU/ZFW3CDZoc85qqvgNMNel0LW1B7OvsIzF4bgUUTAJJ?= =?us-ascii?Q?7ed8zWpXUuQ+NeRZm6LOYtS/8bvXayvZp0xuBEn3ZMlVQo8IiZu3V+c/HxGy?= =?us-ascii?Q?uUxvEI6Y3Ae+Pm8/ceHSXoVDK7dnwONcaY8FRF593L32A2ndcUxrTTTENih2?= =?us-ascii?Q?uv6ycOSMLGOxsco8iayCkeVzQMQr1fx03ht7qrFeoGKmxwrJTu3GV4KJVN3O?= =?us-ascii?Q?ngtDQr40IklrqXHc4w962b5raK18ab0fKI6G9Rz7JKqen/C6ncO8Dtg19b9K?= =?us-ascii?Q?bUUrKKrhrilbvb+u1wRxklRgUFI5Ulzy/5a1e9iagUQgi5W7ZoESzc/zGXSx?= =?us-ascii?Q?UhdAGo1cotlwwB/VgDf/aIOldx12fM1vTiN57Uv1W4RQS8nzmA42L8MSSZMY?= =?us-ascii?Q?CRJRC9NlnFz3X28BovMItRxFPFomO19ZXUegaPZJZvyG+E/CwUHHiAtQsr0V?= =?us-ascii?Q?yuQWw639fINs/4WOOKpGQL9fqDNmQMb4dpzyZ7pqt3Hnldn4cMeClVSKnaGy?= =?us-ascii?Q?gJRg51z0hH/J4u4HcsPzc3hJLBhbOoHDirVNZb2s3KSWJ19j4RJAHRk0kCHf?= =?us-ascii?Q?APMS6zeQX24GbFYwor6I4mpxyRyZXY8VgUQl0f8AXGdzotV5WnBJjiPBmd4K?= =?us-ascii?Q?CTlS+W7XYJVRaeAGzRDE1v2n2qmkwuKxgNUYLpAHyPUn7yNZUAHjMC9mOyBZ?= =?us-ascii?Q?3G500dm4XSQGczzV9M3SqU3jD7ylPWlCVbOzxoXTGu4fiEAqxiuCWEapLOqf?= =?us-ascii?Q?fd4j0jiSNuInm2z7KdgFy8XsVLsxiogqyFvnjnvNtShX/PfdpdcwD9akEVmo?= =?us-ascii?Q?pbJSR043Q0oD3OiyyqTU8PQBN9Hv6tiZ+RraY2ISbI9AmewYJuyL8n8nTnjf?= =?us-ascii?Q?UGg9z0nmQhdHs8QvMk4qC4/lgUqAS1ehBhj3719WM3NB/GA0B6OAw6RtgtML?= =?us-ascii?Q?Xr+CXbNWztWD5BEEOnKf97LllGOj7nuEoigZjWK5J0l9u4n/R/K3JLiMuwHU?= =?us-ascii?Q?KvMQ4oAPBF2IaswDYycn50yg/1zYTB4OkgKvt9jkDq/2mNhnQ6XSEmzwEnQm?= =?us-ascii?Q?oeCAl/Ux6omUFKW1NWwherMFo7xd8oOVghrIhbDgJIcrzAGqC4IHOIcsPx/c?= =?us-ascii?Q?VunWrcD6xQYZKKZjgf67wID1?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4iH4xbZ85kdg1iwLgjX3ofdl2cud47vV1BtGuU8H91bHoDBySPhc003PsFQo?= =?us-ascii?Q?PMHsYoCIswIAnHfPEIHmzM7BJDYNc80Ubsn6YBOvCX8GU9j21za7yBXzwb9t?= =?us-ascii?Q?qXNc3rfz5kkx9/VnrobUDTsOVpTYJBsAKOTTSIedwQncZQLk1hfL3QToWacm?= =?us-ascii?Q?XzYNh+tt0C71jPMRrUQFBEsinDrFRK3tEXPxbOfd+slWat2CKkD8jN8RYFK+?= =?us-ascii?Q?OPHyNvlGjkXgxPS9+gSIYw8YSJFYYGSHER6gcx5YTozokZAsANUbb4eQrTqa?= =?us-ascii?Q?L6b0BvNE/iociVu5PnAPMIhNlb27xd8ggOdOKn3g8dJ0cS1/UBfJqs1moO4t?= =?us-ascii?Q?3uoDXJmOJStNugjm+7ix2VzS61xSVsivWJzD9X1sq989ZhaRIeotdV03stRb?= =?us-ascii?Q?DAzxhlBjCSChYjOvpXc4lC/TAPZKPl4ay6rpjo+OGG6R311Uhd8qQlxryAfr?= =?us-ascii?Q?FxxC7cxPgczI5wlc0fZwBJAyUygB7yWQlWCBFDKOGWtW/Us17ko5i6Nvn3UK?= =?us-ascii?Q?Z85gr7YlAJUlcgSBiFXLcKgOzQ7u1aXOQNcQZYB3WiawRQe1LsLAyefR9QEk?= =?us-ascii?Q?CdiFJkmrs45mPb1N3xL3LI+0uLn29NhT/6qB74TDKi0uGRXsKmAXwvRZ3L9D?= =?us-ascii?Q?LB9wkSk7OT0xI9JMcOXGKBmQZzBjsKwCLcOKOoPMeU6W8Hon5T1tA/JSLqGt?= =?us-ascii?Q?royobGLwHkLGOqBXrx4aKjfE+KvGvKwRJH+8sSc8ad5ed7KFdD+AMfY8PD0V?= =?us-ascii?Q?62sZ1c4M0fsMxcIAWkl0z07iGXJXATldnapyWJe2l+6I13zJUzIhN/9LEQSD?= =?us-ascii?Q?39z0LjoxkgXkQpQX2jGmn4aEr71LaQhFsm8g0ou2wSB/0WdBoUBTNwLtA/xZ?= =?us-ascii?Q?olQ7elRzt6KsnyG/LX+NhoUpKx6+8L9lwyRv5vUx/c0d6XIlM0126ku3YxvT?= =?us-ascii?Q?/KvhWUgRcmTVygHS/5vgstab42eLH0g1LmQ7TcezjdML0qO1uIPpLTnetI9O?= =?us-ascii?Q?ICGjp9Dm9ulafXRRRRINqJdHm0xDLM897jWPpRWdY2sgt+Mt4xNTyIFUZaGX?= =?us-ascii?Q?/2kv6uGmmwNR0gKIZowEftsHFOtz/Ph6jh9q2dh2YAUMC7QcvyflDH2pwtl+?= =?us-ascii?Q?m9imscY5Jmr3BEhdEt59hyp+ubiwInYyYYVOyczzLveUmDfd0XMKB9L7F6zU?= =?us-ascii?Q?PYGMxbxMZLb20ZPk5QUUwWCKDW/i6NT6VXQdfdmhwZIbjC5BBm/H2l4RNkdj?= =?us-ascii?Q?FiSfJa1RKMjzgfFSUS4kcD4D6N6IzQ/kgquFxUUu3p8KdN+cV4JYjdz5KI+A?= =?us-ascii?Q?uRP5bbb2eVUoo1oPPzDDt5P0xRABNS47vkQclW7ygOzZFsAFOFCdOeTRl2Cq?= =?us-ascii?Q?nwyM07c/pxhYJ4cZlJ/NNDftdaKUHfA7zTwtld9MwnoXKu7QTHs3pA0WkfKX?= =?us-ascii?Q?YjL4MaV0bsJm1JSW9lQwQQ4KVE7gNNhAYXkRUSxP8Ul3/6ekj9HmZGBulh88?= =?us-ascii?Q?cOFDEzrVSlTRNux1HUH00Kv5Lg0pbO7WOdxbDrGB54bGyxoWiJDQM/jqnonm?= =?us-ascii?Q?XU7DnOgv+GER5nSpCCISdB1uZVK8ISM3fILjQTN9wbZoyvJOuiN2NKMxUFA0?= =?us-ascii?Q?Ng=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: I9SYR3yqE+calzTRTJV668B0ecycMvIpv4Q1oera6UB8rj40oGY5KUh1Yv+9LfcHiMC6DOEeOzqB7sH5OYF9fHJ8toT/AlOsc3ckBpQsRE8qyieov8keUjwyUOak+Aj54qBRKS5vbzr/pPswc+7tG8ofan6dHaFBNFYQaFlariqlkkkfYV88PuhZP5hOrFDQ5iDyHLDYHH9irVcyj4SmtMgnrZlecj44RCiIO9kixdXBlv+xBc3KKiu2va/7ywgjnHnEE12AhKeofgn4Fo9LKU38lz2ATF5FkI1vxQR5Qx6Yhlf4n9GylsWhQ9tkehLbCcNEEcY61sx5UgnjQiLnWSBiSSkgNFO5gkosGNx9P+SFICxEVHApQcLgG2SNU1q1yf3evgiXkaalgWTEO4IUB6dSyokribX3Jsv4OD2foBDsvOhBQhrLaoENaUTCtpuKO9ooMOTQRYs4Y9fM3wI7gqRSdg8b9MbXHtbPSwEiZ8d4HqJZlcKjNzCRYh0E1MHzje58IpIFZb8DIG6HktB148Snj/eRlRbDJ1PkzFNiFExF2dvFp2oXG73rITsX71u0VETkeQ7l66EnT/TuOJsMjOzU5UAfr5DWobAMHus59r0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 616d0428-3c02-45ff-68f4-08dc954ab243 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:03.1579 (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: dWBI0C7mDayE8dbiRcb7HgoxgKXXc2IW4jU6FzbvBoreAfyP8lXKI+HIbNoU/FvwaB1VS97gumpp5qZa4RM0FQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4707 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-ORIG-GUID: Qq3Bz_KxF5J0wx83meMA9FSCHhvtb3JH X-Proofpoint-GUID: Qq3Bz_KxF5J0wx83meMA9FSCHhvtb3JH Content-Type: text/plain; charset="utf-8" Use a structure to pass along all the necessary information and counters involved in removing vmas from the mm_struct. Update vmi_ function names to vms_ to indicate the first argument type change. Signed-off-by: Liam R. Howlett Reviewed-by: Suren Baghdasaryan --- mm/internal.h | 16 ++++++ mm/mmap.c | 137 ++++++++++++++++++++++++++------------------------ 2 files changed, 88 insertions(+), 65 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index b5e8484059c9..22563c959861 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1480,6 +1480,22 @@ struct vma_prepare { struct vm_area_struct *remove2; }; =20 +/* + * vma munmap operation + */ +struct vma_munmap_struct { + struct vma_iterator *vmi; + struct mm_struct *mm; + struct vm_area_struct *vma; /* The first vma to munmap */ + struct list_head *uf; /* Userfaultfd list_head */ + unsigned long start; /* Aligned start addr */ + unsigned long end; /* Aligned end addr */ + int vma_count; /* Number of vmas that will be removed */ + unsigned long nr_pages; /* Number of pages being removed */ + unsigned long locked_vm; /* Number of locked pages */ + bool unlock; /* Unlock after the munmap */ +}; + void __meminit __init_single_page(struct page *page, unsigned long pfn, unsigned long zone, int nid); =20 diff --git a/mm/mmap.c b/mm/mmap.c index 8dc8ffbf9d8d..76e93146ee9d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -500,6 +500,31 @@ static inline void init_vma_prep(struct vma_prepare *v= p, init_multi_vma_prep(vp, vma, NULL, NULL, NULL); } =20 +/* + * init_vma_munmap() - Initializer wrapper for vma_munmap_struct + * @vms: The vma munmap struct + * @vmi: The vma iterator + * @vma: The first vm_area_struct to munmap + * @start: The aligned start address to munmap + * @end: The aligned end address to munmap + * @uf: The userfaultfd list_head + * @unlock: Unlock after the operation. Only unlocked on success + */ +static inline void init_vma_munmap(struct vma_munmap_struct *vms, + struct vma_iterator *vmi, struct vm_area_struct *vma, + unsigned long start, unsigned long end, struct list_head *uf, + bool unlock) +{ + vms->vmi =3D vmi; + vms->vma =3D vma; + vms->mm =3D vma->vm_mm; + vms->start =3D start; + vms->end =3D end; + vms->unlock =3D unlock; + vms->uf =3D uf; + vms->vma_count =3D 0; + vms->nr_pages =3D vms->locked_vm =3D 0; +} =20 /* * vma_prepare() - Helper function for handling locking VMAs prior to alte= ring @@ -2606,78 +2631,59 @@ static inline void abort_munmap_vmas(struct ma_stat= e *mas_detach) } =20 /* - * vmi_complete_munmap_vmas() - Finish the munmap() operation - * @vmi: The vma iterator - * @start: The start address - * @end: The end address - * @unlock: Unlock the mm or not - * @mas_detach: them maple state of the detached vma maple tree - * @locked_vm: The locked_vm count in the detached vmas - * - * This function updates the mm_struct, unmaps the region, frees the resou= rces - * used for the munmap() and may downgrade the lock - if requested. Every= thing - * needed to be done once the vma maple tree is updated. + * vms_complete_munmap_vmas() - Finish the munmap() operation + * @vms: The vma munmap struct + * @mas_detach: The maple state of the detached vmas */ -static void -vmi_complete_munmap_vmas(struct vma_iterator *vmi, struct vm_area_struct *= vma, - struct mm_struct *mm, unsigned long start, - unsigned long end, bool unlock, struct ma_state *mas_detach, - unsigned long locked_vm) + +static void vms_complete_munmap_vmas(struct vma_munmap_struct *vms, + struct ma_state *mas_detach) { struct vm_area_struct *prev, *next; - int count; + struct mm_struct *mm; =20 - count =3D mas_detach->index + 1; - mm->map_count -=3D count; - mm->locked_vm -=3D locked_vm; - if (unlock) + mm =3D vms->mm; + mm->map_count -=3D vms->vma_count; + mm->locked_vm -=3D vms->locked_vm; + if (vms->unlock) mmap_write_downgrade(mm); =20 - prev =3D vma_iter_prev_range(vmi); - next =3D vma_next(vmi); + prev =3D vma_iter_prev_range(vms->vmi); + next =3D vma_next(vms->vmi); if (next) - vma_iter_prev_range(vmi); + vma_iter_prev_range(vms->vmi); =20 /* * We can free page tables without write-locking mmap_lock because VMAs * were isolated before we downgraded mmap_lock. */ mas_set(mas_detach, 1); - unmap_region(mm, mas_detach, vma, prev, next, start, end, count, - !unlock); + unmap_region(mm, mas_detach, vms->vma, prev, next, vms->start, vms->end, + vms->vma_count, !vms->unlock); /* Statistics and freeing VMAs */ mas_set(mas_detach, 0); remove_mt(mm, mas_detach); validate_mm(mm); - if (unlock) + if (vms->unlock) mmap_read_unlock(mm); =20 __mt_destroy(mas_detach->tree); } =20 /* - * vmi_gather_munmap_vmas() - Put all VMAs within a range into a maple tree + * vms_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 neces= sary * 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 + * @vms: The vma munmap struct * @mas_detach: The maple state tracking the detached tree * * Return: 0 on success */ -static int -vmi_gather_munmap_vmas(struct vma_iterator *vmi, struct vm_area_struct *vm= a, - struct mm_struct *mm, unsigned long start, - unsigned long end, struct list_head *uf, - struct ma_state *mas_detach, unsigned long *locked_vm) +static int vms_gather_munmap_vmas(struct vma_munmap_struct *vms, + struct ma_state *mas_detach) { struct vm_area_struct *next =3D NULL; - int count =3D 0; int error =3D -ENOMEM; =20 /* @@ -2689,17 +2695,18 @@ vmi_gather_munmap_vmas(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, */ =20 /* Does it split the first one? */ - if (start > vma->vm_start) { + if (vms->start > vms->vma->vm_start) { =20 /* * Make sure that map_count on return from munmap() will * not exceed its limit; but let map_count go just above * its limit temporarily, to help free resources as expected. */ - if (end < vma->vm_end && mm->map_count >=3D sysctl_max_map_count) + if (vms->end < vms->vma->vm_end && + vms->mm->map_count >=3D sysctl_max_map_count) goto map_count_exceeded; =20 - error =3D __split_vma(vmi, vma, start, 1); + error =3D __split_vma(vms->vmi, vms->vma, vms->start, 1); if (error) goto start_split_failed; } @@ -2708,24 +2715,24 @@ vmi_gather_munmap_vmas(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, * Detach a range of VMAs from the mm. Using next as a temp variable as * it is always overwritten. */ - next =3D vma; + next =3D vms->vma; do { /* Does it split the end? */ - if (next->vm_end > end) { - error =3D __split_vma(vmi, next, end, 0); + if (next->vm_end > vms->end) { + error =3D __split_vma(vms->vmi, next, vms->end, 0); if (error) goto end_split_failed; } vma_start_write(next); - mas_set(mas_detach, count++); + mas_set(mas_detach, vms->vma_count++); if (next->vm_flags & VM_LOCKED) - *locked_vm +=3D vma_pages(next); + vms->locked_vm +=3D vma_pages(next); =20 error =3D mas_store_gfp(mas_detach, next, GFP_KERNEL); if (error) goto munmap_gather_failed; vma_mark_detached(next, true); - if (unlikely(uf)) { + if (unlikely(vms->uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas * will remain split, but userland will get a @@ -2735,16 +2742,17 @@ vmi_gather_munmap_vmas(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, * split, despite we could. This is unlikely enough * failure that it's not worth optimizing it for. */ - error =3D userfaultfd_unmap_prep(next, start, end, uf); + error =3D userfaultfd_unmap_prep(next, vms->start, + vms->end, vms->uf); =20 if (error) goto userfaultfd_error; } #ifdef CONFIG_DEBUG_VM_MAPLE_TREE - BUG_ON(next->vm_start < start); - BUG_ON(next->vm_start > end); + BUG_ON(next->vm_start < vms->start); + BUG_ON(next->vm_start > vms->end); #endif - } for_each_vma_range(*vmi, next, end); + } for_each_vma_range(*(vms->vmi), next, vms->end); =20 #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ @@ -2753,21 +2761,21 @@ vmi_gather_munmap_vmas(struct vma_iterator *vmi, st= ruct vm_area_struct *vma, struct vm_area_struct *vma_mas, *vma_test; int test_count =3D 0; =20 - vma_iter_set(vmi, start); + vma_iter_set(vms->vmi, vms->start); rcu_read_lock(); - vma_test =3D mas_find(&test, count - 1); - for_each_vma_range(*vmi, vma_mas, end) { + vma_test =3D mas_find(&test, vms->vma_count - 1); + for_each_vma_range(*(vms->vmi), vma_mas, vms->end) { BUG_ON(vma_mas !=3D vma_test); test_count++; - vma_test =3D mas_next(&test, count - 1); + vma_test =3D mas_next(&test, vms->vma_count - 1); } rcu_read_unlock(); - BUG_ON(count !=3D test_count); + BUG_ON(vms->vma_count !=3D test_count); } #endif =20 - while (vma_iter_addr(vmi) > start) - vma_iter_prev_range(vmi); + while (vma_iter_addr(vms->vmi) > vms->start) + vma_iter_prev_range(vms->vmi); =20 return 0; =20 @@ -2803,11 +2811,11 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struc= t vm_area_struct *vma, 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); + struct vma_munmap_struct vms; int error; - unsigned long locked_vm =3D 0; =20 - error =3D vmi_gather_munmap_vmas(vmi, vma, mm, start, end, uf, - &mas_detach, &locked_vm); + init_vma_munmap(&vms, vmi, vma, start, end, uf, unlock); + error =3D vms_gather_munmap_vmas(&vms, &mas_detach); if (error) goto gather_failed; =20 @@ -2816,8 +2824,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, goto clear_tree_failed; =20 /* Point of no return */ - vmi_complete_munmap_vmas(vmi, vma, mm, start, end, unlock, &mas_detach, - locked_vm); + vms_complete_munmap_vmas(&vms, &mas_detach); return 0; =20 clear_tree_failed: --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0A6C417D89D for ; Tue, 25 Jun 2024 19:12:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342744; cv=fail; b=Uss0MyHA/jrBXSB4/BeL+GHjfLMDuKRZGG5JqAtRylEZ5mCHZ68Dr63LAM30NbGFphXCjz6Hvg/7l655F67LTsD7XuDVA80NCRsif2qjFitUcDn8rLoucTJYRe7gSMgvXwXZAfA9p1isMjSZ4sKvUh3dTLyfLbkAga+0GLNJTuA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342744; c=relaxed/simple; bh=O2N9XDkq9ec+KdLypboZoLmYUUXN14OPXgzHb56VW4g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Qf2bc8Yb3OAB+wuxelzW/nI99RnJ3yi3Uw24tcwKwDobrLQ/hoDwFGUnFOm0N+I69oN5e8KUV1lsN/kCh2rMGI5u9IAMUJcHwOHmWew7Lu9h9o97brwsPic/Ofxn5yUbBOrgmK2mI0qpnZOl2vLqHSr79a7l74gTmTKjOAywnpA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=mYltdP6s; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=JBPFvBVk; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="mYltdP6s"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="JBPFvBVk" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45PIfXD0007445; Tue, 25 Jun 2024 19:12:08 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=gvJyWlTu7KPZFMbPpZBAcwY6aEsrPPQT/0buDXuoink=; b= mYltdP6sihKm0kU73e8zYu8v2hoQijFs0KpbFLIsZ2SCH0eQsEr8t/6F2x1f5yo/ C8dWELvqcQTC/OCiFS0qDCA15LuA1WMiuw9bS2GdqIPWlz2i6Bk1H66ib89Emq9j OE6l4astbfqvr12nmkIQl/qdDalyvNj+fuDlCxrCr2HDt4wHaFFLemb/dVFyJa7e 1/YaIdUmCl7NRZbHOFZYFPrjPS8rI731YFQNlLUQXVtESMr455tDAPDVYWqno3FX gHbkfXcvDJJ9njLLX9DkFpyvSB18Kwva87IQkTBFYfuE99OE8OKBoXmUmEdTZfk6 Nmk4BgYeI5sf/XbnGjoKzA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywn1d1dn4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:08 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PIrYL0010721; Tue, 25 Jun 2024 19:12:07 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2040.outbound.protection.outlook.com [104.47.56.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn2egtm4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ccPHSULYHXBlZTHAar4Y3ajYBY7nZ7BW0WyYhuGC8RynIWpLLiIMszaSVDUhMr/KihpOnGgnT6kDWswSr8QxWhMsgQjwQfcA+EFUStYkoYzmu0HD8vM+gVcnaKKma3hyyeokG3HC+RT35P2/Hps0IVgOx0B6kLNK9zzLPvSajUFzPj4/ciMXeN8D9kCLM41dYM/tpq/KQuS4a1ZWhm+XyKKa3bbl8U9OZ6mp0zBRyFR31VqCrNy61Vnp2D5JbEw91UQsKBf6cMvQhdngMhvZkJ24rZJFF+zCQ5qsfBnLUaTl2djhndptvPIaDO8wJoz1qnKl7VXuDKeR70Kr8IVYsA== 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=gvJyWlTu7KPZFMbPpZBAcwY6aEsrPPQT/0buDXuoink=; b=NYrAFjDj3LmeLHWnq5ZyCJfl3DmcGq2DSOwFgzzwRTxyjltyMH3BiTnb07k7Udre1mGH8L7badhcBweK5/ug6Kok0wj9R/EMSQZOpFyD6j4WAziuPz25Fx6kwx5QxjR43XPBJGrk4DwWjZxmMa58+3Em3uZDCxVRZA2lg4u5VLWPSLeSxMDn93Nb1t2pIb5dZ8PjTpyFkyR1bQ7He3hP9jnZ30waSBqUShwCwjSFGRoB5MqcH6rMWBa9wsN0lOx47GOErH/HtkNH7h2arcZzWv5UNPpyI5WjaZvtKMp8bbO/iMWlSk6lg7Xgxs656lMiHZi0dDPfocv2kifO5aU83g== 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=gvJyWlTu7KPZFMbPpZBAcwY6aEsrPPQT/0buDXuoink=; b=JBPFvBVksAoHvYQM233xnmDKjTG7yMRbglugyMp0xK8eLIur6av7u2wJ+xNnmCP1xzHDZmHnRSJdRPtX2N4pOcvB5Ds263PRDelHazYQ5IISe+3g2uIfBFls2Pfwd4kImFSSgspAKeeLcdyKP0pepi9qCR3qtU5+U2ebNaaGIXQ= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CO1PR10MB4707.namprd10.prod.outlook.com (2603:10b6:303:92::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 19:12:05 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:05 +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" Subject: [PATCH v2 06/15] mm/mmap: Change munmap to use vma_munmap_struct() for accounting and surrounding vmas Date: Tue, 25 Jun 2024 15:11:36 -0400 Message-ID: <20240625191145.3382793-7-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0207.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ad::11) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CO1PR10MB4707:EE_ X-MS-Office365-Filtering-Correlation-Id: 101ed9f5-c31f-4fdc-7930-08dc954ab382 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LW2m8ctWuw18W+qKj1JicIB6pPqOAj4qagJQBSd+8d1x1Yx0P4mpTDqxu+uz?= =?us-ascii?Q?FOGK3p71Cd4rOxMraaFzmjkO2rWyeDSQ2TuK6gpwHH4sSD0g9DMtdhO6jScb?= =?us-ascii?Q?YDeLIVbVgjywcmhpGG5A42kCIAAdf1B17TTTl8STydwoz99q4IT7e7K+FFJt?= =?us-ascii?Q?KsxITWgeIw/ppMIsMMWGThKBeSZ6sWTBELFpNymbRLS7P+APvsk8xf3nI5Wt?= =?us-ascii?Q?a5LMfSuL2ytZkZ43c2VaXHbp5y4SmNgj0nHAr2BQozYutTrHfbZDJOXqP8Gk?= =?us-ascii?Q?ALIIDbCdI1ASB1d0fm5EQe4Rh10+Q+tTl1HRI6ZfuyMgkrDQYKjf0Gdu6nUW?= =?us-ascii?Q?M65Rh5apXaiG6wd6/jW8EIi2fW/9+HNGGwDB7mm4AWTAAmVJV9JIlY+678jK?= =?us-ascii?Q?GCuZCS+jPY+rqQiglnQKVGqcc+vB3zphEDFVZut28DYcngTm+M7zKGl1Qr8w?= =?us-ascii?Q?DHGTfO0AdAoeL2h6YRpaXZNGuRNAcdp78XruEWbFzhJKEn3EN9l7QEH5mJCc?= =?us-ascii?Q?FbpGrDQ+5cIc0vO5FjnVp1KC08nnUl0dlHGfR69WqgmpfXVjDB1y10xs5yS4?= =?us-ascii?Q?Ar0ztel8rjnEolqa9pIvPh3WMtLxm8btA37QNS4r0zpJlUfRmDIBmUYzw1Y+?= =?us-ascii?Q?cWVEvDg2a3m9oNNjc2jg4ApKsB1BplxOC2xTsH6+QSF/gkqwGFORIU4++pPo?= =?us-ascii?Q?ViyGwZ1rh22aSCbgJbUxcXDBKvQ7pfKutXhOb0uf+aX7Q779PMLapJP03ApM?= =?us-ascii?Q?hLguqYW7efoEZBjtIHSzatKRF+Y+umX3EN5Q1gf70TpaGS4V4sB5U3keu+NI?= =?us-ascii?Q?mnQ4i/1HM/gR+/aRxhq3gvbn/dxFtW1u4KIiOBw4y1yqJHUHY0JwjcDHImis?= =?us-ascii?Q?TvZBLqEsZ/ImaPW8ZNPY6vIkFwy4ZCWC1MmDYG0CeslF/WQr9qTq3nvMxAbx?= =?us-ascii?Q?KtDwG7BJoX4mLaNUMdl6O+e36SbaHsefpibqI46MahTqftnmBmnYhB8Dto8t?= =?us-ascii?Q?Q7uYhaym757LRRwXzoCoLcLoczLcV8hOvZjpLX8RjmbdSu2AZtBO6C/Ix/Yg?= =?us-ascii?Q?NHXplSzUxasTFCfOX9w8SXi3m6qonDDSf83E8YKBptBL9v763iMb1AJjKRib?= =?us-ascii?Q?gKGcVTDcs4aV08FjuoNJ+tNWk79H54aa/YX8Yk+nr1Ui3hEjvCLXTTzxjTT9?= =?us-ascii?Q?/4l7XX59gsciw6lilqbtLZpJEehrmMi9emsydxj+WkvgotoWEtCEuEqXL9v/?= =?us-ascii?Q?hMLYGtyKqDe5p65prmvEa1ss63cqSDETvXZJ3M4fXY0Q2m+7ZO6u02MmARG1?= =?us-ascii?Q?4Jm6gaKtRKQ29srL4rZX/X8J?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iaBnNptSocJCeOY66zc4HXGRN32ht8whBXJNcWTEUsxxz+kFUmbOnDHgGysq?= =?us-ascii?Q?OeXRKiaC3NG+AophcVSi8TRSoKMqz0si70v0E5akdZM8Y/qlP2pjjr1CwNOE?= =?us-ascii?Q?XnVzODYJb+SQypIj6wlVXdwI44OB325ZeRq6sTUQB0SI7BRAd35mXb0LjNHr?= =?us-ascii?Q?p00jAdqTounpFnuACeUyosnPS5Pc7QA1d5FULZJLdh0N9wMbRkzMARg3Tnn1?= =?us-ascii?Q?8zjPQ71Ls1IIKc2xRD99pxTU4Vps65lB3q8lwlgLLPuzYRZw84NpWFqhY8Qk?= =?us-ascii?Q?yaCnSPzJqRRU8sm6DvcZbKfUIHQlzXGgIKl9E5p3eU97At7tC127R8jNVW0e?= =?us-ascii?Q?ReEH6A0oYFgIdDpYQzHZBKny8ezB+Gc30opV82RX4VGK7dS/RvfGh/VG+jm7?= =?us-ascii?Q?Lezkndi4edGykmWY/TwYPi/hDBfohxb1+S1AfNSeES63MjIJyoeruuFpVPbN?= =?us-ascii?Q?DuiC7eoxtbrmovA1M6TAw/o/q3HEj4hT1YKIp7q/Mg9tQ++3XDuZS+JFudpp?= =?us-ascii?Q?PfdKimlr+OnQUCctWmr2xDdl+bKEpXVZRStgcDTIQvbUVCb4yFFGz2FN+zxZ?= =?us-ascii?Q?iMLzR8Xxqtu4DDwD2d6ImbrtmkRG+YhwuHkwKkOdSkvp6IpaJJAV+6Nxe6K8?= =?us-ascii?Q?5SulDS8pZcMd91YarxrhAJm7SM0h91n7m0OlxW4LPGTo2LIJ24SzUi37L5Sd?= =?us-ascii?Q?n2pCgFE4Dpc4LkYnDE5DT0lkW3TcHk1XiMSkxonckTLAbLTUi0Yo405D5LNk?= =?us-ascii?Q?Z9+YoDXNru/dEoWQwOKshNivDyqIYi78Esrb8Ko8VEKANKjRqvczLHOKl8Bc?= =?us-ascii?Q?PM/Pa/u5wCTlVXbmYAFI/S5escjDBSNgbLoZI0dPXf91b8F/K/f/xGPdp8RI?= =?us-ascii?Q?tZYzibnXOJeeevffF9fJfjXgYVq3vouX48tTpV3TMOyPjqxn6zkEVvSrjwj4?= =?us-ascii?Q?oU6cGrn6m42RfWox6AjTn41d43X+pPFd3UD5HF+njiklFW4bJ6oucdEHibOM?= =?us-ascii?Q?+BMVnPGiKT6TXYkAfL58iaJBIQl8PEgg0mTOKVent82IaQEjhajJm9lMupJy?= =?us-ascii?Q?VSGdGNeZTRwtScXHlvEqX+q3VAOkRgwkpcqNDPBIhzCLjyLOMegsy4c6pzL1?= =?us-ascii?Q?rHDndXTJZGVJC9VytWQs0saNZ6qmsGtw4EOMpSUp++HTg9NA4S3I+V2ZE6uV?= =?us-ascii?Q?SNeioLG2qQvECMoaHvsLkcPKffbC5qdDQXwFpPjb7jmwU2/2+Ua0Mft1DYcE?= =?us-ascii?Q?Jr4iqBFbAD0aRDwne8i0qLjesIU6B7fns1+r2nj3ZbD4KWv67Ts2KCTX0JaH?= =?us-ascii?Q?stQCgq7b2UMiBjejLrsfnrh6MSdBB0Ur2cDWseTTuEfpeU9ebVLb3hFapsNU?= =?us-ascii?Q?HWsd2SapSwLADCTeVyQNcF0PgTanH5guf5un25zZ7owoSTavgokfFenmarla?= =?us-ascii?Q?2gHmoaJvnaaPPpPss0BMS0izoQmoYiM4USuqlGnpBQ0IXDK/kDh/NR17E+xE?= =?us-ascii?Q?SKjVAi3Yp1tn1rGSkHMiF0hD54exVhuVkT+BZ2CFzbrOaC7jYH+nAOoRoG3Y?= =?us-ascii?Q?1qtAyzs2FO1tFmTYpFSF9gaCOVZZsidjbrlfCR4ljMubMz4Q71fNDhXuLIPO?= =?us-ascii?Q?8Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: uV0SG3V/vOKrgTzUDU6kUzoISlV5EKL5pYVxrVHu4Y973quMLq7kKJvWr1nHk886b+7oysAjxsIXHD2vQNWEhKz98L6ZQz5jZqtKnYFA9tiOcVYQr6JAqdmoADn+yxPhX3oaBC2QnTvJss5Sgtgh2hd5pWk+hdeqXCZ9j+GP2sMjMjbLr7qHtZH4iyJ3eKCAocqw/4+a3zUZJ2uNt/arm2LnhgwBohJaudE7oNYKd+QKSeq5luat1/al30j+KPUVN2HGbjwTmXvS/3PxPJhQh6YxwOdik314Kjr8zHveVTvHLPU3t4Zvjg5NubDxjfjDni+i5yawrryCSBGPukdcwUqDtvW+li5j6YbYKcaJ3htL1zp08vEonz/Nz3cbBg5m/EwvU+ZxRfjXeOBrBb8jOzZc88+7GqDE+TLZV832mGLL3SLQvJVMO82KeGvwwcewWgO80CMtsN8mCdBPoKQrKQDEEAr+zC41AopgRt5d9sFhOrXG0K1ocX11A5ZqhltbPYVXAy6QRjo38Qr882OiqumHIx56wBlD7T4eTUwqTZUpuBz0VNWe46rRyCSzwe+vycUcxrOK8ab9XoT20IBQPVyg8nqnahMJlGjG1mMWVis= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 101ed9f5-c31f-4fdc-7930-08dc954ab382 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:05.2540 (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: FJ+E3ALETmW8vgS14YB6/vNevLk7Ws1GFEu0DhrAZjf6cOwFmenIyPpMVsVgJdMnMC2yUpjCEEielOwWSd1uYA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4707 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: I8i7_gVCIzPEVzxY6BeDzbuukvjpCCyj X-Proofpoint-ORIG-GUID: I8i7_gVCIzPEVzxY6BeDzbuukvjpCCyj Content-Type: text/plain; charset="utf-8" Clean up the code by changing the munmap operation to use a structure for the accounting and munmap variables. Since remove_mt() is only called in one location and the contents will be reduce to almost nothing. The remains of the function can be added to vms_complete_munmap_vmas(). Signed-off-by: Liam R. Howlett --- mm/internal.h | 6 ++++ mm/mmap.c | 81 ++++++++++++++++++++++++++------------------------- 2 files changed, 47 insertions(+), 40 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 22563c959861..90cab15c3b81 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1487,12 +1487,18 @@ struct vma_munmap_struct { struct vma_iterator *vmi; struct mm_struct *mm; struct vm_area_struct *vma; /* The first vma to munmap */ + struct vm_area_struct *next; /* vma after the munmap area */ + struct vm_area_struct *prev; /* vma before the munmap area */ struct list_head *uf; /* Userfaultfd list_head */ unsigned long start; /* Aligned start addr */ unsigned long end; /* Aligned end addr */ int vma_count; /* Number of vmas that will be removed */ unsigned long nr_pages; /* Number of pages being removed */ unsigned long locked_vm; /* Number of locked pages */ + unsigned long nr_accounted; /* Number of VM_ACCOUNT pages */ + unsigned long exec_vm; + unsigned long stack_vm; + unsigned long data_vm; bool unlock; /* Unlock after the munmap */ }; =20 diff --git a/mm/mmap.c b/mm/mmap.c index 76e93146ee9d..2a1a49f98fa3 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -523,7 +523,8 @@ static inline void init_vma_munmap(struct vma_munmap_st= ruct *vms, vms->unlock =3D unlock; vms->uf =3D uf; vms->vma_count =3D 0; - vms->nr_pages =3D vms->locked_vm =3D 0; + vms->nr_pages =3D vms->locked_vm =3D vms->nr_accounted =3D 0; + vms->exec_vm =3D vms->stack_vm =3D vms->data_vm =3D 0; } =20 /* @@ -2388,30 +2389,6 @@ struct vm_area_struct *expand_stack(struct mm_struct= *mm, unsigned long addr) return vma; } =20 -/* - * Ok - we have the memory areas we should free on a maple tree so release= them, - * and do the vma updates. - * - * Called with the mm semaphore held. - */ -static inline void remove_mt(struct mm_struct *mm, struct ma_state *mas) -{ - unsigned long nr_accounted =3D 0; - struct vm_area_struct *vma; - - /* Update high watermark before we lower total_vm */ - update_hiwater_vm(mm); - mas_for_each(mas, vma, ULONG_MAX) { - long nrpages =3D vma_pages(vma); - - if (vma->vm_flags & VM_ACCOUNT) - nr_accounted +=3D nrpages; - vm_stat_account(mm, vma->vm_flags, -nrpages); - remove_vma(vma, false); - } - vm_unacct_memory(nr_accounted); -} - /* * Get rid of page table information in the indicated region. * @@ -2634,12 +2611,15 @@ static inline void abort_munmap_vmas(struct ma_stat= e *mas_detach) * vms_complete_munmap_vmas() - Finish the munmap() operation * @vms: The vma munmap struct * @mas_detach: The maple state of the detached vmas + * + * This function updates the mm_struct, unmaps the region, frees the resou= rces + * used for the munmap() and may downgrade the lock - if requested. Every= thing + * needed to be done once the vma maple tree is updated. */ - static void vms_complete_munmap_vmas(struct vma_munmap_struct *vms, struct ma_state *mas_detach) { - struct vm_area_struct *prev, *next; + struct vm_area_struct *vma; struct mm_struct *mm; =20 mm =3D vms->mm; @@ -2648,21 +2628,26 @@ static void vms_complete_munmap_vmas(struct vma_mun= map_struct *vms, if (vms->unlock) mmap_write_downgrade(mm); =20 - prev =3D vma_iter_prev_range(vms->vmi); - next =3D vma_next(vms->vmi); - if (next) - vma_iter_prev_range(vms->vmi); - /* * We can free page tables without write-locking mmap_lock because VMAs * were isolated before we downgraded mmap_lock. */ mas_set(mas_detach, 1); - unmap_region(mm, mas_detach, vms->vma, prev, next, vms->start, vms->end, - vms->vma_count, !vms->unlock); - /* Statistics and freeing VMAs */ + unmap_region(mm, mas_detach, vms->vma, vms->prev, vms->next, + vms->start, vms->end, vms->vma_count, !vms->unlock); + /* Update high watermark before we lower total_vm */ + update_hiwater_vm(mm); + /* Stat accounting */ + WRITE_ONCE(mm->total_vm, READ_ONCE(mm->total_vm) - vms->nr_pages); + mm->exec_vm -=3D vms->exec_vm; + mm->stack_vm -=3D vms->stack_vm; + mm->data_vm -=3D vms->data_vm; + /* Remove and clean up vmas */ mas_set(mas_detach, 0); - remove_mt(mm, mas_detach); + mas_for_each(mas_detach, vma, ULONG_MAX) + remove_vma(vma, false); + + vm_unacct_memory(vms->nr_accounted); validate_mm(mm); if (vms->unlock) mmap_read_unlock(mm); @@ -2710,13 +2695,14 @@ static int vms_gather_munmap_vmas(struct vma_munmap= _struct *vms, if (error) goto start_split_failed; } + vms->prev =3D vma_prev(vms->vmi); =20 /* * Detach a range of VMAs from the mm. Using next as a temp variable as * it is always overwritten. */ - next =3D vms->vma; - do { + for_each_vma_range(*(vms->vmi), next, vms->end) { + long nrpages; /* Does it split the end? */ if (next->vm_end > vms->end) { error =3D __split_vma(vms->vmi, next, vms->end, 0); @@ -2725,8 +2711,21 @@ static int vms_gather_munmap_vmas(struct vma_munmap_= struct *vms, } vma_start_write(next); mas_set(mas_detach, vms->vma_count++); + nrpages =3D vma_pages(next); + + vms->nr_pages +=3D nrpages; if (next->vm_flags & VM_LOCKED) - vms->locked_vm +=3D vma_pages(next); + vms->locked_vm +=3D nrpages; + + if (next->vm_flags & VM_ACCOUNT) + vms->nr_accounted +=3D nrpages; + + if (is_exec_mapping(next->vm_flags)) + vms->exec_vm +=3D nrpages; + else if (is_stack_mapping(next->vm_flags)) + vms->stack_vm +=3D nrpages; + else if (is_data_mapping(next->vm_flags)) + vms->data_vm +=3D nrpages; =20 error =3D mas_store_gfp(mas_detach, next, GFP_KERNEL); if (error) @@ -2752,7 +2751,9 @@ static int vms_gather_munmap_vmas(struct vma_munmap_s= truct *vms, BUG_ON(next->vm_start < vms->start); BUG_ON(next->vm_start > vms->end); #endif - } for_each_vma_range(*(vms->vmi), next, vms->end); + } + + vms->next =3D vma_next(vms->vmi); =20 #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E46117D8BC for ; Tue, 25 Jun 2024 19:12:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342746; cv=fail; b=bmQ7d4aOIo9ood9g5nJ7HWz+JMaxqYLqa9WYq7Aq5tM521OyQmjNvrOu9v501ZjovA2Gm2J+5O/dhM2Ni+UqCWzRxiuSEQeBJcByADhpCsGdxz2ovAqYPhf3i3gKqyXfhJslA0MpsYF+TSR5GEy7WN+f9l/k4uPyc4OVKBnQz7M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342746; c=relaxed/simple; bh=V4UvehlRwyVNFgxa/229XxVg9A19bIPLeQ/Fygw8sas=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=tMqGJTCPBfjcdj8DRKQx1KJVZXc/TqdnTEMOfYYZW3nLRJn8CLQSWl+KC5VUOunHy9JS1hjzpHKssDEdtOdtq3YzBGbl4fkYdTnuM8s8XQEAfemhFo18LsjhIsoGeXqbIKN7zKwjAMM80wId3ZTTf9ddxTtdMWhMtt2r1VVSktI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=UBxLI7bU; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=j3bwJdP0; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="UBxLI7bU"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="j3bwJdP0" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45PIfTnH012802; Tue, 25 Jun 2024 19:12:10 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=piltnTByFrtmgy9GlOmuLW0JbDdTYktoJ0ISndNfSNw=; b= UBxLI7bUcEAsyFW+Jq9cNnNP3aYY8IwswQYwtJQWKwkJPpzXMow/Vyryx1w82vse 4ujW4T4nOxUYBAgH7/svRtmGm7j95y4iIVfrytMP2paj0PPzGYpC3BcPjnVKjnwR 8HyrjaS+u4HJoc9dQ+3272vqY6Nk85cthRbmyUnHSu2/zhPj2MRTLMA5Xuf6XK6E j/F6pCfxuuxLObVRm/An1Muapy8JgsZ2gwjS0PfslQQC733DpGgu3FcY2cdpze+0 siynMztvwb0Zv4QAQtqKrfB5PJiPJkD74YfgXM+7yor7p94U2GrTHimvDh+8ksf1 WPf+U1VY0Atd4prv3qsjWg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywpnc9ub4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:09 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PHonQi022616; Tue, 25 Jun 2024 19:12:09 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2041.outbound.protection.outlook.com [104.47.56.41]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3yxys4xa89-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KBviEvCxPsvuXHyws+sQvPeLWcv9udH8BcQihPhQ8wanYkMjoy6UjV8pnSvc0okpcYdpgsdBosPwdOljCx7YZD6Pm3AzBn0HbdXWFEFZc4sVdys6U0KyLEonESOkSpovJSr1EZhsvjm5AVTNJve1kNhziMm5nfal0h+dAhA+NqSK8q909iGLX0BhsDRag48Bnc7J9Yeo7V+grlTLn48UK+P1HfrKKQ9QTkntQ4vBuS0BsuEPlVJawmWb3hCx/CczZcwfVMrAwG2qXTk4F2MFtplAzrVWEEbzhPhzVISl+P1jRccH8GztN2Rj/q8y7lXZPm7xp/eBhAbeEXXMkcXzfg== 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=piltnTByFrtmgy9GlOmuLW0JbDdTYktoJ0ISndNfSNw=; b=QxXzlQ/gI4uOlCMfkpjmKhCjID1756JXKlx/YEvtqBNb/tFG/RFyYB/tnSLMu0/2ePqGv9pjQ4V3jMaQ4ipF5YBItipL3Qz3rQFJvWCCzMAhcJ/IE1uLJ0ejf505gzMIgQNmd6GXN5kS6DqCBw4axfH1q9nnMce3UPryZNd3yULXZn/jTS64BvSRe+OJLXx+xdfLfGrHprNOvsIxqSTp0IPp7PFE6QF9H8I7AjapNUPzK33jfVp3Tw+c+AGMlUKl6/GrQKrjoc5JJncDebung0GnWhvxdOk7MQcwlOgm1+wjOPQDUA+QOUSaQ3GLDYVQidJr5pT7zS2lCtNNLg/T+g== 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=piltnTByFrtmgy9GlOmuLW0JbDdTYktoJ0ISndNfSNw=; b=j3bwJdP0Mj5Soy0vUqIljN3Ubf3WM3QPJuUa7XoqadTCNv/B2n8ccI7Gz2dnwS8+ilGOOF3Dmr4GqPZckeziLKsA6AeB+6ptfJfsxKKHrma12gzpuwhmhWZUoqBdmKmjToMjZzz6AVaV7rq7OnYR0vACDuNj7WDd2I7ZOGb4kP8= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CO1PR10MB4707.namprd10.prod.outlook.com (2603:10b6:303:92::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 19:12:07 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:07 +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" Subject: [PATCH v2 07/15] mm/mmap: Extract validate_mm() from vma_complete() Date: Tue, 25 Jun 2024 15:11:37 -0400 Message-ID: <20240625191145.3382793-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0074.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::7) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CO1PR10MB4707:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f2ee483-99f2-4bfa-815c-08dc954ab47d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bVnz0EOH576OqxSRSvRehCQGeXhbLoV1DZrXdSNXeSbhMUdJTf4hWQuvA4Nx?= =?us-ascii?Q?SxgzuOsdU2OscNFJ06QtVFf3sqK/F9Q+3yiC2e3Z/gZKDOcjC49Fk4B5VB77?= =?us-ascii?Q?Y45BeSZjpGaMGBWOpF8/4xONQf71wv8qKAFzxXzDVT1Awq/71Zb5VQXvKnTr?= =?us-ascii?Q?3DIoyuoGxXAF5REGT0tpg8YcAwTyRpZkVZy+bHwejFcemvb4iZ54bbUZ3WUI?= =?us-ascii?Q?IgvrBTkQD9FxMTSNp73c+yyxdhjMMxFc4/uTGly9RGDDIfx0U+MjTjZ7WTpS?= =?us-ascii?Q?PAf/fBV6akn8sQUyJ3kfsjoFEwONpjyaiob/RSYkHciM1XlAne1oJwhioIws?= =?us-ascii?Q?G3sPraLrxG5ZhuA2K1gOu/yKssal54bnQCcQEnBEMnOTMRx3m4ZsKjTSyw5X?= =?us-ascii?Q?50jorQMMWvn7NiXFOYcwh7vMTPf6eDQpyDBNCj0VgDSvFWSyuirJ59mVGA1n?= =?us-ascii?Q?OLnUTklTTWy9qgNd51Lq5opVMH3xwgQU0T6SSkTSp2pxEg21/wJfJPKAdtYP?= =?us-ascii?Q?sSVS8EGU9QEc/OxPQ9rSnBAJE7WdQHgmLkWbKKih65921bG0SqkUoEXL92sw?= =?us-ascii?Q?iSGYPn3GtBa3ZmFCCGf+iwH97aX8sRNVrVK/3iGICJkWQph/i6j9dWu3IJ5t?= =?us-ascii?Q?R6+5Sev4umiU1t7YZq65/AlEO9Gs3hWXh+tJjnc7GJCacBRgJVgjkKHXQqa4?= =?us-ascii?Q?/1+9OuIHrKVuj6iKD7xtX/RgC+vO0vhjgQyRPZoksS+ZS7RewS3qD7Thf5Mv?= =?us-ascii?Q?qWLIlKQiq7TTLxABT/bAfWpd3bTLYST24v0W3+cqqULmrEL+Q5DzHlG4YXhY?= =?us-ascii?Q?BiA27pVuLI9U/QbZyppknJl0PATKQig6L/u6ilDq37MlyRBs8Rxc0aGKaNWr?= =?us-ascii?Q?byY9ZOWSEQBWWFGI7+8cIj/iQkC45ldOS5o2HfSv2WlH0J/Pw4fgoM6d1Vzd?= =?us-ascii?Q?i5W/niFyPz97Fx1sLj6Q958NWaFEIJLJ5ah9stgMbYlEvTZUyeV3c6eDziaS?= =?us-ascii?Q?BImb77Quq0jhjK6A7Z4wpg59RZmyWz+mW9uZGcu8ns0xhNFj9raRGvRJ0t5H?= =?us-ascii?Q?0KJcskWwrWB9UxTNSQ5njV4VZCG88XeO9y2Pi+QdGk7VPj0K49Nzi2EczUYS?= =?us-ascii?Q?Ne7iDoor76glBwFjndXYzChqvZJcOsKcJJsMylgppwknM4tMTBIR5nt8U4wE?= =?us-ascii?Q?l09qGy8hIkkfxGkC1VjEXXnEeFZscnHFBcr4GeCiPFq+2ntWTSUUxv56ty1F?= =?us-ascii?Q?bCkI3jQ+Z90a4GdWyD4QGrfS4xVLJ7f7cMqzUxOD95dNuMEFKHXXJpnjE5wW?= =?us-ascii?Q?8/uGTAB/g3aQMNweZFSaeRhY?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xAko54osaQgQYp0inu0tSjJcqHNp+gyXWGLV8e2CLWxUw9ROF/j819zGDKZr?= =?us-ascii?Q?iXoB4WZqX4bRD6UxFBZvIgCcXuDhXmm940o25Nb0/Vv2FOi6JqThtQ7xLFQR?= =?us-ascii?Q?VdgeFVe1SyBowidIYZUyPJ9MGYFr5QEXr1j3e/tiQdLFkNYTeSf0UCCMK7Gr?= =?us-ascii?Q?lXn3L4f+Qq8CFqc26C+/9Luy1ZJdxsoLccBLTy2FZ/heW1GhlEa3hshZHrA3?= =?us-ascii?Q?Vh/o9L0FIE0A2vV1StCkKwC6ape/dPplnE+ALh9tIWrDkduEaZ5OovKCEazR?= =?us-ascii?Q?TvvGJysQqwI3VmGDDSl9jAXUmXRe+Ifqzj7wpz3yrzztFnxtoVkQFqQNJBo9?= =?us-ascii?Q?r7dqEsiMMhXhIC8Ix4AJDFW4F9qQpYn4QV7FAYerOMLTOqfaUPNFLWDXEcBh?= =?us-ascii?Q?BRAk4tJ6VpT8eMSBqmbhjhXCPwq5R+aLj8qkHO6KWQbDEkqDvNcHPbtyXNvi?= =?us-ascii?Q?qibot2/hsM9DECvZdlgHqGZ8+UwqenRSABuf0JlgslCdxSPCro96HyOWLqns?= =?us-ascii?Q?hkKRKg34oWqE+kvpEiyRYLAyHMh9gKIS+ZpeOIRIqXSJiFdNigEHJarFOcjQ?= =?us-ascii?Q?kkxOBGlOAxesI/OmplLGA/pg+xHo+kYV+bDStClvH1sFRrcwv9pnHCDUly1H?= =?us-ascii?Q?ahxTVm/8NL/wbs1cJUShy+XQ6dsmEiQhzLTmrF9kpEeY3xhumzuBbly9bF3R?= =?us-ascii?Q?JCuXoehhzdkxATtJSw4Pui+sPGFWD+EHwDy+2RVf5i4SQ3e2xnpIVuDaiR5e?= =?us-ascii?Q?tYLTrhi5D13CtAjVGGQ/D7X3imL5pMxu18JKIYRInfIoU2B2+cQqkcA8pwmF?= =?us-ascii?Q?KXa9rDYGyGxyF+GNYR+C09BLR8bpDolRPeEkMUmTIHHWxIa4Cdysr5VBonLe?= =?us-ascii?Q?+pf5rJCgNu2gV5X7Sc4ezBK/OYZCMVkZTcs9eiK4Wh8jC8ic3BKLTzD/JM3Q?= =?us-ascii?Q?p29Bd4M51Re3vhz/06V8eXVH2pL/KYSLqkRiFmSmifoQeuFcqXq6lBKsVaIc?= =?us-ascii?Q?d139iSDKep7b/1nvvnBPb6J4uh8kydYJj7Nk/shvANevkaLgpTaoZvvqmv3x?= =?us-ascii?Q?1D3KcThrRrv4deoeEYoBFMHfyY0XDvAYkhWhaRJeo/5kWAhmWpy1zgTyJ3F+?= =?us-ascii?Q?9fqnHyBeLFSWXrlVz/KQziTUYIORR0pxNwwYgreIEwiQyepEnvwCSDOn1XP7?= =?us-ascii?Q?3eyfkqO5sSbJQIC7wkdVrxZaHefvrh+iYKQEK59jY9R24Qe+uG8NCSzrsbFM?= =?us-ascii?Q?s4cSugFfMT5hnoMycK7/l2UwIikyab/okQF1PdAn7V9PWrHCTOt40soqkbJr?= =?us-ascii?Q?qaiXwblGWGtLszcruHBLQL28VwT26QO4WWo2SiJcnFJDMsq5M4zap+NFAvdl?= =?us-ascii?Q?TV4ZdTWPA3TzFiKXC60292tVPDo8fOnMv5t1jWbMy7LGhGIV4AuqK4yvyU2s?= =?us-ascii?Q?GCAwkMGRXF6lScPvicQceEtsOddIJbdmN+Nv6up9p35o1Ac/J8jv13fLtIAK?= =?us-ascii?Q?zbCSX7j7xzknjIseMHZI5Xb1W/cvcXIgLwDmftWJmVFeiVifs8PCM6rY5Qdf?= =?us-ascii?Q?YeT69hfa3kfUbY7/p2D/Kzq/7N1TXr4th0kji1fruXj5HdLQbm3Lo4UwWl4P?= =?us-ascii?Q?vQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: nYpsYqD6gtYk3TjOUt84VBFny66zHF1jdSdxQss+hFYLoRop4CtGk9X5GzsCtKnWv0I1eVM7SChN2kXJmsWjMLxhncqaRmMS34lizBx7w5AopL++zMbSbASrY1v1Nahkg7+YyAchmW0jcODRFiL4eQu3DT65ZkWnxQEg7qaKgV7Nx2s8ydE1cVzPL6nv5Yw7i4NEwIK2cFMKRLvpNLcLfqlc56FzzWenU5+Tq/ERABoyRbhVDAvyUNqcbfz9mYZ/2BAjHRUvuN9Jv0C/vgV6CKiWjRhAoIpH2nU/U+jHQyS8EYaljPwQ1L35ubt40mlxyx0tNd9G9PHQGLlvmTNekTdIoo67pgz2RUxarz76dwa1azEI9vMsHCkfFB5h8AZ+EXNztw0+c6tKsO3VOTZN/6TYd+DYjRRJMv92zO7bkEtv9BDsYxx/nGC6MScfeC/8wjXkcQnFTsqV8sUljXGWLSrBNOSs/gnhaw1wwvMMjh4RJyfs73VXClOoFTXd4Z6R9s2ZzD9E7dxCboXPU59V72/ckeJA5EBm+AOQrQKH+WVZexaOwbc6Y3ppBgxv58uMC167KfvEWSHa8dyiSYeuTLiXIvRWlCKdiR2RDWA/548= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f2ee483-99f2-4bfa-815c-08dc954ab47d X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:06.8934 (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: HG6HzSEihWllR3si/dgUK8ZNiml+01U4kF5nCJtWOaCbJ4oHncRwVwwx7bvbPeiRWeix7FNmfadPUtLPm3zQXQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4707 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 suspectscore=0 bulkscore=0 phishscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: gvt01nU0efeSsIA4YmeX9foVf-PRWNiF X-Proofpoint-ORIG-GUID: gvt01nU0efeSsIA4YmeX9foVf-PRWNiF Content-Type: text/plain; charset="utf-8" vma_complete() will need to be called during an unsafe time to call validate_mm(). Extract the call in all places now so that only one location can be modified in the next change. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mm/mmap.c b/mm/mmap.c index 2a1a49f98fa3..8d9be791997a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -646,7 +646,6 @@ static inline void vma_complete(struct vma_prepare *vp, } if (vp->insert && vp->file) uprobe_mmap(vp->insert); - validate_mm(mm); } =20 /* @@ -734,6 +733,7 @@ int vma_expand(struct vma_iterator *vmi, struct vm_area= _struct *vma, vma_iter_store(vmi, vma); =20 vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); return 0; =20 nomem: @@ -775,6 +775,7 @@ int vma_shrink(struct vma_iterator *vmi, struct vm_area= _struct *vma, vma_iter_clear(vmi); vma_set_range(vma, start, end, pgoff); vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); return 0; } =20 @@ -1103,6 +1104,7 @@ static struct vm_area_struct } =20 vma_complete(&vp, vmi, mm); + validate_mm(mm); khugepaged_enter_vma(res, vm_flags); return res; =20 @@ -2481,6 +2483,7 @@ static int __split_vma(struct vma_iterator *vmi, stru= ct vm_area_struct *vma, =20 /* vma_complete stores the new vma */ vma_complete(&vp, vmi, vma->vm_mm); + validate_mm(vma->vm_mm); =20 /* Success. */ if (new_below) @@ -3353,6 +3356,7 @@ static int do_brk_flags(struct vma_iterator *vmi, str= uct vm_area_struct *vma, vma_iter_store(vmi, vma); =20 vma_complete(&vp, vmi, mm); + validate_mm(mm); khugepaged_enter_vma(vma, flags); goto out; } --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AB58C17DE0D for ; Tue, 25 Jun 2024 19:12:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342747; cv=fail; b=Lu7T6s+qnCAXlrqv3sdrw3uXvqBq8+hHOKG4+H6/8zP/M5X8g8x5Kls6Hk0EX0mOf2plg2pW54z2pOxrCa7F9vi4ovnrudeeiI7nyyPuhTcbippojWNWstrl54E0+IBFOtbU0URsxkKri78efFvjdrusvUvUVD+qcniPhz/h8U8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342747; c=relaxed/simple; bh=12pxhC/DkUR6+FxwsbIlaRs+Y07xn/yB+ya8opPIXtY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=PAEsxt207rIXTVrbyiIzKPZcaHC9DdTDtFLUAbjksjpK/qAlEqO35z+tMZM+404vd+GLt3np19mofxvnpU8cWlE2+83jN1cV1ZvlmD7YY1Or5tUZMZcd4Lzj6ZDegqh1QY9Qr619IlaC37htKce3QO5y8AWF9WTGZjhUslrUFiY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=e9BJF1HU; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=yl/N9pF0; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="e9BJF1HU"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="yl/N9pF0" 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 45PIfUqf023000; Tue, 25 Jun 2024 19:12:12 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=1DoxtPb5EdsWVu0FMLjwtMRXKfWWaZ02jMrwbY8xjCg=; b= e9BJF1HUBMWMMg8bhqOBpGItD5sJ5O+xJYOCDIMBpwhmp8udgCSTzwsWADl0TVTh Fz0T8AFsEn+IiJFOR298dBW6LSoYAixPXVpXY19flWbeh4GwQxuXHkwab7N/oyEP d4a/HWr6YXx0U4/jQKbNkHZ8NqR8+ZOklDLd6bjjXuqz6Hv/DOBAQc83SJSeVuTP rliaWVaOMjSAzcsss48NG/n4K7FxNF/jGFfmVcXxZ8TWqGeugr6wOHPeG7o2s/Nu kAd4QhCsfEvNxlQqX5AumXVVQmokXDIoqwK4WAWWyhi3ud9ly/cMFXnUtP3G6m8A wODlO3iaOONsAN+wJve2xQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywq5t1k2y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:12 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PIqmFt010741; Tue, 25 Jun 2024 19:12:11 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2041.outbound.protection.outlook.com [104.47.56.41]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn2egtpr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QVEo4a73gpKT7S2BBD0GZxKyo6AGTXtA4cxu/Pg7i7sbOkZsW5rK7d74I8dByts3FmDn8Bf96ZWirHuqp2orFdCTnuMSHj/jp8iYlfMt4uc9dU2H7AHe4Q1D0tuS1kjqHUfYS9aVZPqh+Upq/sNea4ZTNixeJzAAcd5ZemfmB2Jqswpv4EyWjOX+oBKBNiUbJbo+aTDF4YJ478iMHW9ib/4Ef66D7vkv3ibGdtM2i8IJz3Lx4d0m0eu/f6+K9Q4QKX8SdgaN6G+OLoX3y2aVE3fRHwbLZmZZTP2R3RIYIfQmX8tup7QkovfQkpHESZ/8B3hAuoiLqvi6owpjIeGt4A== 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=1DoxtPb5EdsWVu0FMLjwtMRXKfWWaZ02jMrwbY8xjCg=; b=Io5uHQgc36L6Ad5GRup7M1Rlqxhqc21MZy+EYhKr4fVJrSEa3cEmiEJm/StfacDSPcnevsaABrMAAMzQYHwZlp2ecrZ4Gt9iGoEVuyVMZlmQcke0Hxmn4aB6bCkUS1pQViUjjWhFoU4/Ismek6HBE4Od7avPyJh2nt0eopQ63x5GH6FyAnWYku5zfzR/VxGenxJvgblNFMkSHoNscVxBYNRd87Ns+qFvcXOUZ3S306vl2s4j+t4IUjcTOlvllwvuaShvum6SUl4VL/NpjtkgiQE0WTGayAKB6wOH0J1MTtcsOkUrw1i1s0wz71Y3gCeIH+HtoCLMunsS1dfqq7dJMQ== 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=1DoxtPb5EdsWVu0FMLjwtMRXKfWWaZ02jMrwbY8xjCg=; b=yl/N9pF0DEtFK6O/i8ZduA6JFAgN5xV8EYgttJU8vTmPE1volFpw7dY2WgAXa2binJiOQIjHeudbPWV1EJ16+hf3RfrXXvTxan66kwJQEzEx4AryWBTQO9BieOWGg4ZquigG6aY8f8mZgtj0Rh63U/AQH03CUuwAS4aLSWueESU= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CO1PR10MB4707.namprd10.prod.outlook.com (2603:10b6:303:92::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 19:12:08 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:08 +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" Subject: [PATCH v2 08/15] mm/mmap: Inline munmap operation in mmap_region() Date: Tue, 25 Jun 2024 15:11:38 -0400 Message-ID: <20240625191145.3382793-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0017.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::28) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CO1PR10MB4707:EE_ X-MS-Office365-Filtering-Correlation-Id: 5dbfd661-7819-4291-36b4-08dc954ab586 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?XwdcP5vv4jbudIqAzSrKPiN+e0G3/x3yS9/KrqGM7hB8aUIy9QsXM4yavS1C?= =?us-ascii?Q?NHuqeAol8MzlMTrRUiFcxHByddZ+45BAltVZk1ZcByatXtxQI7Y59OCDTt5R?= =?us-ascii?Q?gy353yHwu2j/aAaGXiPYrXladzZR17ct//VQ443EcAP8xQxybcb9IIR8UNCX?= =?us-ascii?Q?ozcsgTxoqKTSVdBxH+nuDDfh98nFu1Pg0pU3NXQyKqqT1jTRLL05M86m/ArP?= =?us-ascii?Q?5fpiEwWB/+pWD2951jzn38EBBRwNzpMAc8q8/uS/cLEwZeBKdutrNmvEpuqj?= =?us-ascii?Q?fI5HR9GpKrKL3hUbrO7xZcD7DcLnwbLhZA+qEnrG6Xgs/0YskPbIYc1Eg88X?= =?us-ascii?Q?cVcShtnJcHjSvYohgunVpVaZlhznXwWoMJKtu/nGOBdHJX0zmgFCMcKIVFbi?= =?us-ascii?Q?acumUvM4X3K2V57NQRNSuMTHpTiG2WHK7JhtVV/w+hpkI8k+/OJ1akmku8lg?= =?us-ascii?Q?oXP+D8pMShPkaFE+bO0c1Vkr4cktBpt6W47cRukIh2pVoT8nV3DE8nL21w18?= =?us-ascii?Q?387NS6BvSWjLfij3qmcLEh9Ixic9klqwOmU/upse0YKcPhsjKikSUGupGCeJ?= =?us-ascii?Q?FLNyuTWHxlWgx+6Okfz33WW6rtrtkqAJgRnzSHSr8v13u0rvGkfVr7hm6sPZ?= =?us-ascii?Q?P7VXCB4SbGoZeOXy1xeN44djJs/1k6VU54q5YjXVMgiP5M/f18rG8EbdWxZr?= =?us-ascii?Q?s2o/jNFCjU5Fc1s+bwBF+6jzunm1VwtXCAO2kZvQrc743yfbs1W1H8vnTRHP?= =?us-ascii?Q?WAvo5EQPWqudb8psDFj5iD57RPTKRvfMJwB2cpWA7kygFxq5r80Pbo8nxcTQ?= =?us-ascii?Q?d3OxCVvkNWiO/S3G13kXjgYLEyDpvIT1nx+jOTPB/2kxwsR42RrRwnzyVPTE?= =?us-ascii?Q?srAEtXcv+nMTnypuJMeaPPaTXTC99WpzBLjJyNjubeqXD1lJmMkQeKqaYyTX?= =?us-ascii?Q?L3Ympcn+/nh0C7NhzSLONMgJtn/fnFfy57eVVxblNWV+MNbKNS3ezFfFa3lZ?= =?us-ascii?Q?Z3VTxieWL9vNACwgcQ8wCVVhfDMSe2t2N6qcmxlKxP5/ZcKZzs0OE000df9N?= =?us-ascii?Q?wjhFLTa0Tgk174/ZD4MdVzR4VMZna1kpdbVNqDgRPg8LynSE4G2EaTRdPfKG?= =?us-ascii?Q?U98PNXsS3c1a11w6FQHaA+3Wxoer89yKIpLEMvSnmHToMXIPtft1bcVyxCT8?= =?us-ascii?Q?VoM30WRUV4nBGu2CGesPdNnYcJgZ5TrevI/2VNT/CgnXXmtOv1GJO9MdNdeb?= =?us-ascii?Q?HMSCHdwaJDInuqJrTx50kk5VCNIcVTXPNC+Pzr8RgQorv2yGslR9Jk0oWia0?= =?us-ascii?Q?++7aMN4lL9wv2HOipgQcbhZn?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/RljETI5WQA4YzLC2oofCgCNZQgljRaqucng+uaiMsQkxgSNGlerZp37Acc2?= =?us-ascii?Q?0ZRKpZoEzfObLBxC2l3FjrciuNSatK1JnZPYCbp3V0i6IlxftisBli7Z3rSE?= =?us-ascii?Q?Y5H9CXApxTFafqaYZT3ekEKAGmoZJpeW+q0Sjt0AVLgD+pL3TaBJ2b9Z8lBH?= =?us-ascii?Q?RNO9Bzc64utxbyvy9CpIybf3/fmFG4HhfZbo5qC1K/jt22QZkDtB7UYKer14?= =?us-ascii?Q?rkPNlELRJL4VXmKvsWnbrQs4r6GZSX96aGaCXytWqapEhUzVAKiwVVNqowYY?= =?us-ascii?Q?0ZxDoUgX4jn8QofSiZ0UKI3lIdRHm1r7QQz7DP+VcVBOu1UaQMtwvdVLwBeT?= =?us-ascii?Q?FuoIDqKBKxDA5qiZ0DuaD9vAhoEnzz8O0A0dMPVItrlPZjw8Fj2MV/npxGwA?= =?us-ascii?Q?sFPDwaOz+RWaf8MiqbZjYfunfROidfLDiri/OP8EtwN66edxEnl1NfvVtwU6?= =?us-ascii?Q?tnF61otElWk1YsZrxcaHOvpHiwhcNXw6F5WjA/CnegAzyGWH9M4/178weELj?= =?us-ascii?Q?EHMH/Snngut3bloTnv03AINJpzUVGG09kWxCWWMqZ4pu1E1SoBroShOKoLc6?= =?us-ascii?Q?6VaHD8ip7vQ53/g6X2PaRcpZpyiaQGEBOqlWJ/3xWHlpmLd7S9BAoYRQ2NCD?= =?us-ascii?Q?Wr5itX9AcQOpjdRZoFFDgG2NH+wmxeBk2KPxp/5qDDcvjYdOrfxuDafXJQrg?= =?us-ascii?Q?gG+2q7TE3CZHA/21L9VzhIC8+E4Lhufkhtbq3Dkb1x7JT/oLpm6G0r8cBiK0?= =?us-ascii?Q?UQU2Z4LwRMvEMa71TwXRBJDz07g55FhQfbMKXn9yN1EQTAhVVdO1VBn0krcA?= =?us-ascii?Q?xZOrWYPg/N39hukIRNmbUvcI6KIpkqaFBqGyWpfC8foa8wSbVJc8oPy6O29a?= =?us-ascii?Q?OFq2gCxTJG3uZrErSKJ4VgWxEfOYVZILvIcD84aZHJUEDX65RCyKg/voZL0o?= =?us-ascii?Q?90ie+zDCPVCslWfHkzhmZEPhxgDWz5rvZG+Em5ETEqb1GO8Q3oWqEl3SWoPN?= =?us-ascii?Q?de5AiAEDqQKd10TxLtL4KO8R6tf7tqeIBNunzU61ZfW5LkBRBG4MPZ7A5XS8?= =?us-ascii?Q?bktjOvcls/EI4FZ13Cx0+ntJSahbTHv9TihBg4Ss5tdf1i5DiRKfQeRTIwAq?= =?us-ascii?Q?IuRsKo2oOn/c7EOZDH7sR5VVRQjATRSWE0p0pRgwadeiT65a9QzG2n5EaK6W?= =?us-ascii?Q?XmEkHPFcKFOzbkmGhSK+4Zq10j8ezDQWJNW7H+BR19bm87Hq22KvexgpXbrQ?= =?us-ascii?Q?B1oexdjv1kv5I66xMhGqsChtP4YLcnMRAPaVOTHSA1iMKQIIXLDl8YOcR/+4?= =?us-ascii?Q?nB5cpn9D4aNJUMcEW3uSHD0BUPpUBgJFnqTGNDv07R6fobn8ulU+uLxznnfz?= =?us-ascii?Q?bWZN7dM/5pcUuEqxN2Nf5YAy8te0RcVGOMhYS6yjLtjfwKC8ULGjlnQqMmvt?= =?us-ascii?Q?fV6BgUP0vImN8ux8PvcGtwpzxMyv2Wi0JmaxZvcvtr26/JrU2fYuLOJNW+uC?= =?us-ascii?Q?ZL4mxwNEz77SKlwdLvUwoYKelCIXS66vEbUBZfU1mYU5EVhl0/cFgqWmdOMp?= =?us-ascii?Q?PgcDzIIXUiZ46n8F4b4z+R7pwdRKrOM4ZorIvXlIAUtJqNZ1yj7MYjSPcc5b?= =?us-ascii?Q?iQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: viFCLWDmSXZMzXyvEiwG9Vbgigx7alWEvxToddeq3l2ppqiTmzH8H8uSxe1yXb2QqByUoWayRf99Phmvq8nVqH7e2fpm6dqf1v2cIPz/j0pw3W0yJwMifXQC4YTNEEYPR9Yd8+iG3o9p+KPBsLBOfavclPZLkB7iU/Zs7pCuGHJP5vSuDzdnngqaMBXMo516310LKo31LDcAO7Q9YDD6/Kj+J7mjjh+MoiE3rpHPZqyM+0TQx9UxDgH4Ca90a6ut37ZlMUYbD3tp+57V/Gb2vs+EJtRbtIKI/mVh2ksPouRd8bmkWXQO37SRJKE+HJcblGo8M9k+z7QuI6o61YJZTlzn8dEYvXcfpu62GBqAy6Rp5T2cQD78Ui8/D/LwtvCg0z0mfJ8aL3whwObyj6LTqGA0PWHXJ5CothPqh+IkS7p11VfJdmsVCUo/KXiNzSKvGeBQw7Kced1P15ch7r+kHp4ViXJzO8YB8WJejh/FtecxvkXgao8c61sGpeEztrci6p3lOAftt5Q0dFo5MMOte7Gt0cEBDRH/pgbmxvmFeMqu8jL3UyjKPYbH9pWQJUKrNIsv/4A5fU7mD0nWOBQScORv4+k0zL0m7yQ3TtT3t0g= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5dbfd661-7819-4291-36b4-08dc954ab586 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:08.6168 (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: jbmR37RPGx4zXRF6d8ITlOd6vpXDBfHcwAz5HY7KW90YQD7LzednJqKwVoiFktdpRpAD2l3nDL4WiG1Ur5tTcQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4707 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: Qg10Wj-9hnBdFnDrHzvOAY_JxdxilOXj X-Proofpoint-ORIG-GUID: Qg10Wj-9hnBdFnDrHzvOAY_JxdxilOXj Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" mmap_region is already passed sanitized addr and len, so change the call to do_vmi_munmap() to do_vmi_align_munmap() and inline the other checks. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 8d9be791997a..e9858ca8bbd4 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2937,12 +2937,20 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, return -ENOMEM; } =20 - /* Unmap any existing mapping in the area */ - error =3D do_vmi_munmap(&vmi, mm, addr, len, uf, false); - if (error =3D=3D -EPERM) - return error; - else if (error) - return -ENOMEM; + + if (unlikely(!can_modify_mm(mm, addr, end))) + return -EPERM; + + /* arch_unmap() might do unmaps itself. */ + arch_unmap(mm, addr, end); + + /* Find the first overlapping VMA */ + vma =3D vma_find(&vmi, end); + if (vma) { + if (do_vmi_align_munmap(&vmi, vma, mm, addr, end, uf, false)) + return -ENOMEM; + vma =3D NULL; + } =20 /* * Private writable mapping: check memory availability --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8371617DE3F for ; Tue, 25 Jun 2024 19:12:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342750; cv=fail; b=Fmq6XEPPO8GBEt75nI/tujOivT5VsMgf3z0MiZGfbsgZmmwCogIOCV/6Jfl0ODf1t/B/v0fpk9PSyC7o6/M/nwzCVyOP3USQAZRe9G1qfSqCHMQmXGudClc2HEmtVOrDDOXKthfY2k+avHDHZy5CkdxMeY0hwbWrKZ5SOBbgOJs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342750; c=relaxed/simple; bh=zgWIXyxRK0U7CMIKtGRdvF7rAXC0ub2aio/B27Rw0t0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WpBvaL0/mAVC8K+kMJmCTbO89R1dR4kkjjdjtN6wr0kaYueECvmxZg9s9Ynirb/j24eLO7xTLruEYLze3IGkLkGuBwqL8uDojeF+UC894mI2sq3y2A8VUJa2jRMUZXOVcgtsh1rbxGwlr/9SxHPPgv/SG0tw6+dF/sTlzjMnkFU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=DqO1J6Ih; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bRfITZgs; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="DqO1J6Ih"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bRfITZgs" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45PIfU0l003528; Tue, 25 Jun 2024 19:12:14 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=f12gUZaqT5CBj0qbmSntgTFf0542jsJzkP1hUweMEys=; b= DqO1J6IhMcP/dtTaWo6D91ODUm4doxqGMDGJV0ufxb89ftvspfkTWCNR7b0TWrZI fG4qlNre25FDYRfA76/4eNY2/w62r3aWJxUpj4uVMGliISheJq0IPBxbVWYx23wr WQNKyXJFzJHO4i1ReJuyG95NTfo6s6nWtPTFANt9Vz1fSdSmpRbofUb8EhLlino8 gwkT7WVN+na2migUeFOg5I0rcS+bPPU5k78+FIbd7w4XYUwX9RDhsAS4xGQBTU+d vrpAoAVKGQVosEiA6IQhlQ0uyj24NnEguKMGZpRpKpiySIv7+weIgNLtBl2ZUied 72T5H1mC/F4eS3Lz6YigAA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywp7shjvf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:14 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PHoVnn017823; Tue, 25 Jun 2024 19:12:13 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2172.outbound.protection.outlook.com [104.47.58.172]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn27ytxx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C42bZ4hMJy/AX/SBS2652Lvbnm/rJFaWTEnZGh5uY6bKFoVV5gsTIm3z1IkCvdsuMS54Jf2rh6rvOAY2BjHJjrRyYlT4lSbudOaT+zDymX/kZIOC9tNVetJ28dteb/NwBFl6Ka6uZp09d61ORfmELtD0i0k3eBanpXq5V9WuNF7aFfAfG/2RKntGcJqV0huBHesvLDitN6asC2rlfotP51o6PWy/CevF+vJ5leVf4yDdMnHX2XcAeL3gU7Q2vJF6uEUyNPqI9z/J+HfF0fl+qDsMCRZ/nd2IZ0tsjkHfgPf7JGDWLpjbA5LdoCsKaJw7+p20yjuAQT89GJcJNAVkMA== 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=f12gUZaqT5CBj0qbmSntgTFf0542jsJzkP1hUweMEys=; b=itU09f4py/NyPLlE3MlcZdaqVpUZ0/12cqNoujMr4rNpjiDjZ/QyEdKgi3FTGE4eduF6eFupWXtjAJ/vrqlbcnw43PD6lWjv8lEKcccoBxn9OUAYr0ug70fii9ekOy1WRAspw5dCDgi6FF8TDCiICfcGBGaV4uMDl+6byrLJgUvaFLCF9CMfZXgsOAdXrqGq43GnXCtVJxWNXXHMUIqcKVv9ZvwVLKBbCddEdam5xtL+gcFJG+/9LEm5dZ+njB281HRuebCrBXbn7xqnI9cLpr9LJrLuUQxaLwaJbNBQRNJ6VLRnX9SQdkq1CMTq3CsW3owmQQYb4Ze0sCWUIzKtcw== 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=f12gUZaqT5CBj0qbmSntgTFf0542jsJzkP1hUweMEys=; b=bRfITZgsv4jAbU+yIcHq5c2Ugr34q/YPeloenaK83xjhgMOIK4Bq8fJZqFN+CMcTGvSv3yxOxu7z36ZWIirHJY5jYtcmNnsqjsT7UPjz8akuFf0bqFh+Liw7+XF/aquQKxtOQ9pWmoalPRSJdXhARBo6LazWmQZQBWamB+y4DCE= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by CO1PR10MB4707.namprd10.prod.outlook.com (2603:10b6:303:92::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 19:12:10 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:10 +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" Subject: [PATCH v2 09/15] mm/mmap: Expand mmap_region() munmap call Date: Tue, 25 Jun 2024 15:11:39 -0400 Message-ID: <20240625191145.3382793-10-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0320.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10a::13) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|CO1PR10MB4707:EE_ X-MS-Office365-Filtering-Correlation-Id: 82561080-8a7d-44d9-8486-08dc954ab691 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?A/875Jh80dxjQbYKAgvhvUBbPBoZo0v5zddbMQG0iA2UpqArM+SfSi6IFBsC?= =?us-ascii?Q?ZWhGUP29UO+RsFDW73TlgAQ/Cod36mVuy3GAqXb36oIFtmzu5Ay1EgcFtLSR?= =?us-ascii?Q?zBtSk3dRaGUe72oPfKXqjokG1pTuBA95uSCXlmZNQ8lhzsdhFfpvcGiyarLY?= =?us-ascii?Q?noZhAT3y7ntOtgIZ1Sv6Arz9h5Z902uIGM2F/PzN6cSC9GqNH/YQGmfs5XS/?= =?us-ascii?Q?AKLxsrdAWVV6QWbmJCEr/8ikPTgJmpdfcAe15szA8T53YTt0TpJe0XeFzLW1?= =?us-ascii?Q?O/yaX2NpiyitA3kgiPIRk6Sucx4Yep5H58zuYouXvlE8KWsiUdRRbYcdQ0E3?= =?us-ascii?Q?F0wJXh6r/WBu7v9bGxn2r3sMFHHMXVPprrqYLwpn2+89e/feGgYjZS0n9pZ5?= =?us-ascii?Q?v+HcbDtRsy/Oi+lDGQ6aFByLkHb3aHMWQ2vfNlP0E6AmOv00PeTNYHNq8Ucd?= =?us-ascii?Q?/93q3CGdApWx1o1bWmUEXSevJdft0CDQI5me3PegZY0Y/9L0YxOP+px7eB78?= =?us-ascii?Q?nbMr+PGvc2b1rlYklNoRBsZFHezqUPuU6zyww+Vh3ZUZbRFUw5fr8aQCBm69?= =?us-ascii?Q?lfWiy23kSQqp5euFSFzzkYbAEd+rFaun5i8b70Ri7Rxi+VLfT8VuLOrpfct8?= =?us-ascii?Q?O+dy8ETsU65t9qNcO3hyVwxCcCllzuoOm1n7dGyd6WQfpb0tjeeex5I7BBQ+?= =?us-ascii?Q?KpPpIaPDOFbuvhGRP8NobR1CX8kjMFxKx8HMymeGcfwqlr9TbLZQ8/+2G7ux?= =?us-ascii?Q?bHxbF7aTQAlNgJEVSxjUVUfKNTkFBahOVwVWYpkkO2JXOR0QB3drYHOmFjdm?= =?us-ascii?Q?4ch9pGs5jLQD46SkcWudjOnC23QP4GahMwYrCFl39E9XGxmw53Nzjw7N8NWx?= =?us-ascii?Q?1z6G1BYPe/FPGO4gpoY+WzgXpTZelzZRrxMaYWx2qsqD2JPJDLajEfhLDVYO?= =?us-ascii?Q?VVB3z8gUVTMwW6Znk/z0rixNOx9gGI+GlQ+tmz0/XmhvZHH2UzLlMS4m6nNw?= =?us-ascii?Q?cZDecbjgfDTto/2G+ybSOLYBIt+Nvra0MemahXTj9Ov8kFQy0KTr142plCT5?= =?us-ascii?Q?fF1ZVHuGzpSAvVAIgkZLuLGIQDPOdg6fdKlo4KAfTB/WtMJkkTTtPczAzUQh?= =?us-ascii?Q?NYM5hNUJqdsSd1nx2ehiwdeaB1wDRFWnPyaKdb+ZDpqZBwia/aV5MVsWv21n?= =?us-ascii?Q?wSWYULBjQQm+tUbC/OUO8vZw6LSUGX/m90hBih5yR2DZ1aMTIHo+CyZcgbS9?= =?us-ascii?Q?e/h44j83PPuThXM1MiI7yV/N+DgDulWhtjYkarcqzg1huSqKOjyI1UuHVENH?= =?us-ascii?Q?zm9QBJj5MOoHJc6kbYkbdQQ+?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ejsJDs8VZW3cr91CklcKkBKXvr44Klb2Bmeeme6uFIl4rYwWNN7iZBwxyMC2?= =?us-ascii?Q?xFYaqmYB5apDScVNb8F26S4WClLgWcwW1a2l9hAev7J7BRTJlvlARSrzt8qa?= =?us-ascii?Q?EGjDP6yZFdKtUpcAJLB4Twlx7dIhtzIS13t+7lhG+IH+P14wf5fr6cbXbM14?= =?us-ascii?Q?Sy161aVD0H7FvZLtLbCpGaz2QhVJ5ZXBU7RIA6CZbVXwvOSF9tkusFgbyLyI?= =?us-ascii?Q?QaCLKXPx0A6D5jiq8/b27SHqfXEN2ZUtk2jCw0iGOmZ5eMIeQysKsac/2mlH?= =?us-ascii?Q?s7LTDzU3nY8IsWro7vyjIh4rN2pg3Gkdxs5AxM7MuC2azgIuR+CsZY6XZTfC?= =?us-ascii?Q?TDL88oYw4v1RimbWVtJqSfEK7WTjuel764ZY4Itq8JZUagIC306Fw6tuf64K?= =?us-ascii?Q?yHPA3zkI8zMqErjk/z/Gfgt01KXVH00oabb2CIwQUi+YOya7Aol0nhf0ngAK?= =?us-ascii?Q?7eOrR8CQ8W5rCp898ZEbBKd3/jm5BeWsSnKFgtQsEUGvGKQIF6Rig9xTMgt3?= =?us-ascii?Q?bSQ6bQjpEi5dOPO9Xd87Bi0hdHi0+iAwyfsQ8EpAUion6w0xL8C+6JKQgAkG?= =?us-ascii?Q?IAQ/xHv9acmrsaoGM3QpRa/JOrCWffM1muqlhqpldkOg3syEWmt4lfCJEV9E?= =?us-ascii?Q?U7T0guTyBCl48d/yQDTYgdLrZl/8QHAGXOsKlgE8AKL5qf5HqAyuZQPr3wEr?= =?us-ascii?Q?ejBqf4obVtaG/ra+8MjNXkzsb8jnxNi5fSsqwhXmi0bHci31oO5vnfoOnirM?= =?us-ascii?Q?RLSjrGCxWVwi4QN1XOZWO4c5v0CT49qrKmOMFdzMzuXuTiCI0n5L1BfnDVD0?= =?us-ascii?Q?ddghnhZ4MMCc1XGqey+Si+O9eHigh8G7e7XPn5JlwdZvwYPUpIWGRrBB03jG?= =?us-ascii?Q?np4AC8VjhtDvpe+GGbBo0O9PYMZVPtQjXFjKe3FRpSDj2j/9Z92W17tVdr2a?= =?us-ascii?Q?ntMWUxhdejQ2qxcgLlwzBLkxKBM9TrLX6hMFl8ufIkr2a1JNfF0KYwkfVPiP?= =?us-ascii?Q?lZS+wBQ6c3bC0IWg1GTB8P8N44KAFACnVlOA8+rfVTCmC7QEMv2h7rgbRly2?= =?us-ascii?Q?4TEGa0LoDfWP40pa21ql4qRlEh3wKrEswy6k36npzEY3aMD0DfMu+hapniSR?= =?us-ascii?Q?QqIlKET6tS93rYei13/W6YwQM9y1iQimutFYHKSqn73uVnTMtcW6dCAESRKg?= =?us-ascii?Q?OjdAbXdZ0U6mdqDXxEtQsbcTI1qAyAzs5+ehDd17aqI3BG+Y7OfnjTO2q2Da?= =?us-ascii?Q?QZKIUcyQVzMAuOk3rIthqEDdkBy9quvn0h93wh907sKdaSAVdC9XKs170n9s?= =?us-ascii?Q?lI3wuZhTB5fqBJeb36PzwDShQm1TnT/HtPMSVL+9pLdiaUms3vMt37T4Ri+5?= =?us-ascii?Q?wdDZfEz9b4glDUQK9q9PAMAbuNfoBtlewwy5eubAniSjiAENNhQkMBkU0JR5?= =?us-ascii?Q?UAFW0mfOqjPlxgXnvuWJIb97X3SzUObfdYWRQT7n6PfZY2LdbULNusDVqpWq?= =?us-ascii?Q?Ok1zzCM8uDKxdV/XE76vb0Mfi+o/x2qmbeVGs5/JqPzC3C7+uc6Me4SbYGUk?= =?us-ascii?Q?N0F++TlqVslCVU2SI1kjlxMpEE5v+NLuX9pbfex3Jr7d/a874oZc+u4aqNhx?= =?us-ascii?Q?Iw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: oZhGgN1ZAtTLvmBiVOx36e9GwXZwc7CpMZJSZdxkFfGMZgpkJrYt89m2CJ4Zkd9xvLbYYA6OyOgVVxBPFtp3QGR6mGP8i/wwM1pseRI09aorFXHeGSqWqIzKuxf6Pm0xk4LVVv7nfsu8VVGLobTSNm5aRSOTnCA9+7wjA4qCZJ29n4Ba2uCmZONEZBHuNGwZzWaiie5ussJf//7HuIEzFK/Y0pDp7xyDRv+8wfOIKBprjssZrZ9+KmG67JQIJLjpJ2gUPVbx6slQyxhxuMSXYx4zGMsUoRLTmq1Hl21CiZm2eyzLMUU+1TYZ0a+NIMVcgtck7huvuCqGE4Nx9038MwdRMZdVER6O6jW2XN4wAt3hHNTL4vCJTtpSjAUUMIUzbeOHAO7tXAmIjs8Db3pjc0qFhmr7J6t/Hmp0RO/LSkNp1HEEgyir+EE1v4PuuKlBiu0pLe8SpTDjKlMIvItRouZiE6/0VgFN3BQtYYZ7MmtOSYsZLTTHXa/UMPvpdVNB4c1zB3z0wHGSsU5p6e4pKFWjs98RVWKY9Jfu2Yw6XxwHk5wOcPAJaA1KNCfEfqkVri0LsYfJtT/JMCEdq6WE6Ihoo0J61shvyHR8vkoziJA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82561080-8a7d-44d9-8486-08dc954ab691 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:10.3827 (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: +9Uo2JVJ2NXcS6Ou3eXPLCvKwMWDS5jgQkXI3ciVmk/8sBA+6JZpnMNVhdoTzrrtAw6NYZMadk6pQ7j7+ojuKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4707 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: drSW4CsO7QR6fk1_fLdATppIVTpTC23L X-Proofpoint-ORIG-GUID: drSW4CsO7QR6fk1_fLdATppIVTpTC23L Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Open code the do_vmi_align_munmap() call so that it can be broken up later in the series. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index e9858ca8bbd4..f5b33de4e717 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2915,6 +2915,9 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, struct vm_area_struct *next, *prev, *merge; pgoff_t pglen =3D len >> PAGE_SHIFT; unsigned long charged =3D 0; + struct vma_munmap_struct vms; + struct ma_state mas_detach; + struct maple_tree mt_detach; unsigned long end =3D addr + len; unsigned long merge_start =3D addr, merge_end =3D end; bool writable_file_mapping =3D false; @@ -2947,9 +2950,24 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, /* Find the first overlapping VMA */ vma =3D vma_find(&vmi, end); if (vma) { - if (do_vmi_align_munmap(&vmi, vma, mm, addr, end, uf, false)) + mt_init_flags(&mt_detach, vmi.mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); + mt_on_stack(mt_detach); + mas_init(&mas_detach, &mt_detach, /* addr =3D */ 0); + init_vma_munmap(&vms, &vmi, vma, addr, end, uf, /* unlock =3D */ false); + if (vms_gather_munmap_vmas(&vms, &mas_detach)) + return -ENOMEM; + + if (vma_iter_clear_gfp(&vmi, addr, end, GFP_KERNEL)) return -ENOMEM; + + vms_complete_munmap_vmas(&vms, &mas_detach); + next =3D vms.next; + prev =3D vms.prev; + vma_prev(&vmi); vma =3D NULL; + } else { + next =3D vma_next(&vmi); + prev =3D vma_prev(&vmi); } =20 /* @@ -2962,8 +2980,6 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, vm_flags |=3D VM_ACCOUNT; } =20 - next =3D vma_next(&vmi); - prev =3D vma_prev(&vmi); if (vm_flags & VM_SPECIAL) { if (prev) vma_iter_next_range(&vmi); --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A82E417E457 for ; Tue, 25 Jun 2024 19:12:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342751; cv=fail; b=mKx71V2Wqq6FKuMIaReLbEv9vj6h3HlwMp4d6ST2/rNU1AOQCPCT2wskKSWEH0VLX0r4Y4tLeb2wrytsmfShnMMun9FklQkSLjA4AalNGW8j6Qg4XNSzyaKYydsGDJYB5oj64umxB8qkDP61msaZLjUKBB7hRQXXLtWZV5Twqe0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342751; c=relaxed/simple; bh=lMkoTE0UomRncgbXd9RBLVAPkkh1qYs+g/CmVo7H8KQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Sa19vIrzK2mejV5UYNT+gQZVzga9hizAE6CqAXKBv3xJlbtrI4o/0g8qj0kM3MJ+Zolm/Nk5Re2Ne50KIXSJKPg1YbUAebQVlmReVNyJeZO3H0Gqud+xU33eUnG2GoL1F0bM4wqt1xECUxkh/nKbBypMFBSNqew7LRpa1zxaxVc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=J9Mg+Yg7; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=YHI1plFG; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="J9Mg+Yg7"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="YHI1plFG" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45PIfUrc003580; Tue, 25 Jun 2024 19:12:15 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=481Re+ATCvAQvWbPAjt9N9MaRrHnR8VIjSEjBs80iUY=; b= J9Mg+Yg7s7Oj68CD+mUS5p0Z8A4sq3INPfOOKmfMGPs7zGokXw9//Yz3aCdQ0PHh AK0uONOzp9ktDH7iCzb/rGxhRo3dnmVsZGL+gZrK5A1qJjYvyqTEWPfUHlsLEzLU RAuc7QcjdANBqqo25S7WVHeXcPa36gVj4eKKxJrtGV0qIpN8QQXL/dfFMPVyvvGc YyxD84HHqg2jNtanHKfPZFhhn+fFn70hRzCwtz5ydzGmYWahbVoox0tuKWhyD6vO nJP9hT49hrgyy25zh5xyx4lAS1Y/vTb/1pquzGmh8zXx3aKZOXbgfgJ1CXxNPbKm HONenIHTarkgZeDGDPzpEw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywp7shjvh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:15 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PI1vRu017872; Tue, 25 Jun 2024 19:12:14 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2041.outbound.protection.outlook.com [104.47.73.41]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn27ytyv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Mqphz2H7FQJIlJQgw0C7VXYQmslO2uoBaiEzjwvjl4s+NEhlAfI80+Z0WLTm4qrvQvwpd5WSuwuDYjLxz1fk6q9RJfcL7bVAqDya7k2+9BUvMOguJxshZnkZgQrKKZRWU1NslDyFETNgOYJtx4YqxqqL+blhwezcLVeSM7A9dp23KGmID7tEQtgEBzi4hNWsq6ffeLx6oVs5E2Svqx9wwe8jNuXdP6soIdIi1cNvvFfJRz299gut3SZlYA5th0Th+fjQjLweE0ardVr9N8CLorbswvZ5UhFcwqrM7fCLuDG6izMnOXYUJK6h+Y388euyQpuli5l4PLBZcZfxZ/xdgw== 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=481Re+ATCvAQvWbPAjt9N9MaRrHnR8VIjSEjBs80iUY=; b=jM8yFNq2XeMZ4tvLJS+pRUJvcRfCalJOPiCKojuL/ErbrsEj9RRSY/WiJQV1Zb94R8GRruGgafsKG80cfej84kN6ZwYRu7c/wqxjE3JZftJIr7CR3gTc1vfcZKs04WA0GT5e8wSjenWzGgAHlmLqlHKQKl353i+62A3J4kl2llFjK6YfIuy9nbaNJV6c5oENz+cLzZCGcmgwuXZqVARuWyz37/VbbNyI9CDQPFGdU3K+maNV0t33Dl3gY1qb5qdlDaKXMAnSA+f1IbVF8yCbjjRImE/9q0W4PdXWSWpPpVyYEPgVHOjs0H6Tdw7tWETWUaom4dV8ClPa4EV0aaFMCg== 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=481Re+ATCvAQvWbPAjt9N9MaRrHnR8VIjSEjBs80iUY=; b=YHI1plFGEqv9txdfkNk5rd3CcuVz7U6sHArFhfJvr3If2L5s4vaKIxblFYEuRQyGR8LJ3/BQq4ayMbQlL/gjJ0Sbxf+EKGkLsBQ4dyTOoRycQHkkqb0+2ysYcGErPL2qfm7UvlG0Fyp3tLsrxaShgRQS+WfDHoLZ68OlCVeZUUE= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7066.namprd10.prod.outlook.com (2603:10b6:8:140::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Tue, 25 Jun 2024 19:12:12 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:12 +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" Subject: [PATCH v2 10/15] mm/mmap: Reposition vma iterator in mmap_region() Date: Tue, 25 Jun 2024 15:11:40 -0400 Message-ID: <20240625191145.3382793-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0205.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ad::27) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|DS0PR10MB7066:EE_ X-MS-Office365-Filtering-Correlation-Id: 5dc89935-efde-4818-2a13-08dc954ab7ab X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?tP1Uc2fXm5ac2F5YcX2DhpC7ERAnm4xCWm/HKzcRr3PoRvY6z4Klaz5fOnQe?= =?us-ascii?Q?bz/cWCNthbQJnKj68N8/H5Pk9ENOLAwA8RRcvKN0u8hFMKV4uengDoYCi3Yq?= =?us-ascii?Q?SR9lmxHH9UuD5OM9qpgh94nsBSxZGieDz8ZHlUa4cYMB4EppFog6QkMFA5gJ?= =?us-ascii?Q?oDPY2vKaRf7EYlRxuWPoelLGRDjp/6lfv+UWd27TYbouNq/rkgZObyVmVB/T?= =?us-ascii?Q?yI6NWfs6H19EDouJSIw0hkqZzB8Jk5ei6QSXZEPSXDfzTluf/cFOHKkFJcCy?= =?us-ascii?Q?JSIi046PWBOmfBcIT7MFIDnuJ2ESyw0LS50nmKNj50I3jAWRNk99qTxUkUbX?= =?us-ascii?Q?3JfWEIGsdG+ZBeMHZdEtHoRsIUN3Y82+lHBGuXCabvO9F2Z5B6ms7ZzUmR9n?= =?us-ascii?Q?o5QS17U/41XpAh0H16TvKzC9EN2ky33KBPcGnbtENQnkmyPP/yRjac1GkzQ0?= =?us-ascii?Q?2yfja6oRmA42LvkW9l7EXcH7YWPOgGhjalyg3J+yzAIYkalfUYL8ss49YmwT?= =?us-ascii?Q?RyvntSQl/5PtgMNjoHWpPXjb/cWPkw3z7KND/S2CPYE0U7mYc8hFXEU7Myks?= =?us-ascii?Q?Mo0pjbp0F1FsFwblYhkvLnJn4HobqNrGt1Z3tRpzPR5CQi7AUqVcVPs6LtGp?= =?us-ascii?Q?IhkCF5zVsFHZnyWxUaU8uF57RttiAkzB7T5KEqhQKvoEWbcvNz/KO1UYXNlG?= =?us-ascii?Q?pPAIwMIlGiiaMDY+REiDfS9ub9RLl8G0URknpPBTaBws+12d4Yy25vrl0j71?= =?us-ascii?Q?atiuo7hjq09OIk4sc6eS02fC9C1DEMHLMKRIeQs8df40o8x5OColR2+1N++I?= =?us-ascii?Q?/dSnx93nAYOyaL08AQawSRnojlzBVY1ynaI1BbrbbelPwFCezW9EUGrVuqj0?= =?us-ascii?Q?fpO+pEkTE6W+yQlkSFw7J9Hhn6frhGH/gRtN45HU0xgamys+gtRw51rtgRgf?= =?us-ascii?Q?bogCUaUvymAQxZkT1R/nJbrCRizXol22knB2HM5z+PaWSILh29wlVfW4G70o?= =?us-ascii?Q?WF4uPMhPZG4wzr1Sm1ht0DqpcVbzGYfiiXnL+AAncgQyNz5rYUU7lGd5lSyy?= =?us-ascii?Q?/+2jXtetzyd2EJc5xoVJ+8Qs148I9on+LUrVuIu+4FNKMmEk9G5BJQcTvHpX?= =?us-ascii?Q?4uQvIb+FkSm17HHpl1p68FcWLu8GR9orzLyW+rPB3ByxrrHb5Ooo0Ou4Sb3K?= =?us-ascii?Q?sIV6wLtYBzZYVl+sKd5RABQUepF2d+nR2qw4x3W/qbBO2zXWZCz+gnUAofl7?= =?us-ascii?Q?oZitBSCIiJGowccEXP5+VWWoyTk5iyBe5zxxeMU437HwR+pdAKoVKkgjaP8N?= =?us-ascii?Q?JHH56WNACvtC7Wa4P9TH5sJyD/YJivGF61B5M/pcjke8gA=3D=3D?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gjIcPpkcMltLNdybeJo2GJeEcTBODECuK96o2fkJnEG1Fd8Xxxvx3MoHJ11Z?= =?us-ascii?Q?sE17XkgBelx/M2+0rEDtYphzIJIj+0Vy4zHw9RjErMfEUOtnkyK1BDHMrX8C?= =?us-ascii?Q?ouTmRj4KULvSjyEUQ5+YApT3fM+hbbqd7k/YRYvV588K4eNZkP/qXmNGROLz?= =?us-ascii?Q?wTB8nhMQ2rPDfzBiYAg+68FaslBrQJOA4z1+Qcu1DZjAMI0vDIO48RDxApSA?= =?us-ascii?Q?SXgKgGStfJeaFgwPa4ZNhWUcaFN78qrAr6Rlo0Rnd0ixzQmA22zaM25gowwA?= =?us-ascii?Q?vFOMDJHBuNSC2z1aBQyN0AQLxtZqp7vq+l6DdEPbFVZTpSY4bQ8ejlicjwL4?= =?us-ascii?Q?tm+ZWHHQRRndAL1/zOU05woC2mO+PBuhVLnFM/ZW5fLupxT8/pKmigvG2gw5?= =?us-ascii?Q?DPXKPkXDO0nFsm3QQ/RLaHfZ86d+B2wStcc/2aqg4djg0auVzsH8iONvqC+k?= =?us-ascii?Q?UjALLmuV4ARsf3wg6Eo9oU0NGIOQEPIBXDWZ0bMS/z+G4jXKpwC0Ql2nOynh?= =?us-ascii?Q?QYy1IF6nRzQTko9YUZVSdCOXXe5qBf0fI/S1FHfb8PhUvKKjw5Tkzm1uGxe9?= =?us-ascii?Q?JdnxBmN2/VkrRCHyZVDPdz42CCWX3eHA/3pjLvduF58ZDzcnwwsdDQzB2qYF?= =?us-ascii?Q?9dITWqikOV/D1a9cseJkYNlUx39qS7mVhdqGnjsEsgnc2oZnIl+ZyEKyUFBR?= =?us-ascii?Q?+NFJg0DeG6OtZZ7yrTO2VqwRlfClSWM+Y3T3belWigP9aMEgUbhP/Vu4xK8l?= =?us-ascii?Q?M4IB/sZ8p290SH3Jq6NQNOvWyZbWILOFSk6V6E63QP64DCT3iPflo40NhDCe?= =?us-ascii?Q?BIrUTatpcMiPiSNdQ0PjUG9uOerNC1LwpdIyijW3IbWlugI5b3cjIgmpqoPa?= =?us-ascii?Q?T107AdJavQmxAaLfePCuuVjdjEmwc3m3Uic0wZz5m7i3xHBvkRyvX/wXb6sm?= =?us-ascii?Q?2js6DCjPyvZaoYRUpuLl/Q7/E4cSIu6jez0nhc3m+dtO7st37ZKnuGERLhn2?= =?us-ascii?Q?fgmHxMnQ7gBtxAzC2hXHh1CXlDhCddDscTSCv/I+O4ZX6b8/GY97YgpaXrDj?= =?us-ascii?Q?S+n2DYinPzTXceFgHdYopypDHozphZkQQ8rlKeq54jSvBERF9rV6G5E6nxs/?= =?us-ascii?Q?scsuw5VBALTTvwVRmUTSXrICpx5S9ZFdaM9XdpvfEQgKPeWzSxXy3Hi+rPnH?= =?us-ascii?Q?CuEvkcTtrSslqsMydWPmcWWntaS0WMoKK63BojqAIWu59mxmzWxkuoicA/OF?= =?us-ascii?Q?LRndXKwr8j+vqP5Bo2hWIMzPzoN8/UJCrGO1za1BYkElEkApU0QJEfuSPkVB?= =?us-ascii?Q?uC6UeUURkqlfbMzXfbxp0X9TWU5UAuNrpKcx8GI3UvE7KnndqCF0Q7b5sE9M?= =?us-ascii?Q?pNisM5UtHesluTSuMsbRvc6Pd4BWCBvdrWgk+j4g66yj93iD4mTnJRxlPBsu?= =?us-ascii?Q?FqNm39Y/+e2mgOzGYcto4Z8S12FpDAcGz0cbG3+7zv6rC2pxAD36AxuaLkWG?= =?us-ascii?Q?jfTkNopDPrSw+3mvtrvIlrOiaaBTUKZhbycc2VMq+24VAc4H8ENgSgFf4T7O?= =?us-ascii?Q?KnBsUFXKj8dLD+YHb5pDAqNe51jI7H0bQ6v1M7cGTpshejs3UHVXxQxSLvn1?= =?us-ascii?Q?7Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 2NxfP4S+zq2B5tFh4f2xe6yJktl7DmVCPDR/1BcDHCVHQl6Y9zvwy98nUmkRNp/gNSw4XXj2Uv1Ym8Sw2fMMud0oDCwpw/wZgvdpFD4tlEDNb5cnuwwR/TV+f1EHaWjrDUWOHpofMvhYUykcRMpqOg4dTdrRNJpnFslH+z0e2Un3se7An/OVWPEkQdEsMZ7uDdEdM6mvYGetO+Lh38usT25KgJTWU2BOOTKFMOFaebkZMQ2NRmY5oqtE5boXZdXbJWDL9Vvc5WEOqFZlBwQUw+Om3oQpqj+6v9lgLu3yCYB++ANzV7GHTtOj9cxrQLLPPqLjSH4tYfVMM098wcwBqqyMVyq665WwUcsh8PdwuMH4gTDRAEPj3JK5KIOl4EATawnxl1DAceQP/cvaPL0ee0OgyQq0+feGOh8mId2/4W5YUD2kd9y4mc8+/2krWp7ZNupG8WIjWwyay+bMmVvGu0acv5wEqdVKCYwEo2zbzlIhDX1rdhtKrCDBxDSyA767CkAkIx4eM/wugkf5eclmWyyiafcU52R74YFRs0U2wqVEzoJKr8aEkqgAm5BW6+HfDWdma8R54vQSuTeJMDOz58eKPmp32N26ORBNr/b7+t0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5dc89935-efde-4818-2a13-08dc954ab7ab X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:12.2432 (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: ROZ6yEI6FOCXlvDdnHlN+f24SuXarkZQO1gWoq/qdCORv4St89Eziiq69V4OZWBk1bgYvty6q5CGTB/XSm7cyg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7066 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: t5mv1WdILhOnp8Zm24i4lfQttnBsh7QE X-Proofpoint-ORIG-GUID: t5mv1WdILhOnp8Zm24i4lfQttnBsh7QE Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Instead of moving (or leaving) the vma iterator pointing at the previous vma, leave it pointing at the insert location. Pointing the vma iterator at the insert location allows for a cleaner walk of the vma tree for MAP_FIXED and the no expansion cases. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index f5b33de4e717..ecf55d32e804 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2963,11 +2963,12 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, vms_complete_munmap_vmas(&vms, &mas_detach); next =3D vms.next; prev =3D vms.prev; - vma_prev(&vmi); vma =3D NULL; } else { next =3D vma_next(&vmi); prev =3D vma_prev(&vmi); + if (prev) + vma_iter_next_range(&vmi); } =20 /* @@ -2980,11 +2981,8 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, vm_flags |=3D VM_ACCOUNT; } =20 - if (vm_flags & VM_SPECIAL) { - if (prev) - vma_iter_next_range(&vmi); + if (vm_flags & VM_SPECIAL) goto cannot_expand; - } =20 /* Attempt to expand an old mapping */ /* Check next */ @@ -3005,19 +3003,21 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, merge_start =3D prev->vm_start; vma =3D prev; vm_pgoff =3D prev->vm_pgoff; - } else if (prev) { - vma_iter_next_range(&vmi); + vma_prev(&vmi); } =20 - /* Actually expand, if possible */ - if (vma && - !vma_expand(&vmi, vma, merge_start, merge_end, vm_pgoff, next)) { - khugepaged_enter_vma(vma, vm_flags); - goto expanded; + if (vma) { + /* Actually expand, if possible */ + if (!vma_expand(&vmi, vma, merge_start, merge_end, vm_pgoff, next)) { + khugepaged_enter_vma(vma, vm_flags); + goto expanded; + } + + /* If the expand fails, then reposition the vma iterator */ + if (unlikely(vma =3D=3D prev)) + vma_iter_set(&vmi, addr); } =20 - if (vma =3D=3D prev) - vma_iter_set(&vmi, addr); cannot_expand: =20 /* --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9BCFD17E46E for ; Tue, 25 Jun 2024 19:12:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342752; cv=fail; b=KZ48Rj+X5e3uy3KOycIOE4nO6R1PubHe9iP0+e1NrsY8PN/WERWuL5PXNsSSotXUQDBizA8J4XiSvM6OeAQbdto/qVyoL6lwU/WwagFbZmf64zYo5NkAMDWibNXuSdpBOWIjIatQS2pMPc2U6HmKHapu0bo0H9EGqUXbl4SkkXo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342752; c=relaxed/simple; bh=hz3eEVdBk3DNaGbj4AF+GLdhtMwoG1b4l00Ev7QDryY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EHbSAcMfVM2jaBcWyJihViOtkq92ZiLfsElTGPeE5NJIL+3+ZaNuwlo1oZKPMdYU91umFRHR/rkzmNQoLk/xIMY3l6nCEO5duOgzADgspsCjPikQ3DjIQDY/uZYwJlQ3DCj7UQMwR03aLYlncgKvVKyC9lKu9FtqofhFop4bVnQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=T2o7R/1B; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=mGYBobBc; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="T2o7R/1B"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="mGYBobBc" 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 45PIfY7q009067; Tue, 25 Jun 2024 19:12:18 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=2C47QT2h4bMPUfGiEQ1EmT7/uBhtsa8B2FgGIJ4qDYI=; b= T2o7R/1BxtVtVS1qwJShcVe7ZB/vUf8fxDcy1xApRJqshafHuJSMZUYwxlyV2Wjm L+7gK9dYb9FRXN1t6EXB4tnlBmtyEXM3H3pH0ssPoMf3bGK1PuQvwHJJFmJUh2wa vlBSpqZ4445ASVzxIjpvTETyNP+RLbivcjkLKGhDNWI1oJdh3U8risZXDgfVvjxc di6iuMlldLtyDmOSEz+wl+hxjOiM5TnIq2eBSQkdDq36zq/Pu5aaybHSIOnARjZm HmW3mH83/uaTD7YsvQqfAIbgCyoKEjZpBSs3OJ6XVjNSZzqARNndM8kTofiBofmV p9ZvSrAfhoLIpt9tVcjfzg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywnhb1jqy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:17 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PIvN1s011492; Tue, 25 Jun 2024 19:12:16 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2040.outbound.protection.outlook.com [104.47.73.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn2egtsh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nQm2af/Oxk8M4+P8zw2Cxv83bHOq++aKpEQap02LA795N2qz5+s/UalqCDudYfLXIks5ma9hSB0tQRn2uxiJS5h5mOW0/lD/LT5fos+R7jkQ/l5Yxn8VZaRspMGmV3F0bgJH6PK81RcScDvmlGQgxacmqUaX7k/AuF3saEqtT+OQ33X1s+LfZFBPt4IkMQBe2qjDssgtV41fl/etnC8/pRzC3Af30Sv6sB1DrcMA8vfwFymCf8ikRapq6dxzqo3QeLfKrJX0ROSzACCDpmDPZh1cw/aK7py5waFUeN4mIsGBWrz+f0HWAgseHIWzHQIx503OZLE2ThuON/+VsUQ92g== 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=2C47QT2h4bMPUfGiEQ1EmT7/uBhtsa8B2FgGIJ4qDYI=; b=G1trylSndNv2kCKmp361dnXM9pAlQ3ZwBPqLI1vmlNvSilVdTGykqadhTbIca2/pp//miBTCBW7Lpa7ZqqicOjPGfoiTMnNWohqVG4pWnMKX9XifBezbqRWwtHu7+6TNiZPT1kX0/JrMuWIE9Y14C8rZKJd7qh4ytljKikbKK/i3eySriVIJ0k1vLYKIQi2uE7j/Dt16/g/Vn7gVCzDGm7mH2q6BY8DEoVppawT+l30dbfGKwDYqKu/Q8QXo68g4HbuWJsPW39UefVZz0rnQjl887S2GaVpEpZIj1sx83+iaxyqJUAnOudh2qrj7YetK8bsFAeAkvaFMeWn88h1rNA== 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=2C47QT2h4bMPUfGiEQ1EmT7/uBhtsa8B2FgGIJ4qDYI=; b=mGYBobBcMRUIk2viXHomlfi2J0hHrAozHEfT6dJOUFBF1T0Nia+YzXI7zjzoq4OU8erAw/Siw66mM/4wKVAVSc7PunOwET9zjwXLcMFzmXeB9cXil9e4/+CvL2YMVyRCj7M0D2Hg1kpQaV6nqIUfy2vEMbLVRmYzL4/iwNJHKzY= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7066.namprd10.prod.outlook.com (2603:10b6:8:140::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Tue, 25 Jun 2024 19:12:14 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:14 +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" Subject: [PATCH v2 11/15] mm/mmap: Track start and end of munmap in vma_munmap_struct Date: Tue, 25 Jun 2024 15:11:41 -0400 Message-ID: <20240625191145.3382793-12-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0200.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ad::29) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|DS0PR10MB7066:EE_ X-MS-Office365-Filtering-Correlation-Id: 759bba6a-442a-4ea6-fc50-08dc954ab901 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9EcHe8MMTkNSZakHbsxcu+Z5T9D8Niv68ojbfe9B9wibT7cisT/B3akxbWel?= =?us-ascii?Q?TCGxYt3ZkTL3byKxpPcA0rW8VWAyiE7+YBfICpnMCToOMYt1dKgKEF6cOWWl?= =?us-ascii?Q?Q80pYvKAUHBS/W25mSw6GI7a7RglG3RQTXBYHxuWL2I923Wkyr3LZ1mmE/D9?= =?us-ascii?Q?P2Dg1P1DPDoxjawlVJFoRhMAHpATEoFhrTeNlidU+w67m0IHY6kahp63ncp4?= =?us-ascii?Q?BcpkBuo0b5MY19ZC3vTxT7uZQbM3ZIAa2NYKxjlkuUHgc8rEiHhIVanHYqHV?= =?us-ascii?Q?VCpeVr2FVt0xmIDy4zB8PB3lua6RFZFM+iwQYuKT86T/qijXOWRl5QLUdHPu?= =?us-ascii?Q?9XhckhgbudQWj/x1Xpu1Wt/M2wggfOkOdm8nTkQUG2aBg3MwnTl3+acniI/J?= =?us-ascii?Q?IPS2/LQ9gtRQPcbHbH1M7TYndsrvpzUjjNHmmK3hbpqCc/LfETaVXITA4CdO?= =?us-ascii?Q?PC6f0jbooCVpDqsQPCYyt/w/eRiO4sXt3oCpAPrSU1jLZxWGKk30XSYrzfcv?= =?us-ascii?Q?EP3GI6bfj+qRO1WIqfRiQKNI2QyA3c6ngiCtoSY5kczrsxYNXRhLBrD1D6RC?= =?us-ascii?Q?a09uQ+HLDqsfH7HpTJDTw/8wJTgEdOOwlDUtwkqowTDiiQwy9dyKDlNzul22?= =?us-ascii?Q?cAXH06bCm1MDyWqbbZ2yKQ0NkJlspqBpyC2dOp5T/NI5CY3Ci1M0nC9Emguh?= =?us-ascii?Q?mQvOJLJYSau+UCi+6jnQphv2Gs7NML1VfZUbRcUJrgswC0RqzDlhMW6AH3ws?= =?us-ascii?Q?55Bh4u9omCQvjFd8Q7Z3FI3+/wPbM+vkvsou2iAS/o+qnBy4vF1VtEBFa8VR?= =?us-ascii?Q?W7/BdHfOBzOdGa60l2aRFZQDWP0jpiist0SJq8jwC8MGcv/Q21c35Q3xrIZc?= =?us-ascii?Q?WbBSHjSmqZPtGLslpSbma0zgjIPATXvOGcW5uMs5lrWocUMLYo9joSGAFyvS?= =?us-ascii?Q?X9J4twNY/2/3C6XW3wqrXFMdbvwKQcNSaVNWduGugowYI1E1yRWIAUivmPTP?= =?us-ascii?Q?U9ebrmLzes8Fa3euqkofvdDwEXVVC60Z6gf7Ak9uGVPci3Uwto1J4nDWsZVt?= =?us-ascii?Q?fE0PmbxKyYG90cVqoOpajSlLwbEyniytvzQxSMMhuWuyT8iEFTg+R7c+0+Dy?= =?us-ascii?Q?BK67r56A1E6be2PpXyvmYhZ4PBa/usu5ZsrNgHwle58YfDhE2oyJJZzucgLu?= =?us-ascii?Q?dYCSLcE8QORzH2TzTDnwfKibiuQ5h5i36t6770mxNIMUlJKzTn11L3j1BWv9?= =?us-ascii?Q?mstlnb5A5rbdUGfmIzoJi1lBFFSpeBzM/QsgMceHgXzMBX1n6siSnJu4fMVV?= =?us-ascii?Q?BiYRtEhP29wfra4xCk7i7Oyo5dny748MtYWNTjLDPq1SzA=3D=3D?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yeYjv6UhBoHNMHCFp9L5I2dKDkYGW5F8q8NpO4XD6Hr/k9XXFBGjHDV/ouB2?= =?us-ascii?Q?PqV3WCGzp5JuuuvMr2xcrJnO8mqTZCvLRHpEynQQLvQw30PphEGGXw3lmPcp?= =?us-ascii?Q?3CJj44Km76/+vTfiBQFZXWQgWp1A1XUzQI7Mt6WW4k9DrS0eJ9UwSLKGyksd?= =?us-ascii?Q?8NYVhuDWFUtyaoJ2yUn+3tSnAWBC2Bv/lVxB1xEJWWRXhVaFWj2heCR+V0ED?= =?us-ascii?Q?i78z1XHZJoEK7MAn2Dq71xj6z78QMO8btCfiFSSyCDGZ1qEBe69BCw1jrXeU?= =?us-ascii?Q?FmR0XdJR5TWEtvzjKP4yv8e4E7BB4C9p2xUnJPBShEF/Bn9KPx5ZeLIcKIFs?= =?us-ascii?Q?+kbw/ddi3M+9Caap5sSWCRrtY5sciffdnmmqY0F4/oiUsKh6h1sXTeHwqjQw?= =?us-ascii?Q?vB0twwGZgUMXFPItxOxyvC/JrrIK1Jk/V/yGD33wx81HPrjHIZifl8hwlae4?= =?us-ascii?Q?LNu9NTc21iriXgRcwuUlYmh4mhB81LpDJxAfxsNVb+qfRe2X4Lw9dQLL+NJW?= =?us-ascii?Q?WAzL0bHu3hzFoPDYciMmUpx493GkA3Xfy+zi7XjCVWXo7qvw27UZnjbJNp5F?= =?us-ascii?Q?9QHHK48LP6onOZNML4h63i7hOJxWyEOeCYRc+ZWDsXYdhTkKnd3gQtgZqzuH?= =?us-ascii?Q?IHQS4OG/aLeuDrAxJAFOWCqEMybS8bsr3mZveqYPIayowVwBdP3jYimo5nbQ?= =?us-ascii?Q?cV0VDr0FJlhGkDO/CrYFkb3nP8aVNrzU4q061N1DpEYj4tsawS+ADrwK4Plz?= =?us-ascii?Q?WnjrDni0qt7CeA/G/rTJq66KsXps34qu+9cyfSn4JdEty4Ac+P59I4mhpIBK?= =?us-ascii?Q?02rmmb3cErhnYZ0+ezQSnD1sjvMSXw5DTjBKjlfVGfJlVbl8tlwKUlMVBLM2?= =?us-ascii?Q?fLm9gOr3yME0UquR2jbJ2U0ktjc3OxrIX4zl8JbwxqD3AU5ocMKMxjvYkegJ?= =?us-ascii?Q?BT0OjUvZJ/5AenEu2qeFhurQtgJv1LjSwrwa97KKs0Fl2tGx72maHJmfMhSg?= =?us-ascii?Q?02cnV7VYdnh/99+q8LPaOpalQOyWDFWSyadvquDMlPEKjQl+WsugSDX8MMyq?= =?us-ascii?Q?qtneGoWV2F9xE7dPoxcVzEfvGVuz4yis2CXHaoozVtxuqQiDtJbNFdgX6kAa?= =?us-ascii?Q?37LsKIhO3dUDRSeDDlVRLIR1j1lmLrjcoWd57nJfTpaHg1JMD1Xj95HP3tqc?= =?us-ascii?Q?xM/fA/nm8RU5mGuwYP+EwoU0DiPkaBmuTKAhHcKcRaoZLi1Dwo3Q5RV280aN?= =?us-ascii?Q?kLLOEWJEt9kWnGGcWWbJYi7y8W4ZEttSj03NpHMZae5kYsJC3YWx83nqSnnz?= =?us-ascii?Q?7o8KNyY6jbBDvOgya9RmUVIaQGwfykpBCW+NxWdDFTthn3gOvYCNwcw1PWCh?= =?us-ascii?Q?+u5dwB1595dpXiIkxu4xfVsFp61IearespTSbiE20NbyxebCRHo81uz8FBoK?= =?us-ascii?Q?RD543QZjBt3eCY3Jm04MBCZyPgiZXzfMoJxGHKzoc/JONWjF45qd3kCDYHcr?= =?us-ascii?Q?agCrCYTQg9XIGg5IcD4YqWABGqVWnVot7UN8+J0fmcWl4XYHPbEwhfreJNrZ?= =?us-ascii?Q?CxgkMxoQQODtNCyYz+K/bcOaohqVtJYRBf3pZUEBhAtRU6SbuFgq+gQORu7H?= =?us-ascii?Q?VQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: iR87Gtnr6J8DbyiTfTn5CChZSq692p1Joss7uevJmoQUcYXuYu+OgtYzDQLgHftIG1ncz7maD1cVL3HXKaDjZKleCEceHoxgXg9jB3KKmmOO5vtRFhvIc7nuxXLLpi38HGD/ZaVsDFScE0LM/EsrEtf861/cXA9CTltjWBS9IRqd7UnJjuiaLnGWtICJS91fGDe1d9fr/zN23pvBEAquycRtrfNPIQi4PuE3gZsWbIoFyuLqwk8jwPHxn6LaV2u0fYjfEno7rfmF/O1pn9x1AoD6ZKYZxbzHmcxLFZ8/EVIj2/janG46/sUxwphX9hePKgSowwR3A9WtAke1ZWYLiUACoujPUlJPvNOyIBPu/n22piI/q8VnrNCyYJ+FCtpHIjjqVmwNodzTCrRlCpXZxUadjD3i2QWvsxmJOUQKfGdQlaHI7GfJ1RWMRgSr5/TQaHD3qSScb3mpRjxrZWT4LhhaYAV+knqAlbGl4YyFjZG+JadciZgI/J+M/q/oyu4fKS9NbLx6t+CZtaj3LT4xwL73wK8bgpUP63GWMt9y5CGCofsa8l/Infg+IeMi5BeqRYtbI5VF5KXW2fzb7O+LbXzB0sI36XaapE0hxXbELaI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 759bba6a-442a-4ea6-fc50-08dc954ab901 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:14.4733 (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: LlYM+ZHEVeUfW8yNKNJEn49BFB39K7q4xMpRwawlk79XVEhDeF5HNkaGIMMDKtB/Ygr9dQNpztsLDqejpWFvoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7066 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: vHLokLqYuztwhig7wlvafLp5p9ScFa0i X-Proofpoint-ORIG-GUID: vHLokLqYuztwhig7wlvafLp5p9ScFa0i Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Set the start and end address for munmap when the prev and next are gathered. This is needed to avoid incorrect addresses being used during the vms_complete_munmap_vmas() function if the prev/next vma are expanded. Signed-off-by: Liam R. Howlett --- mm/internal.h | 2 ++ mm/mmap.c | 13 +++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 90cab15c3b81..b0300cb22353 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1492,6 +1492,8 @@ struct vma_munmap_struct { struct list_head *uf; /* Userfaultfd list_head */ unsigned long start; /* Aligned start addr */ unsigned long end; /* Aligned end addr */ + unsigned long unmap_start; + unsigned long unmap_end; int vma_count; /* Number of vmas that will be removed */ unsigned long nr_pages; /* Number of pages being removed */ unsigned long locked_vm; /* Number of locked pages */ diff --git a/mm/mmap.c b/mm/mmap.c index ecf55d32e804..5efcba084e12 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -525,6 +525,8 @@ static inline void init_vma_munmap(struct vma_munmap_st= ruct *vms, vms->vma_count =3D 0; vms->nr_pages =3D vms->locked_vm =3D vms->nr_accounted =3D 0; vms->exec_vm =3D vms->stack_vm =3D vms->data_vm =3D 0; + vms->unmap_start =3D FIRST_USER_ADDRESS; + vms->unmap_end =3D USER_PGTABLES_CEILING; } =20 /* @@ -2409,9 +2411,7 @@ static void unmap_region(struct mm_struct *mm, struct= ma_state *mas, update_hiwater_rss(mm); unmap_vmas(&tlb, mas, vma, start, end, tree_end, mm_wr_locked); mas_set(mas, mt_start); - free_pgtables(&tlb, mas, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS, - next ? next->vm_start : USER_PGTABLES_CEILING, - mm_wr_locked); + free_pgtables(&tlb, mas, vma, start, end, mm_wr_locked); tlb_finish_mmu(&tlb); } =20 @@ -2637,7 +2637,8 @@ static void vms_complete_munmap_vmas(struct vma_munma= p_struct *vms, */ mas_set(mas_detach, 1); unmap_region(mm, mas_detach, vms->vma, vms->prev, vms->next, - vms->start, vms->end, vms->vma_count, !vms->unlock); + vms->unmap_start, vms->unmap_end, vms->vma_count, + !vms->unlock); /* Update high watermark before we lower total_vm */ update_hiwater_vm(mm); /* Stat accounting */ @@ -2699,6 +2700,8 @@ static int vms_gather_munmap_vmas(struct vma_munmap_s= truct *vms, goto start_split_failed; } vms->prev =3D vma_prev(vms->vmi); + if (vms->prev) + vms->unmap_start =3D vms->prev->vm_end; =20 /* * Detach a range of VMAs from the mm. Using next as a temp variable as @@ -2757,6 +2760,8 @@ static int vms_gather_munmap_vmas(struct vma_munmap_s= truct *vms, } =20 vms->next =3D vma_next(vms->vmi); + if (vms->next) + vms->unmap_end =3D vms->next->vm_start; =20 #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 71D3517F366 for ; Tue, 25 Jun 2024 19:12:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342756; cv=fail; b=HQf/dLCHTNOwZKJuSivg7/ymurkMPNwjCbG3cEKFIweRMfRsAILq+5LilKLjFkxWdsJ3h3r2Rz9HGZJ5Mwps+IVf24JRTKxPtFfQiUfrr9w6U4Duwe4v9KqwsnLpHwPiyoERazyN2Eo3gf4m7wsKOveSPyGks+pWRXT5/aL3zj0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342756; c=relaxed/simple; bh=KG07OMTJgswQ4LqEAyXDfqrnVIzFlABhf39+nv6Ew6A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lS49I7NYd35Ve9PlOnltxcTQPkr6cJBanWkpxpME2L1ySg6l5aIq/IInRzYNU/TBL6Jrv9kDKucnIZnVERrZYxqu/ZZwjV55qIB1Y1/RWhGo4G5jDV5kz6uemie8sDjxXCbl7q8fPpJaWWjWJKD7106rlNwbheJgRZorUhxq0Vc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=N30n1JsA; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=T+k4qvWb; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="N30n1JsA"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="T+k4qvWb" 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 45PIfWwb021417; Tue, 25 Jun 2024 19:12:19 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=FLMzwSR29XDWPEQnsWekUcq8E8clYAdUu5IUQ/x0/to=; b= N30n1JsAtjsfzqvZv3QCX+Sew8ns1puamUD4Z2qNSKSqOfR2EwZFq5rkNdMjwCmX ioTLoNfW78VZXCUsS6P8gBO0ypWUB7jGgCvCMAFPmXXISHWW20alq6mnpzw2uuxn ZwjSgrZjZHoUXnxIcddhz31Wzmwv2CXZxSPcZquJKiebuyr+jawkuKbmeSLCoWYQ +gCJesQ/RxinCan8UVx6leFNrS5uAsrt+5j9r6d8ydoQ+3LQMoPNUmI1XgqgdThd qhJsOkqObPYWLiGdEeP0+HZibyaSsF/fNdCNvfQTaUt82C3OhUV5E96bVikQQhdL QRBX54/xOypTgQOR2pHOUw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywpg99avj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:19 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PIUOx7001333; Tue, 25 Jun 2024 19:12:18 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2040.outbound.protection.outlook.com [104.47.73.40]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn28rcbr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HNv0TkiuWW5STURQAvbbZkmMzeVXtnRGNWuPrkFFM4gUMG5S/iD0jVlG/Z/y6zq9fnNRtKLrUQ+gs7rE86EIbjtU4qdtqoyjQRpUrugMrnuZYUP3kK9oIKjmlQD9lDz1BRg9RMmaM1VmsKTiVtDQctDHvMBHzfw4+PnxEVgldeaY3Z5VYuQwySDF0tp5BgzEPofrzlvKl0ucUTqJbwQK0tAnsTOxs5DXHnN9bPCk8qC3fmyxrH8oS5ESzYSN/y8OOpJkDTHl8/EV1CFsMPr+c8nMgnhxPfEGQsJXIpcpsrnr0KAs+8ru3gsOAthc1hwdQY5DPbfBJznk3WwwVSMIrg== 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=FLMzwSR29XDWPEQnsWekUcq8E8clYAdUu5IUQ/x0/to=; b=OnJtgjRAIU9acT7TdH0ppe6qJ9BMtb3B7hvl195QBntlCVjHhPHg5pbK1nvqycbAR41CBhggcbwXOJASaVSePay9PYQMGyJeHyY/pnrtmNA779C8BqawOP5JL+mO9Ti2zbyTivPsn72Oy98bdlocNgXmQnchQunLyg6X8DaPQEksIP9n6S0W2qmQYXxDtrf23DHZq8tPq34vIygor6OEK9coY/l5QlwkeDOxrM6Kz8SVmlVjynpGFtwSBla4GAkQdYhEIegP3owsNXH5hl90iedp6nzslgV6axKbxUZ8H6fxD6/PIZ4nyetLZF3cjjRS9z9ZYXEF1l15le5WA+CabA== 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=FLMzwSR29XDWPEQnsWekUcq8E8clYAdUu5IUQ/x0/to=; b=T+k4qvWb2e7HJ44dM3wsK7Fqiq114fVGV02rKFcxFvF7r4+Vnr7YYixjVMDzEbBleU6uPKV3d4v7K2Dnf8d9S2LQ5EmyCdkgG0SxI7ULW3R/aKFOrZo780fe3QTB4agHShFdCEovMMFSH7H5VlUJzj9Z7D94UZbQRYEnnzTDuQM= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7066.namprd10.prod.outlook.com (2603:10b6:8:140::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Tue, 25 Jun 2024 19:12:16 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:16 +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" Subject: [PATCH v2 12/15] mm/mmap: Avoid zeroing vma tree in mmap_region() Date: Tue, 25 Jun 2024 15:11:42 -0400 Message-ID: <20240625191145.3382793-13-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0199.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ad::23) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|DS0PR10MB7066:EE_ X-MS-Office365-Filtering-Correlation-Id: 83ca0bdf-217c-4db7-4f78-08dc954aba3a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?mztLcOeLkbYIIZf65nkyiSuPyUhXJmiOhpQrYKOTfcDdhUPo1VTDEadg7lI2?= =?us-ascii?Q?uJAJQ47xMUr9Lrsycj0c/yPxNxuc0PIMz71H+cd/hTP9SDtCWQywY+vftGNk?= =?us-ascii?Q?9xc5XhYIaoXWgG9R6zPBUVQoDhtsYrufww57MqfOS0OVnl7LzN7WQr0ddpa7?= =?us-ascii?Q?dJWHzbld5PyBsMXkPRSV5Xa5KeVstdby14xhgmaTSU0sksvVnDps2Z5JAS7+?= =?us-ascii?Q?ySD88J8y5cALYbNzHSNt2KwF+f72SY5Nw0gAJlHAoNOKR/MG26Gl9Un5fUBD?= =?us-ascii?Q?5ZR5sd4Ba2CDk9YZei5PVuzWl4seLcB3yhlg7y+01vn+EIUrQKqo/7QjP2B2?= =?us-ascii?Q?LBAp0oncMXYgN2/nMEVp+Q+2MAM60nnj3kgjjih3BP6nEYP6BiogXyetfUS4?= =?us-ascii?Q?gglTSxNNc99l47CSISjWNRP4CzWq6WaR2B+iy0gcA0s2r5Jc7AE7d7MdF3uQ?= =?us-ascii?Q?n3NYhLBaRsaoLXcfEABpp+meyoaWpoQ1X8nP71NoCAbe49kfCOxY1nVPeA/w?= =?us-ascii?Q?SZeg26asvZUyevp/RujKcJJ3kXQKqAO1mKQd0xi+mxDaXVEoDKzVhRnmM2Rg?= =?us-ascii?Q?CVAuDk/3Rz61bNW5GwjDLbgw2YdaS8b2YDcH8BvCAlqjUnmhxFACdna5hUmt?= =?us-ascii?Q?nB8xu60NgdoquES0okLCrrVRKlFQ7NZGU2UnCL9WSf9CJ3gyNs+sugUliivG?= =?us-ascii?Q?/nOlyahDVwInGpYEbtwfag16m1113WT/fLukVRMkgEYlz4HLBR8L287nuiu+?= =?us-ascii?Q?9zPtFRP4SG7THp3nAN+2jJCcGwvtIKwktj7uH25FTo0EJD4Y3SIpS8JmCm4I?= =?us-ascii?Q?FbXPoa9QHcs1o0pJbII0DsQu2DUvJ00xTrnGNh5xw21060jwYlX0j5euYDyd?= =?us-ascii?Q?HeO/dV/07lq6TVU8KSqcuTImVfEqXykloGLQgZJwqPe16/PNhU4RBTP0zBPz?= =?us-ascii?Q?JdtZZcfV0MGG9+yvjE8gy5uMMnHn6ZA5bltk3+Bs+I1nVjluzu9F7C09z59e?= =?us-ascii?Q?6AcVF/K9N1cd4F2mJcw4ERjE7mIpbQ1eXYtNx6i9AmwWgNUpT+KCnLkAE1B7?= =?us-ascii?Q?xFX4Bxv5hXmakTrx51YodPcsl5WU8Sr/0ic+ZwZPuskPmn9rh38oEJuHtAtO?= =?us-ascii?Q?78ddoj8dCNPdu0BVwzfwU6zGCznE2XZjp48ddKgAxxTFSOwpVqUf0lPefHqo?= =?us-ascii?Q?zUVjbYjvkBhgNHNWHomn5pLeruQWHS3ne2iWbjyr7Uyy1OeSfK09T7B8OsYz?= =?us-ascii?Q?crmLY22vgCgq5c2GGByJ08qe84krtNooWUUwtfgZnyTLpuSjteHPANWBzDmY?= =?us-ascii?Q?JcSMVweBTywR6URpwTwWGw2FohYE+i2rr4b/aysE+JEojA=3D=3D?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pHntuzeGr0OwO1l4QqReDOBX0GEFNTYvjEr4JmSeiqRZaGPvmAGUV2G7m3Ra?= =?us-ascii?Q?/zXCDQaXMbKZ+OvUTSxsY+xBOXDr7v+zMmN2RX2uBLh+v4XtvW8e2R2YXiKk?= =?us-ascii?Q?Bs8ZmgLhDlk9L6nlaggSxzk40z5ytl2hbpzrdkmQszvI8XE8TVLMLuJ+vsCB?= =?us-ascii?Q?9mC8QBEhiWQqiI1NnKtVjH1ivvxiKFCidUIoh9QUNx/296LAdTs4XaIRb2i8?= =?us-ascii?Q?6txtSYuADo4PfVyDqxdpqiVHdHnRWCGyJL0QwO2eJXFGv1FqYziGqLr5wppD?= =?us-ascii?Q?FpSVNA0iT1N68F/FcUyXovlIVct3OR8eoRZB45weGUUuCC86ze9wJpacHjtS?= =?us-ascii?Q?DmmJRBcB+z6cHf3oiY9xQUaeUnqGFHXXMzyJlqb8psViVjdYhwOYI7Q0lZeO?= =?us-ascii?Q?yZgj2a2wbk6lUoTrUugvkPWt7eMp+Fdm58HQjvHHpmChEcKm1L+v9DAq3ijR?= =?us-ascii?Q?lFuh8yoA8i2D1zHBue1MgcqvrFFifgmwA/pAENTXgEHA5zx0t68ntmKQv9ug?= =?us-ascii?Q?x0WQbPH7lAnspJgh+TSt5vYQ/2bu3qWPMnhso5vSegfZU+HXwIgA5VoCcPnx?= =?us-ascii?Q?C41rN8NNVpStRZiq8tmR6UlNtpQeflaql+b35KPIi9NtbhxKH5H+8qgNqDjq?= =?us-ascii?Q?/8blJI36brOrDwgj1FT7wu6IPplwPhp0/DOnrMDZKRQHrOuqTSu3T04wdQbp?= =?us-ascii?Q?FSytoJMBpuBzEB4ZlhrvM5YiWRl3x+d42MBFPLs42EmI1kMsbgZTVwx5QphA?= =?us-ascii?Q?mATGr23kO7dO96DePGGRtmXJMo/JJx9U7Ipv5KhMtrz7yKQUmFaKriZVdpZB?= =?us-ascii?Q?AoKOj3RSfbb23AHS9/p5Bq/fSrCy9J8vwr0myB0/Frnh9KkEsuIGgKT7IbKh?= =?us-ascii?Q?dX+gPhFuapKQvdzJPyerOzwEOAEzpY74tOu3/63kemmgGfciNaNYvO4YJYnD?= =?us-ascii?Q?XAp2lLJIPHl7046+f+mlXrAGJ0uF4A6IR58LHpT2g+9DVgFL2vjf/dx9E0tZ?= =?us-ascii?Q?tW+ELSgnEs3HuqTEoQ9HSGakd2jIGgZPqpgDFMWTdauwGyhx1ar8XOnsnDM0?= =?us-ascii?Q?GV7k0SlEChX6EL42pwNqM35RY1QZAQkX0fg+4i9vur2kAZ5IvUDKYsUfs0+c?= =?us-ascii?Q?GGNBJhmvmr1a32RTnc3cE9I1RZRlGi6iIubDH/MrNA/xjS+J4pP/L2RzAuk+?= =?us-ascii?Q?OiI6mhorrf6M3I8sLRJKDA8k211Mp/hRqTl7y0YXxYicIBx7dSjyq+YnbEw4?= =?us-ascii?Q?08p0MnObyA4rmtQkVNqtCtIaUSta7b/OuERz2XqcNkeFF2hZOAB5fxu7pYXq?= =?us-ascii?Q?UzwNBQk+Vplpwj/clfeC5PbEqxgD155Pq/PVXE+LiZ2JaM5BLM/Uf65fNs/7?= =?us-ascii?Q?2ni4MCrT/sDHs96SSoq0lSnQZvoKUA9dA4eKKkf7tdIRp4RbCcm33SyJsXPV?= =?us-ascii?Q?gvDg7P7cI5HDkmwqmq1ZSOxKIL91MUHhbsl62mkY1vCKRNv3t/sonU6/HRtZ?= =?us-ascii?Q?Db+bZBuPDeD0A+2I03I2Lxz6frDKqSXy6W5zl3YYWMXFHIr0ayvKRvXU8E6h?= =?us-ascii?Q?HutySO6fKKXD3sduvi9jCASh07mN2lkPLEmmiOypby2KwZ7oHr7jzQMn8VrC?= =?us-ascii?Q?FQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: qReHgEFtEWPdZEjALGOHJsTraNNYfpo/ddaVamY8WaGhPKh+zEmmlnXblr3NzVyhhHvubCVy+SZtOwyrBnSH06rXEdCU/iAYQQKJQDh1lRGR0tIeRcBtKgX/s1nv75mNCSt61V2zp153haSSwTNHT04U6hD2O7WfhyusQYS4vAHACFr82YSGZcepmZAhv4bm0fLSnXCX144+ABPVg/Z+vTBqEByL7Lk+fn9n0ixPB9OVszGR7d8RFQD5sigWNQoCRcdvR7oKCAZJ9YyBI1/9gakk29TVS73BiEyCYavj2lqt6xXtvRihYwo3pp1SrGRHJDB8qDHVQubiPONxWtIOCEdpcT48zf1kYxDaniDvVz1bbsbcK7CiOqedL3XuGlqXWFfBwIAOHlKbIdYFEx/C4wbkOIeAYrwjHOpm/h6RV3uCjFLy/X1Unj8wc17AY21/ozQRbdb3AAuMvLnvF88xH2zBV0ZPR78wpO31PS4DARX2wMhSao/cXXjzO4fs9Bry+UDMta+//vW16ZJTnRHwtoDfDV5fKAvF3zVHu3tiY+3ej6fmR/wohYEjbCE6yXoRaVD2guEyLLTytTKND29ZniiZ8IVgaCnDAVjNxE/taPQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83ca0bdf-217c-4db7-4f78-08dc954aba3a X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:16.5089 (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: vH32XTh5Z7R5mZ4lso04p5CVsM6DB3S5YIF8AtOa1QFaXrO2D2NfrT37KrvyOYY0H4yjAX80alNw/XKufD760Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7066 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 malwarescore=0 mlxscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-ORIG-GUID: _GK6VpiDVsHhyEHGAtwo8rCkUpBH2HzW X-Proofpoint-GUID: _GK6VpiDVsHhyEHGAtwo8rCkUpBH2HzW Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Instead of zeroing the vma tree and then overwriting the area, let the area be overwritten and then clean up the gathered vmas using vms_complete_munmap_vmas(). Temporarily keep track of the number of pages that will be removed and reduce the charged amount. This also drops the validate_mm() call in the vma_expand() function. This is necessary as it would fail since the mm map_count would be incorrect during a vma expansion, prior to the cleanup from vms_complete_munmap_vmas(). Signed-off-by: Liam R. Howlett --- mm/internal.h | 1 + mm/mmap.c | 65 +++++++++++++++++++++++++++++++-------------------- 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index b0300cb22353..2ad6310059eb 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1502,6 +1502,7 @@ struct vma_munmap_struct { unsigned long stack_vm; unsigned long data_vm; bool unlock; /* Unlock after the munmap */ + bool cleared_ptes; /* If the PTE are cleared already */ }; =20 void __meminit __init_single_page(struct page *page, unsigned long pfn, diff --git a/mm/mmap.c b/mm/mmap.c index 5efcba084e12..b7f47964aaf0 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -406,17 +406,21 @@ anon_vma_interval_tree_post_update_vma(struct vm_area= _struct *vma) } =20 static unsigned long count_vma_pages_range(struct mm_struct *mm, - unsigned long addr, unsigned long end) + unsigned long addr, unsigned long end, + unsigned long *nr_accounted) { VMA_ITERATOR(vmi, mm, addr); struct vm_area_struct *vma; unsigned long nr_pages =3D 0; =20 + *nr_accounted =3D 0; for_each_vma_range(vmi, vma, end) { unsigned long vm_start =3D max(addr, vma->vm_start); unsigned long vm_end =3D min(end, vma->vm_end); =20 nr_pages +=3D PHYS_PFN(vm_end - vm_start); + if (vma->vm_flags & VM_ACCOUNT) + *nr_accounted +=3D PHYS_PFN(vm_end - vm_start); } =20 return nr_pages; @@ -527,6 +531,7 @@ static inline void init_vma_munmap(struct vma_munmap_st= ruct *vms, vms->exec_vm =3D vms->stack_vm =3D vms->data_vm =3D 0; vms->unmap_start =3D FIRST_USER_ADDRESS; vms->unmap_end =3D USER_PGTABLES_CEILING; + vms->cleared_ptes =3D false; } =20 /* @@ -735,7 +740,6 @@ int vma_expand(struct vma_iterator *vmi, struct vm_area= _struct *vma, vma_iter_store(vmi, vma); =20 vma_complete(&vp, vmi, vma->vm_mm); - validate_mm(vma->vm_mm); return 0; =20 nomem: @@ -2631,6 +2635,8 @@ static void vms_complete_munmap_vmas(struct vma_munma= p_struct *vms, if (vms->unlock) mmap_write_downgrade(mm); =20 + if (vms->cleared_ptes) + goto cleared_ptes; /* * We can free page tables without write-locking mmap_lock because VMAs * were isolated before we downgraded mmap_lock. @@ -2639,6 +2645,7 @@ static void vms_complete_munmap_vmas(struct vma_munma= p_struct *vms, unmap_region(mm, mas_detach, vms->vma, vms->prev, vms->next, vms->unmap_start, vms->unmap_end, vms->vma_count, !vms->unlock); +cleared_ptes: /* Update high watermark before we lower total_vm */ update_hiwater_vm(mm); /* Stat accounting */ @@ -2927,24 +2934,19 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, unsigned long merge_start =3D addr, merge_end =3D end; bool writable_file_mapping =3D false; pgoff_t vm_pgoff; - int error; + int error =3D -ENOMEM; VMA_ITERATOR(vmi, mm, addr); + unsigned long nr_pages, nr_accounted; =20 - /* Check against address space limit. */ - if (!may_expand_vm(mm, vm_flags, len >> PAGE_SHIFT)) { - unsigned long nr_pages; - - /* - * MAP_FIXED may remove pages of mappings that intersects with - * requested mapping. Account for the pages it would unmap. - */ - nr_pages =3D count_vma_pages_range(mm, addr, end); - - if (!may_expand_vm(mm, vm_flags, - (len >> PAGE_SHIFT) - nr_pages)) - return -ENOMEM; - } + nr_pages =3D count_vma_pages_range(mm, addr, end, &nr_accounted); =20 + /* Check against address space limit. */ + /* + * MAP_FIXED may remove pages of mappings that intersects with requested + * mapping. Account for the pages it would unmap. + */ + if (!may_expand_vm(mm, vm_flags, (len >> PAGE_SHIFT) - nr_pages)) + return -ENOMEM; =20 if (unlikely(!can_modify_mm(mm, addr, end))) return -EPERM; @@ -2962,14 +2964,12 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, if (vms_gather_munmap_vmas(&vms, &mas_detach)) return -ENOMEM; =20 - if (vma_iter_clear_gfp(&vmi, addr, end, GFP_KERNEL)) - return -ENOMEM; - - vms_complete_munmap_vmas(&vms, &mas_detach); next =3D vms.next; prev =3D vms.prev; vma =3D NULL; } else { + /* Minimal setup of vms */ + vms.nr_pages =3D 0; next =3D vma_next(&vmi); prev =3D vma_prev(&vmi); if (prev) @@ -2981,8 +2981,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, */ if (accountable_mapping(file, vm_flags)) { charged =3D len >> PAGE_SHIFT; + charged -=3D nr_accounted; if (security_vm_enough_memory_mm(mm, charged)) - return -ENOMEM; + goto abort_munmap; + vms.nr_accounted =3D 0; vm_flags |=3D VM_ACCOUNT; } =20 @@ -3031,10 +3033,8 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, * not unmapped, but the maps are removed from the list. */ vma =3D vm_area_alloc(mm); - if (!vma) { - error =3D -ENOMEM; + if (!vma) goto unacct_error; - } =20 vma_iter_config(&vmi, addr, end); vma_set_range(vma, addr, end, pgoff); @@ -3043,6 +3043,14 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, =20 if (file) { vma->vm_file =3D get_file(file); + /* This may map PTE, so ensure there are not existing PTE */ + if (vms.nr_pages) { + mas_set(&mas_detach, 1); + unmap_region(mm, &mas_detach, vms.vma, prev, next, + vms.unmap_start, vms.unmap_end, + vms.vma_count, /*mm_wr_locked =3D */ true); + vms.cleared_ptes =3D true; + } error =3D call_mmap(file, vma); if (error) goto unmap_and_free_vma; @@ -3133,6 +3141,9 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, expanded: perf_event_mmap(vma); =20 + if (vms.nr_pages) + vms_complete_munmap_vmas(&vms, &mas_detach); + vm_stat_account(mm, vm_flags, len >> PAGE_SHIFT); if (vm_flags & VM_LOCKED) { if ((vm_flags & VM_SPECIAL) || vma_is_dax(vma) || @@ -3181,6 +3192,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, unacct_error: if (charged) vm_unacct_memory(charged); + +abort_munmap: + if (vms.nr_pages) + abort_munmap_vmas(&mas_detach); validate_mm(mm); return error; } --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4182617E8E0 for ; Tue, 25 Jun 2024 19:12:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342752; cv=fail; b=T4tDOwXArAZO2xVgwR4w9apz0QzWJqQsNimBGZn7vQdA6OQY06IrDrj+ff1oGUhSZujBSiDVKfSQLncSaXFX33CCgx1P+tvZGcuoTggOnkuUhqAUDdQ2ov7SmEo7Ab9Fm6R3im1rmp85Ipnge14doOJRZcevjiuRJcSSEPLYdQs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342752; c=relaxed/simple; bh=oDBMVYHTcYtDh4kArExKPcPSWncWOesvx1wjXsFHeSw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WyLFMnN6gHgwmX3LjYJcNa7YtDmSFeyc5cWNysPYF49vjVS2t6q613LnZasaOrNAiWwXmwUAicAf1zqOjVSPMrrUvVWucFYrDuKlXlLG00qPpnjqxWqsbEpqI/OHs3rmRQf329iw1rhNr2flZGd309hQjUuF8qamawZwueUhJNk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=UpOhjxAW; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=UXnLlavu; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="UpOhjxAW"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="UXnLlavu" 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 45PIfXbf021444; Tue, 25 Jun 2024 19:12:22 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=1pO27aodtfvC8X+gLBZpKTNrexrYAjXEivQorvyFbrQ=; b= UpOhjxAW4BbjWLH2YPy77DKK6mw3HwrM6gYp7K5hx98+Lzldd4b6wN4E9eLB0L6v uO+fO0EN74wB7prIL+cXDNOIQDKytRDHoaNgAElQN/HG3y5B0zYeLKtEyDI1Sl+F gzZtC81MbDYruaaUCos9kehrO30Ja4mB6/y+1nbgeXVgKYFwJ0REGURb6+cP0F3K AVg8VpGhcJzqX5WDjlY80RPnbqUHAQcf5q4jKHV/0btfrGDCDzZs7Lptu1m3dY7h 18NW6E7BrYaljIM3vfWoZ/vWpD/2q4XeI7vCuAtLbwL//IU2FcgbrZQxMDsJ1Udy hy32T/n8+jhP5xoq0LRbxQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywpg99avn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:22 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PIWuu7011498; Tue, 25 Jun 2024 19:12:20 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2040.outbound.protection.outlook.com [104.47.73.40]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn2egtu9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bI7IsMAlUkALICVZV47uE65hpdNqbJqOWfFOoyvD7BDWrPwH0lb6ldWkZpg9ndq+L+Z0mqR6tjIAOmg77xjHklmOZsFn1DYDZ7VkyOh+tGz+tXc3jGuknyub0AumFRqqAXAeyX7SDnB0jWVL/nbq56erKBh8xCjwrVFc0qLCNLcWTKkMlf5Q31lYfe5aCRaDisQwT1zvk5vqm/xX1EGE8WTpruHnrobG6Z7aISKvZzN9YOXI/+w3LklVdGsbE0DAsiG84K6WJZHvLc9viIdb4AdmvR9SO0zvPt0UTEKbKRi7pgI9dYv73IDzDoYVD8LLaQBCBcUPQL0ia9PDW8HuVQ== 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=1pO27aodtfvC8X+gLBZpKTNrexrYAjXEivQorvyFbrQ=; b=OzyPTK8gn0KQyFcLXpzTHmar08TcKQ0AQZJzAjNA1xCejW0k/f1LzdskogxbphqirtLWPptM7hkMiktgX/JdJrl5BrUz+OW3yzFAMb1a8+BkP/ClI1jQoZVYD8Z7ApP9JmVeJOCrzi08SnXMBFOXj4Ty0zAbg3+MIiIGuxfcv89ksoIyYhaKioNZ3z5hQjamkkPsawoKoimYRsxjMy56xpmIxAeQ3xCyeTY4hJACvy/MkQkuvIfCtdrSRcMjQsxWUJMV0ZDXeKyiz8KH3+A1WT9mHlfx7BLpn7ydSz/9afVpv7xzUmEUQ2d71diSyeoS81/emuSoRZ2BX2LacIe42Q== 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=1pO27aodtfvC8X+gLBZpKTNrexrYAjXEivQorvyFbrQ=; b=UXnLlavuGJI6Qz6uxUskuLiVgRKheu9dvuRXVv4uNR4CNVX5Wr+TFhnVNEma30TUUtS5MWhJ2LRLjYRXHy3iEBlvytI4Sn/2Yo0zLsX3ApdxYpO0gVtFbBT6mtfmQYncOcQDTj1YGmGMyc6JR0cVSnLESl1xMIhEkqLcgqs+H2k= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7066.namprd10.prod.outlook.com (2603:10b6:8:140::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Tue, 25 Jun 2024 19:12:18 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:18 +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" Subject: [PATCH v2 13/15] mm/mmap: Use PHYS_PFN in mmap_region() Date: Tue, 25 Jun 2024 15:11:43 -0400 Message-ID: <20240625191145.3382793-14-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0022.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:86::26) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|DS0PR10MB7066:EE_ X-MS-Office365-Filtering-Correlation-Id: 31b9780a-7e65-4eca-787d-08dc954abb88 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Hhu3ERdUxZxhPQbOqNZKcJjZRZFI/3UYyQ1Ym7kR8Y1NfjO3Jy03boiNHht2?= =?us-ascii?Q?lCUssHh4jg88udvP2JtjGhgAn7RUMd24HfXRHSpimraal9GKKCnY2nyZpQfj?= =?us-ascii?Q?bB2v8ulcb9OE54khW5AwaS8Ic6Q+nk45gzNwmYsrCViSYTcOQqFpDlHGieD/?= =?us-ascii?Q?iuFFesZTjWWK+yTPDtRTYmiHNqefubyUmG2kCRhSIRz2yltb3Qwr2XDfAT7h?= =?us-ascii?Q?BqxKuFI/0kqOcAvN3vHJo0f/Hk82o7gTSQvSh+Lx30V/ETyqiZsJAhIFoVnn?= =?us-ascii?Q?7EroTQVHiQAMPFWioEBWHEbi9cXt9DL2x36dpkEIISWp1Uza6FUQO9rNm51L?= =?us-ascii?Q?mk1NGrkbmF8pbmMlRhY76tRCTG2qHGOZJ0aGEIeyN+ZPHKHgCCwx6pMKru0O?= =?us-ascii?Q?0+bziIod1dl9vjRzphP1hX5LDChDJkkMWZpGD2bMLnUMtZz+rfTLYoMZeTD2?= =?us-ascii?Q?HKCPXQw5Qxi94zepfhXMr9dY5byAkFheVJqUrUaggHIJg2R4hDvzufGyr81+?= =?us-ascii?Q?MrTzmMnVUKrug7zsy3uoO1pcvqRWymQVZa0qmJmzLXsXI13w2X1ZnIiSZYA4?= =?us-ascii?Q?n13MP+ymONWK3RS2dK7ixx7ZLHyWiG0pJYnT0CF/D/GpqL8vKvZ+3sVMoZwk?= =?us-ascii?Q?6Eff4dECmgHwEwJHlN8ffrgio69udCjcVa/9Y92a8Z+MU4fEaywkKNAMSaK6?= =?us-ascii?Q?FGygn+A9n7znRX+SlctiGPL3WlJJDdQYNvmMEQ5KkD4SWkn8h7vMtPHdszvD?= =?us-ascii?Q?VBx0pooWl2P/8UymA0GECPvNDd3MlZVmkfKC9rCdxMLd+HsHTS9DPv4leiwZ?= =?us-ascii?Q?/CqPaLtYKe/yHKIHlTLsKSIBIIi76QmEVdGTrKuC9BAXngYCT3Tl0BqQHvXN?= =?us-ascii?Q?TdVY6wCLWj5aKKUk6ozVRAWWqOC0atVjuf+zN3MHp0dVMq4H8PCi0hXFEg7P?= =?us-ascii?Q?iVyVOQ1Mz5CMag1Sc2o+BKqdz0mcFfNwE5FsIqLfiIXGjYj/t6w9trqBpvSO?= =?us-ascii?Q?1wLNiQfMS8JgXUZ6LaJ8gI3YWTxU09lFjJ5WVQspZ9FjKqld5bmCXitZI5d8?= =?us-ascii?Q?BkBYTNHt8OLf7X4COL2NEcgNpqReKDvFl8ZftqcA3SoZ3xiM2G7jBnVAkfD5?= =?us-ascii?Q?dx7O63PBB2KH8NHDpwFRb/iaLCBbvUJL3ZafXKbfAaP73atMP5vTJyyelxgV?= =?us-ascii?Q?imvoDadzxyTEJeCInZc2sf8QyF2qy09/Ncojn1ILenzDMabm9KNWP/v/MXFr?= =?us-ascii?Q?GqekAD64lNFjBP6h2Xt/CylfkrzqkfePRRS9+P8o5h9PtA99mvCINo6dEa2d?= =?us-ascii?Q?EiyQT99HqiS1Styfa2BWg2eUMpjPNXhhI1fV2WZVODCLIg=3D=3D?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9ItaIP+0qm2fBoILK/dcY4VsNcp94JGEO1FqMhvfpiNreu9G4YXJgufKEns5?= =?us-ascii?Q?XbdTCES6uR5k6M6ztLyMNMWmREi4awruZ5Hj1cku9g4alZdGZ3ONaCT10nD4?= =?us-ascii?Q?8l/UQGaYP7pagM0xuRiDDrVs9zS1AHaVZKs3VVrr68BbuLCIQTgxlwezr67m?= =?us-ascii?Q?TLKp+5yXEUE/p79vN3thhPUoTwtVWtf20h+IDZ5k4Dx9807vkPZ+3qICOHjV?= =?us-ascii?Q?4XfFW3p+jGINOuijAx1qblvoAjDUjMcDZS4xBNPq99ae4a1JPTCK/h9BEcZg?= =?us-ascii?Q?kNFfItHJmhklWViIBpFDMtbq/fmwF24hXO67HhgNlBvJqgPUgJwbl5E8lFWo?= =?us-ascii?Q?yZkuxSUUkmk0SDaKTDsNT7JjD07cjnYoGZh/9txNIQtfHubi5iHUrebCXpCq?= =?us-ascii?Q?AERhf5rbxc83In0DvOLNhO7WIeWXWCAIBjA/NtOoPTC0bDG1OcdVFHSnxhs8?= =?us-ascii?Q?Je9qmBPAbp6A0XP7owl7YmtkZt7VqIarxDzcGCDSup++NmheVedN8FBUDT0x?= =?us-ascii?Q?mj20uYBdt08Y30/O8XMsgXg/yL9XCo9nnmwXTwft9Mx2w//EQyq0HzERgh+1?= =?us-ascii?Q?iU/QCWpijWZwBwIZAygKzTQLp418qouEGhO//HNxroXzEWgBRjYm6pjYOLWH?= =?us-ascii?Q?RQvV3DHpUfpzpoYxXB5iCWvEV+klJ9g2Prk3o48c/kRrmB3KjVLsYrsZY5Sp?= =?us-ascii?Q?65gfKPl42mGZ+CtCjorB+dubhcSRRKjFNt8mVwIhTTsIIctgs9bjb1MDs7eT?= =?us-ascii?Q?cH5XynQl/cuOUcKlVKDqUpIDcuFMzBUZPbdiNNhJAPja6q+YjS9VNL+xNgE7?= =?us-ascii?Q?fRT5DV0BHzFznElTtaJh6MeLa3r8z5facnabJoTxIJuixfVGYo1HabUz6kYZ?= =?us-ascii?Q?v0UY5kEzRaN2k2zVi6xLg0NamdEAvpF4Zxalac5ejNHYWES7SI+yMtblJcq5?= =?us-ascii?Q?UxsWRxF7gvuoBUSqijEOjP7/+xYzw6xTKHd3KXBT1v1xQZeGFVKDmXule/ZS?= =?us-ascii?Q?9Op1Nt7fyprvdwhYFsCj3oXVookx12CgRSglAEQzKQoQq/EbvePq58TWi+qG?= =?us-ascii?Q?U8Nwnt7aj+GBBNKabQdN9kbKQ8U10FSRjODA40EoTOsD4wcYNABIH8SWqPgf?= =?us-ascii?Q?f36cBjugkGQlfQmb0XExUeY3Ksw0fOEH+es6FH2L8bICLQS43J5uyZU31CG0?= =?us-ascii?Q?DmRw8HHEVIgLxwpDx1vXk7EQ6NB+gvPBFOYMgZq/d7FNM6l6P3norxJyH4/O?= =?us-ascii?Q?EssSqSsOpvlGj3Ppyag3KOwOzyomUw3dnGrSOuP721R0zotMctbET5AiJ9LC?= =?us-ascii?Q?JUviAYWllP8Aq7Nya4gmWlvPLkou3iy3CMNzJJN/MFs14iSSyV3Ebczt1cQS?= =?us-ascii?Q?X56hu11Z1OIpKr4kFEM1ZXC9YGSyW9/daIt65Q4waL61+KIUHDFidRINSOgF?= =?us-ascii?Q?+lCfgtAqnWUfh5zF8W6BM3Nqg87FRAfqeFePObRklu7S+yR6kbQ0zcsXPkgX?= =?us-ascii?Q?7uOviEIlqGaJSmO+S7UbCcoCWEfAPjX/hnLv3ljG8KOIlt/bskFKEHR/Xnyh?= =?us-ascii?Q?YTCdviTuqlPktiAsFfA0P35hp8RnCWH2fknw3YVPylIOTFWaTRe1nZZ0S7kC?= =?us-ascii?Q?IQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: lmOp8zGtp/vYBlqYgrzUL5H9at16r1PgZ9xoaMo9PqaD/4T/PZ4/oA4ijQmurLixNuDNjJ8f2pZkwDkdPacEC7ySTL2Pj6DSuWrq0e56/4pcvLG2W/55pRMxAeIKxAtghR7t9zr5f5PCpVSJycYLJ+dd0XTRln0J31uAJCP+0nYwnWMACHFf7ERwiC4pXPO3Ff9+YrxhPn9f/zHbEiMO+Y/ebYBsLwoU/hW3Ib4QMhBcy9PXXBkOE/z4xJkjq4CIxqX+ZS6iQHAjec7wybWz9sHJgkOOJyYoqpBLejj7DKyN2/WIEq7MyaH0V7r3pc7fgQLeDGD9DDofEwI4QmfYnV13G/G4x/o8/jr82deu2e0/ecrCNZb7DUjxtKM86X1uW+bnkoO1LIIZHu0Ln/jQbDCg5J552KY7LdXWv1PEOe5vZ2yM3CYos1PMmY5/4IIuqJkVg/22j8sGCOeAwnkug66NiO3Bzsk/ZnDZ4h8Ltqjytc68nOCqiHha5Da2YVyWNMAG3BDdL+RR4Y5pnfZlPqOgIq/YZrvDeYi3bd+v+hpBmvt7dBiDNZGo1EAOqf/S2L0P4rkYnTnyANwKUgethaxeeEPoMYyCxFiGlV5PEPE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31b9780a-7e65-4eca-787d-08dc954abb88 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:18.7167 (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: s4UPJssrBMFEdKzpU2KaubEg0Gf49c6duCKRrdG9SPu0wCiztM6gY6v8+zigYZ7BDVqDLgY3TgX55vTH1YzECA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7066 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 phishscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-ORIG-GUID: eol9UYN4NX4KRhF6moniVmPqXSffVbOv X-Proofpoint-GUID: eol9UYN4NX4KRhF6moniVmPqXSffVbOv Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Instead of shifting the length by PAGE_SIZE, use PHYS_PFN. Also use the existing local variable everywhere instead of some of the time. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index b7f47964aaf0..f3edabf83975 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2925,7 +2925,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, struct mm_struct *mm =3D current->mm; struct vm_area_struct *vma =3D NULL; struct vm_area_struct *next, *prev, *merge; - pgoff_t pglen =3D len >> PAGE_SHIFT; + pgoff_t pglen =3D PHYS_PFN(len); unsigned long charged =3D 0; struct vma_munmap_struct vms; struct ma_state mas_detach; @@ -2945,7 +2945,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, * MAP_FIXED may remove pages of mappings that intersects with requested * mapping. Account for the pages it would unmap. */ - if (!may_expand_vm(mm, vm_flags, (len >> PAGE_SHIFT) - nr_pages)) + if (!may_expand_vm(mm, vm_flags, pglen - nr_pages)) return -ENOMEM; =20 if (unlikely(!can_modify_mm(mm, addr, end))) @@ -2980,7 +2980,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, * Private writable mapping: check memory availability */ if (accountable_mapping(file, vm_flags)) { - charged =3D len >> PAGE_SHIFT; + charged =3D pglen; charged -=3D nr_accounted; if (security_vm_enough_memory_mm(mm, charged)) goto abort_munmap; @@ -3144,14 +3144,14 @@ unsigned long mmap_region(struct file *file, unsign= ed long addr, if (vms.nr_pages) vms_complete_munmap_vmas(&vms, &mas_detach); =20 - vm_stat_account(mm, vm_flags, len >> PAGE_SHIFT); + vm_stat_account(mm, vm_flags, pglen); if (vm_flags & VM_LOCKED) { if ((vm_flags & VM_SPECIAL) || vma_is_dax(vma) || is_vm_hugetlb_page(vma) || vma =3D=3D get_gate_vma(current->mm)) vm_flags_clear(vma, VM_LOCKED_MASK); else - mm->locked_vm +=3D (len >> PAGE_SHIFT); + mm->locked_vm +=3D pglen; } =20 if (file) --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E01317DE3F for ; Tue, 25 Jun 2024 19:12:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342757; cv=fail; b=FSYi3yNn5PVcwz3xLhn/1GSRRrcE1D7zzvUoiLXMNYTz5mIyJ0LONLJXbTDORoDy7eoihsRdyN7YTGm/AvVr6LVgepVTLMgsBCfQeysnVsViblLJHUBBvKSLloQhFFlwKu0XaIZ17yLzstjGw796HYMtl3/6pcjjZF+9pOlIN+0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342757; c=relaxed/simple; bh=faERbgwG4awScMgp1/a5rql57Or8EmudvQdvcGzjiuw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=nBNM+23eDqwOMn+GdgsLw4mt5zvs638nCzZ6vzjDy/+qhbz9Uf51jg+E74mVFS7KdPQWal3YUmSeMmIo2Op/Hu2eH/uJ1WlmC8q2kxCfHhluOJ5208u326pC6n7LYVlfEzTvU2qpfzNWcyxz8dnSQedlmfsy/1kc8bjx0s7UAc8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=dnoxc4zH; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=C1dFjlNX; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="dnoxc4zH"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="C1dFjlNX" 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 45PIfWwm028638; Tue, 25 Jun 2024 19:12:24 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=bcNfRGlmtr+f6hLnJ3M5/LOiANFoVZKsDxZzPTfL0ks=; b= dnoxc4zHcudVBHWNhxkFCR5bG6VebdfJWLJOlMl8HT0RXHxmRkES5Y5B2uNB3FE3 Rey+9xpLwNQm+28ynJ4R2uyoV+ytNQy60SwJC33hxIjpsI/vEol96oCXNd+gyI8Z hQMwmElZSt+By/Ld4PIfYsODc1NsjpEjRDW9jChBXJKiaLrp6Ohgh7X3loMPZ0kR lT17zUn3I6LOb8y+tgJ1INpr3f6dwwYgEWMYDTCAPsqvjEUomIjBtEAMQbdj5pEb ricMYSDWMWUHVbcjDN/Pdsk1gWB7H2NNc+d7DPq71+3zoRhInyc5VcgzEQZFitey D67scj24nKg0NY1Vm3Y10Q== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywn709j69-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:23 +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 45PJ2DjH023323; Tue, 25 Jun 2024 19:12:22 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2041.outbound.protection.outlook.com [104.47.73.41]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn2ehgg8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZT+w5GLUC4jmdp87VWsVBTDL0oLsXEz1AWEyoF2werffQ0A2dxuqZw4KZz/z93SeMsW48gl66Dx+KkOwQA6B7PaWEOPqvEkGCMr0sLKu9wRdmtwAZotwKA8ty4/hqL2eh1EHNGF2/XWFDvGAqNLLL4kAgvY4pL80I0gOlJhGAM8emFCFUFiT4HhlZ1WUEdTwTspVOgfVvdUVi4qpQtOEhkEcHldt99/LJuyWUr61fdTkiEIFJVHMRjJ5XgiOu3miclGrOK6ZlQiRK1B1d7s50xXXUeEzWqoBe2ZpIYizfE7GimKZGSluAb9KkJm7Q3FUMzBDETcr+byf22P0/pA4Gg== 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=bcNfRGlmtr+f6hLnJ3M5/LOiANFoVZKsDxZzPTfL0ks=; b=gwfnv86HPGWHCpVlP1Q2J8spL+6+5hgz1/mWBt1U9Fj412NdDZnq+CowH26pAwUjukrGytT6ZaCs9gdz8eX+ffKBSE4L4ePXOX1G7L3QedDmRLrhTJCqpjL/F7/vIxDjpCELqMM8GTrZG3uJng7Lse4egMSfQe7L5GH5p+RK3t1Ute8utW0pkfiagWc7euC1SLIiKf+JJs0/n9YEUq/VL2A+ECicSNU+ZE1GILPBngJ4OE7jTXUYtKHeqCLbixdDVuaDCjWoPC9bj4CLln2sdfVCVbWZyufWpD/OAX7IqNiXj8wH0XLGpgxTj54zaj85FRXfgG1Kz3cUnOpAIvPzoA== 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=bcNfRGlmtr+f6hLnJ3M5/LOiANFoVZKsDxZzPTfL0ks=; b=C1dFjlNXQUalLRsUiJICYvdOqkVRkJ3OvvvroJujp+yLji/VaXKaXQZY6OL0FurfDBiY+iNl/NLbyDBhqADqJoK6FkdmuLKwmrGymtJw/u6Fgn0EiJbWNNkd3O+/799BNNuwyzJ6BA1v656pRCcfjjhkqkXIjWMMRVyLaifR6RE= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7066.namprd10.prod.outlook.com (2603:10b6:8:140::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Tue, 25 Jun 2024 19:12:20 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:20 +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" Subject: [PATCH v2 14/15] mm/mmap: Use vms accounted pages in mmap_region() Date: Tue, 25 Jun 2024 15:11:44 -0400 Message-ID: <20240625191145.3382793-15-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0247.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10f::7) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|DS0PR10MB7066:EE_ X-MS-Office365-Filtering-Correlation-Id: 7d2c065a-2b4a-41b7-32f7-08dc954abca5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?QwBwg5CBpuiKKUBOTNzE4BIM1YgcPTt/iA5kJ0/rHI0zHuEGN4aqFR9hCeH2?= =?us-ascii?Q?uOFyzKeLAPsS9yJWfd1egeV8lYcVA6SeIoYGxQSbYKrt690ZKM3iFmNf1xnq?= =?us-ascii?Q?uS/9hLo+qiu2ZZDz1ythBELxursg0q+WAQfVVqkX7U7ifjn/DWzwqrgwiqok?= =?us-ascii?Q?EdR4UBwtzkeiGJ+fA5JDCCJ+MYdLCJU9YgPXBCkLgUgMyU6fTEgogCOMOhiR?= =?us-ascii?Q?8Cg2bqsSCy1w9fkF6cZoVbFEcqCKU5JddKoJJCMpZBh4IPSMVk6r15iyal/r?= =?us-ascii?Q?uHL9ehgUGJv1SxY/ylipJh/zxRer9XQybD64IoOe+zbqhjn1JkVNBmkGPZFR?= =?us-ascii?Q?64hfAIYcL3MaVGzoxKpJ1Nojp0ghmfNAJUu5vpnCsoKweJdCxuRMa1DG2eFA?= =?us-ascii?Q?shjyzOmzNe+f8t1cUSQgdMkfVkISz++hljaLED1y6x8C63P65UAP2lz8L62R?= =?us-ascii?Q?AjetP2WGyrp8O/sfeESFGRdntb5UbFvrmny+knOfvSiL7Re9lHKMSZsbJgCS?= =?us-ascii?Q?u0IfbVSCZq2z7Ze7lfFTWonzAg5AE/Q+WyqVshMCZQfpzESzLGmK7fQM19z3?= =?us-ascii?Q?iI2PE96G6tccbi7ycHB8Bcb1CvJ3juAhe/QSdVx3ovKV2KZGHuIR/m+wgBzs?= =?us-ascii?Q?q8n07LL6m57xLUZ3A5IlO/n68ubyjsBCqVMYyLh493J3n/phgz6Qkc0ZXRNw?= =?us-ascii?Q?KLGa5rO/5H+u62KO8TnoBvNoJ5mzpiqsufls9Q+MHiFk4sUJAUJgoCXS54U+?= =?us-ascii?Q?64KECdQixPhatQOBMgevffqMiXA7dA1e+A/AaUanCpcQ+S1tofwQ655yHK0R?= =?us-ascii?Q?RLJQ9XPcGs5aj5VK2C8UKBDnCvBU4NxqQlY+lrPT9gEtd2/+4v9iiDT+lIS/?= =?us-ascii?Q?BDmGAlZbyu6qnPPIwpTWzwb4JEAkckKVHvMemeXA7QKfMF+bShFw+u+Wu+MS?= =?us-ascii?Q?runipNe7HebLxEN/p2w2AuiZtEuT83mHpvfhH3JgYVg1JO1pD9J74XQGy8gT?= =?us-ascii?Q?2VAlDVhgoScj5j0jS2JTiLFIUkQPON1+0n7vliH4ezsnsV6bvuDKbLxqJZJi?= =?us-ascii?Q?twb+p+BpTF/W7qsvNT1EKp9NdaKXZnIpFZWr5PHmBPnd9uFZEzmIg/ZckupT?= =?us-ascii?Q?TFh2/tx0bXeWaU+lEDP6KKCNwxkJjrH+S/TGX+rdfqt5QUkIjYlnlWxCi1NW?= =?us-ascii?Q?2/Xeme7UL8CYt0TQCDb4n6JmwI+rXAnNgD2s/0g6EMikD1ctg/DAEbrNMvvt?= =?us-ascii?Q?xvXlbDaRZDXTxsq4F3Qt2Mzu+/CB6x5HK7L8wSdDBhfsbPFx+ckoRTKHaRMI?= =?us-ascii?Q?H9z/0WUr0sQ3oxLBxOHyWmG4QQE0XP4rdKisGvGHqIUpNg=3D=3D?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rtVbDsdnyd2AJ+wJDUpG6lUpYvDUI1Y7BHFStNxSgURqIEPY1XQKk37ZaAU5?= =?us-ascii?Q?dIwUyvckW9pDdo+83Kfe5DhutDb3uuhuI5UOJNx0UJKM6yLJsPe7MuByVuyq?= =?us-ascii?Q?mYj0TY5Rl3/3NYnWucErXdoGKNDmuRepKIZbG5FQLBvLS2WGNNSwhVeWEW0j?= =?us-ascii?Q?peYdbKPHgm3TMk9u3moO7n+1laLor4S1myLy2AKTLKQ+4gEkl7nBKXUOflfo?= =?us-ascii?Q?SHeff2NZgYM7wwzCgeAT1DSiD0gWPK0nnTYbzI3pSEBOiXDMSWef7dD9tT4Z?= =?us-ascii?Q?Bs36gLQVZw7whjKFnWFQQUSCBPPEwULVs/OeDVl7D0UExN4A+B31AHOdBCrX?= =?us-ascii?Q?1t1lRdbMSJ4wmi/XCu2/040bLx/rp1P/xQTJbSqJGir4ZaD76BgLq2aJZrsj?= =?us-ascii?Q?1e0E0gqmUjREZC7hYcDA0NBGp6VV+qU6J4cPdr/yp8d/Pqr7eEFnDH8haLJf?= =?us-ascii?Q?0wiH/qlNo7JZA9KdgEguYQ9AB78NiaK0KRFbyR2GqyU0pM0SyjANeIVHWj7Q?= =?us-ascii?Q?XiJyA5vFKQWjJ4wJRqc4o9EMzilr3x51Xbrmp037brrni3U/Z4F22a+ETyAY?= =?us-ascii?Q?aITeSf23gfvEr3+RR1L21VcSX02aaYH92An1/BOOIsXylOZ2jgLfiGNkDIf2?= =?us-ascii?Q?CSCYdGXbkFX8yGN1dmfV/mWAOHpc3DJpsf6vxQhDDOA9LNTMZeOH/U3o4sjd?= =?us-ascii?Q?kTHmFjZzaddRoLss2Kh9SZES20pvdKeec+ZxwENNJ93EassBx2tI3sZTyRtR?= =?us-ascii?Q?rohG4yej2TmN0aJsXInLTUDrfkF89eAhwKpQpPeC/wHCHpyyU2ZB25cckqD9?= =?us-ascii?Q?r4jGTF2ShOCyOEmr6sD9jyaOSTk5nNqKmcoaxQDoIID37W02kw8qyT7QGPk3?= =?us-ascii?Q?ORXFLtB5IDjfCu8ie4jK5i9zgR5jnqcPhmR2hNB68p3DXKCR8LhLN/y65g8V?= =?us-ascii?Q?ALzRz9gwFCVjQrry85usH7NvNFp+SBFkHoX+j3nQVpngYrgOB8Sh6mgVR0aE?= =?us-ascii?Q?bKEgfL9qJZGlNZysf9vlNvmqSMo3xv1l+U+yoDZJB55XkUdKNl/RHCE9+mP/?= =?us-ascii?Q?ehWYkkILcLyHPvkpHIX07Ke2Vh456Yg7fEgZkeJ0OTnPHpuHesmpwEuZ/A4M?= =?us-ascii?Q?Jk+yNeHMUh6H5+4cNow/lOHYWYbmYdm6RaSlHyUaoO9Ia3yeGUmux5IN7fZA?= =?us-ascii?Q?k/fDtiYnK/1bZwEYMhkrMmlTOTnDe18CMiAnu0/sZyJ6q7+GXlGOM3N2sUTP?= =?us-ascii?Q?ApravNjRnhqkdeWNjiZ41t8ZLaFQ+KBFg4nC5M67V6YcOaySR5XVvEUpPvmj?= =?us-ascii?Q?wj/MDtxLoCOee5+uP4yPYKdzWVXTlk0X6DN3D7Gnb9fLnl1+DnK/DA8iynSa?= =?us-ascii?Q?VPDgGOFMM2fWNtDSGIqSeP+ydKZamuzlYK37l6vUQW9wlispR44Kr6qA2CiD?= =?us-ascii?Q?bfo0/teu4Lla9ofDakDq7CL0QzI34v8jNfP1pasZMeljx9DuX0EaLOSA1YWG?= =?us-ascii?Q?aY5e5oJfIQ1i4fuoVO3h2GkxctcIq9b3aXi47Sg6wP/nJKCS1AbcjVI97HvW?= =?us-ascii?Q?Sgpq6gWKghrpiJe56SuOwUAiBNBFz6LAXnEF/Kz1qEEIDbPZiSh/b6h0u91C?= =?us-ascii?Q?sA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YHCCUwYNiWJHRHh6+Ma/S3nEGSmTgeBmabyYNRS6Ki16ue4cbgkrltz7tn9byUdcHJCa8bBTFdRWz5LFHgbdfy3YJgH7YZE5N64eoSon//tITDzFw+x1rxmPoTOcPfKyae0ZvTyesDf2uZMUy3xuwLXW9lgEyBUr2L/IWl6XLAR/J+jupNOWepHEZDJtiVjNakS+yn5UHYzoFIQ8ryoGs9ERXvjcvQwLLdcmkBlr5S0QR9fBrcoQu50KuBiaaHx32ixWps/JNq7aNCelzW/vHUcqaWM7sL7kILiUZ98Shq0M8IdlcIrMgUVCJCMRhd3Pc18Bg58RDLAmL0f3Fyhy0L0l9MOQWP7mtRzJEpV0ZqvLAnZk/GB8XrkOOh8kTD8l2Rc+lYf/FNPSd/CbefGLaY3jXUDdWriM4PoYJ2oT3m05yOTcGAKnOfF7HbTNxywIAgQaGn1B0uGnk2ZP2lXjvnkEw3/oDRJlq+5p5cGp1uWCetHMoEWHfwXM0xFyfPwh39ea84TtpGECQSEnUnD+XUorERjlEKp0h1r6zzEydZLcdFNEmu7OfQlcx66mHnvzxwDrCvrOdVKB3tGEmNR4PWeJDH0Awv9aIgbiEN9D4j8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d2c065a-2b4a-41b7-32f7-08dc954abca5 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:20.5828 (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: oueB3we2m3KyNEp3ab7TkLBKT4ADGKcWIUTfv8aw6nwTNlGwebJvqSR3/l+I6QN2arilIz9QjkHTdbxiiUfhyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7066 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 suspectscore=0 phishscore=0 adultscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-ORIG-GUID: lLNtQOmyY7pePJyxxQzDEaY02vMZxRVE X-Proofpoint-GUID: lLNtQOmyY7pePJyxxQzDEaY02vMZxRVE Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" Change from nr_pages variable to vms.nr_accounted for the charged pages calculation. This is necessary for a future patch. This also avoids checking security_vm_enough_memory_mm() if the amount of memory won't change. Signed-off-by: Liam R. Howlett Cc: Kees Cook Reviewed-by: Kees Cook --- mm/mmap.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index f3edabf83975..adb0bb5ea344 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2970,6 +2970,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, } else { /* Minimal setup of vms */ vms.nr_pages =3D 0; + vms.nr_accounted =3D 0; next =3D vma_next(&vmi); prev =3D vma_prev(&vmi); if (prev) @@ -2981,9 +2982,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, */ if (accountable_mapping(file, vm_flags)) { charged =3D pglen; - charged -=3D nr_accounted; - if (security_vm_enough_memory_mm(mm, charged)) + charged -=3D vms.nr_accounted; + if (charged && security_vm_enough_memory_mm(mm, charged)) goto abort_munmap; + vms.nr_accounted =3D 0; vm_flags |=3D VM_ACCOUNT; } --=20 2.43.0 From nobody Wed Dec 17 21:13:29 2025 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0AB8417F505 for ; Tue, 25 Jun 2024 19:12:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342760; cv=fail; b=UjgUyRaTTHSG9f/9ji2IJY7HvBKVrON27/nKUuzX+16PSfNdF9MHCbdpE1bgyQ4J7JSxFFQgjt4SWaxfPHWdN+c31HvOaQ25v5HksmrDILSI1U2lBOaD9jpX6wtrmvqAAOx/s0PR2IA5YfK2C9/s2pcZwrP7U/NPxXvJ8bJm4N4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719342760; c=relaxed/simple; bh=qJucbtkNw9AOQjx8m8xn/D2NEjYwFmxI5xYuYj4a4OY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=XE3NGo049c0OeUUl3IDkRzvuy1uBFC99dfjJeznYz3lfQ8jbpo7VoO8nBb1iapqplCM6wkKnHxKe7rEOzURrrXspSSsTxWVuhPnbArUz0zn1Yql7MLMzBIR2eLHBgUlhCV/xvaReDptr161XOoMwRBShl+JgeYdQ8U+C19xtFbQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=DvEmCSX2; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=QBTG9ZjO; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="DvEmCSX2"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="QBTG9ZjO" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 45PIfXVb007432; Tue, 25 Jun 2024 19:12:25 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=tWeNqUha8Up1eRkUEoS52yWD3cYBN+Ju2CdS1+VKDw8=; b= DvEmCSX24jkVGARy83WJTc7JA9ZcLb8J/LeMuXpC3jwBolKzsSzcNADlXICDVdXa E/PL3gTSmizEVXPGHTULtwnpLGkUppWyOVemLJbGQm+o3SqT7YCztUWnhcZKR67W Rq3kQX6q2jy0fRDfDqKP0lTa6vbAZasIctgpg7Y1zrZ1cf2FO3axdBULSThbf5HS UBgE28Zt8FjS2DN2ZM+mXv9lKnQOl/f6q43mIkkbVy/v5yV0jTwJyvZNA0Itnzya B5nTYsDXfOMMnfyFtrWMAuZmuwd9/XTGNoT+VfJ8n2xHiNH8FoEhtABHXIXh/F4r HSuz8Yg+TgNVPY1umadwPw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ywn1d1dns-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:25 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 45PHqkok037140; Tue, 25 Jun 2024 19:12:24 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2040.outbound.protection.outlook.com [104.47.73.40]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3ywn28fjkn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 25 Jun 2024 19:12:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wc0lJZN/7AFEqZf22cYf4g95io0rEdUr/Glfy+1j0BFOIyieEDfXIVnJqcUCJJeT+5Q+58cHgXPEv0Ni+lKwHWloF31UjDCttSwXIpVFbf0Eu9c1H2mP8YAJeE2XecS60Ku+SivFE0z0rsPd9U139p0SQbBx8mgeS6pi3SWQd/Utgbai+Z2xCZsB8KY2/VQDf2i83/oRp2igoJ1Zfog9MIqBGk0rUfJAuly1EOr/YGsj3kiz+ub3PGKLlk3qnFs0TbSkI4JowOuzj8GQ1lq2mbuhLGK+VCQzXKpopuwuLyiFY8aHqgYr4eG1ivXI442pllfkw/b5a+vYZXfdjNqVmQ== 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=tWeNqUha8Up1eRkUEoS52yWD3cYBN+Ju2CdS1+VKDw8=; b=ns+PI7k7E/4P7d7B2STABjDWdLUOLM3OVfs/o4KDcg8vfXpY90nPoPDKDTB77esdXc9iFX8PLvBn93zs3TnYDImMdeRBWsrYb2pV7mOjemrpKuq4Qan9Kv9222V4GEWh4Vl7gzVYn4zUl6C5+rmDstBRBRFMUkiBgHj/Kbfu1X6k/fa7uAcuw6HVn8sJ2DdtVARvpYnOiAgmGCKWhjHlkjsJqplGXMwgjUPKk3JniePXiD1Ipg7Gx+CvssvncL0nzWXOqCt+3l3pxYqDqQaOHsLJe9qXctRRLZSbGXC/KJDh6TB+++3MhwrXF0PErzLvfGLenc9raAgZGD0ygUPmvg== 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=tWeNqUha8Up1eRkUEoS52yWD3cYBN+Ju2CdS1+VKDw8=; b=QBTG9ZjOdby1WbkPHMGP9oZ2C1IZWd/TvjRyDWjhFjvyrEilEjQSH4d/npWMo2KaJmdBc8VZXjG8xNttg5BojHwOsk7dimh+YxgAh4z3hcdS5m5633NIQGbcXRqDSh92GjEmVAzL0FxrrTsQ64qjkPk/mTf3S1ECpAfFqV5dVP4= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7066.namprd10.prod.outlook.com (2603:10b6:8:140::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.32; Tue, 25 Jun 2024 19:12:22 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%4]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 19:12:22 +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" Subject: [PATCH v2 15/15] mm/mmap: Move may_expand_vm() check in mmap_region() Date: Tue, 25 Jun 2024 15:11:45 -0400 Message-ID: <20240625191145.3382793-16-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240625191145.3382793-1-Liam.Howlett@oracle.com> References: <20240625191145.3382793-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YTBP288CA0026.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:14::39) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|DS0PR10MB7066:EE_ X-MS-Office365-Filtering-Correlation-Id: a91fc411-bbc1-4898-dc5b-08dc954abdbe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230038|366014|376012|7416012|1800799022; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?VLVtHGEQgkKPvHDM/8+NyPH8klJ4AtcPZbwKPn4qFlAszdhakyqBcEmCV9eG?= =?us-ascii?Q?lKph+vDjNAR3tu44kIBzy41WSgzaI2erEWJjt2T3dlfOuQ0TTNVZ0dZL3cff?= =?us-ascii?Q?pkar3eaU5V3Z8YRhEhBtNpc1E+d+IDwQpkmmz3P9EJ3wVdkV0kvSUrk3PFbw?= =?us-ascii?Q?pRbCf3SK8l7sKG/wiExs3DBx9JvdlfigdacBiqzVg34U/p8gKrNeJ/cWY3VV?= =?us-ascii?Q?hqMGc1h45vp9PiyYbJnr/M0qgtjfDUs7nrijLX0JmzCnyEja3EDVHI7lXUml?= =?us-ascii?Q?Ww7q4Dwb3hL4ZOkXKeshfVZogK+ihlmD/RGFVxPJMijl3u/uTZDmxB78Nxts?= =?us-ascii?Q?Q4Knr8zRRGhBFF+Nivgef5Jo5lUP5RMbqUGSF1Y+UN2y+tstYWtVjOnOqRq+?= =?us-ascii?Q?FU08jY+xyf9n3nQagz22ZymPlVwH6WdJ5noWi9U9wMrhLDgcaSEEQPuqXvDt?= =?us-ascii?Q?kjErd2EAoizs6JaEEgtlEn7ALfhQ9bdkMv9CsSpkaGEYzhLLpYzHiDNffBze?= =?us-ascii?Q?yr1SzLpqKClkpuliN6YTVzVgfZuc5Kurax5aamkeIo2qYK+uvDnXzvJm1bCO?= =?us-ascii?Q?PR4wrHnrGddNUx0gTu2LvlfU+2am8gk+gugXtiJNvmUlj3YxYRg8Kr8vcLTo?= =?us-ascii?Q?92D/cPQJ9pWpmr6zIe1XBanyoKseAGU4K8LWgrgPAAUQUgn3ImPLkPsWdj+x?= =?us-ascii?Q?2yCqUyWnstXFheUwk8n03IBIv9gOxDyrXXnFUzWkOTJSm6W9loY3JoKt+SKc?= =?us-ascii?Q?d8gmxbcjCzsgaPdruNKE8JmjM/n8PuLnLwVMJcGng3rZ+pIinUjoLNIsaP4U?= =?us-ascii?Q?h9NfsibWfZu4pnZDD8YbKwdq3e1P3joPNNP1GbpgMSlvlIOHQBeed3ZyFPiC?= =?us-ascii?Q?mbZa0FepZHLa9m8p5hFlim02hMF2XuDW8QaPTX/uSwkj3bMQG3SKJEhdtW/R?= =?us-ascii?Q?7i27/POgtHp6/FbKAH+ecp0Y9otGMZb6CRAtnkQfkeuQ0bk0u0j0GbzDP3FW?= =?us-ascii?Q?nUgH1FCjYWNF5oNnD5bUldbuFKgIiYzTqaMUpzKroQlLFjzT8wxx3JOPqBg1?= =?us-ascii?Q?BWCdr4rlx+hIuwTzKdwlNJH1RAGxB36F+GUaUh2eziNaEK+C8cebsa5HJ4Sv?= =?us-ascii?Q?ACAEVgErsxQYYKiawijqbuwDsLNo9Za5vKXldRFWQaI6AlBwJ4Us0ue0uzOI?= =?us-ascii?Q?Zw8LgiyA8uXCRGBUAYeCSe6Lht4w29QVf3j4gJaqy9UaW057blvCqgV9pCex?= =?us-ascii?Q?i6dh5yA+OxLsg8mMsQ27MH/SzwGLgVM8dMhusxkeEDYoD/I9k3MvoWKSgPTF?= =?us-ascii?Q?WTo+3zzkSgGjRE/a4yY8rZqZH7ORtrkq19GvZo6UUpAYcw=3D=3D?= 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:(13230038)(366014)(376012)(7416012)(1800799022);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8MM9aeZru+X7LJlmxesPTnfgT0eXIjal6ewRTRk6it44ErAaySARE/momXbw?= =?us-ascii?Q?9Zu6KUPLoA4uV4/LnonIiONhrsCQOXFdU9FJNVJSyiwZPTG4/YuXUuC262HK?= =?us-ascii?Q?gqrLPwWr8bp33jDsEJ5KVoUsIzZ/H606TX/m5aO0pLn1gic6qdy7+kXo0cot?= =?us-ascii?Q?k/32qGHpQrdQnKPD700o1EoiED94Nti3wm5Jf1RBgbhT4H9d1SWKyJLsuWTc?= =?us-ascii?Q?MerFsvLExekzFQ5RaK9bdn88W28a6hSQBEKBTafhJ8pHm2KJH1udXWaMuafW?= =?us-ascii?Q?HvndmM/CPjUnc0NRscEXBNZz0oUOtoBMWLoh/b9ZrA48QHSlFerB4Rfo3VQG?= =?us-ascii?Q?irycTYPoAqIU7G4ALVYqp2gvUmJebWSaRaRogPqZVXFPBmcHGR09zU1M6X41?= =?us-ascii?Q?tLU/hBYVdU5NL/7QkAYgjx+eYeTHRKD7oY+h9vXUAf/D86rkl0JoRuPcC6Fn?= =?us-ascii?Q?/PsleXLrencb/sFLwUlOEKPC5YVM7ztw0Wi31fewNMYuaxhBpoiiC9c70I9d?= =?us-ascii?Q?9ZDXhP50LfHV1qusYFCL81S11A7/iuElAu0LvnNnPpJVTKr7nIlvtLeqdgNl?= =?us-ascii?Q?TtUeM0sdNmWoD+n3dMjmK+kxbS2tEOL4M4yZ8UUP1jEF0ULnQLgK2gJ3juZ8?= =?us-ascii?Q?wQrbYnkWKwM6Brj5VaJeSnkZkYQHrvt6+cDSlyo5OzNA6nMmfPriplKWfobT?= =?us-ascii?Q?ytIJVrRHYtiD/uEAYqlt3NXH2nPLIEsnP66jX5UUwqOkJx3fHhCAMSGWtyA1?= =?us-ascii?Q?Go6ysI/EPGsg9ez6l+F0lL9oUPx5EioNT0OIXAfD8h8ko3FzQGYyoukaJndS?= =?us-ascii?Q?TLRtwZ+1zQ2Wx5oenDrCNtJU1EBq3e6W+l+g4xC0AHM2n5MZ0i7d+CYrnZPQ?= =?us-ascii?Q?BHxL9UqbRugeHsDlou77ZWVJ3NNpGf/vyw9VnSNWB7/OtVfFhuzyYh1CqHdI?= =?us-ascii?Q?CynnJyR9i8kKj3mAmD5WYp38IVKcWI5nqvfh9LBezc1XYGbEE6VtVUEWxb2s?= =?us-ascii?Q?BxIkmz4kFACCTxtan5b+mYXhast/EOIpYTy/+uO22eavuGRuEzdRkE6euCNm?= =?us-ascii?Q?87pHxXAJLHwsbNmUqOZ4GsQ3ydHj150cP9GWtVe4HoaJEp7PIPhk0eQ/YAt2?= =?us-ascii?Q?UpRGDd6JcMtK/T3ZMfO2TaoEpUmP2jSycNuPyyIUVoLR9qdskdZeH1vPkrMw?= =?us-ascii?Q?O7f6tXNY2FomyvjvZt+yEO8ZK+L6N3Pc2nI3UlDBQA5bHLn6hKqL/uBPKRfw?= =?us-ascii?Q?y7nkJqkbkEsTMqw8wP05mySjE5zTuHRu/X1KFopAovIC7+ne5Lf1iAjmmayp?= =?us-ascii?Q?cUeiZgUuHZVQSY86LRENSayOJdi06uHleMt1859r9XfPMYvhfKmsZayz2glB?= =?us-ascii?Q?83TdbmQoJbPYmVevgdEpdHmOiO1qafMggu3r9V7FdgUWCsD8ZJ8IXeyvYlWe?= =?us-ascii?Q?8u7l0USAgbNrNGnM5RQD0b0LSHuwsfgWsyxr79xEnjY1XsOV6DFuOLQOG1Lq?= =?us-ascii?Q?U4iAYLncjbpDcIHPSZHTLY+rBhbB90Af8WgfDmXl85B797szXk/ccCpqf6KP?= =?us-ascii?Q?DNwRx5jtkvWCmAgQhzoiV4pUQrrwITfy4bxqKwW/Oe8u325VjLGDURLnd4Fu?= =?us-ascii?Q?Xw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Qc41SRMMATOJYthAJauWQZD+t1Lx/9kv8OmEbHadYd1SvDQ7cpGFQEv5XnJmucA3CGT5Z5WJrNSzrMJ4pcECiQNP6+rNvsD9uE2OoEZxU3oHI3ByJrJ1ZfLMtiaZwELPbdH3fTn2UiZ3Wg39pLhC9lfsKmtXwjeIDV5s3mzPSenIDDGQgvPnKb/DE70eHCdYmV+WBKGXt9RJRNurOECIy+GXwgAUDs+IkzYvyWn/0/x/hKrd9BkKkdMwUSTiPBRFjTbBYN625TvUx8jcsuniMICEZI4LCqSW7bd80qpaM3je2RwCSLo4eBlPM70dbCfbxRIUaCRxJauFMGQCQ2O6sumg0rSlXazxq3DJIYM/39DT67TK8Mj36nk0B3qO8huqDpG15aQH+rGar2nV+cZ6bVQq0oR5LEtyFS0op1iV4zEP4n8LwAVZEXzFooDI0/E46PmlIuijZ9s71I4ebCO9f3LSdpAOOo+mbw2Tfah56t6PPw7lm743letgmZR8v5PRUesXXbf/QPtjNtZpU+FlmiVCvDX/985leP2Tvwf6K7JBQwY1XNkriF3VSd0CG/2ltFSqBBMH+cEqFbkPRrb9XBb4A/zspzBkK+vImpuyA2I= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a91fc411-bbc1-4898-dc5b-08dc954abdbe X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 19:12:22.4219 (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: 10/Ru7xxAP+NFp3SpwHoYAjTWI37cvxhKrczjU4HAQCHVgHYxrJoU2yxqr8ns4X6KzhilkIGOPK8BpOBLnQAhQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7066 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-06-25_14,2024-06-25_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2406250141 X-Proofpoint-GUID: YkfakiUomWIeKsJ98R73bpq7pu2zfHLO X-Proofpoint-ORIG-GUID: YkfakiUomWIeKsJ98R73bpq7pu2zfHLO Content-Type: text/plain; charset="utf-8" From: "Liam R. Howlett" The MAP_FIXED page count is available after the vms_gather_munmap_vmas() call, so use it instead of looping over the vmas twice. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 36 ++++-------------------------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index adb0bb5ea344..a310b05a01c2 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -405,27 +405,6 @@ anon_vma_interval_tree_post_update_vma(struct vm_area_= struct *vma) anon_vma_interval_tree_insert(avc, &avc->anon_vma->rb_root); } =20 -static unsigned long count_vma_pages_range(struct mm_struct *mm, - unsigned long addr, unsigned long end, - unsigned long *nr_accounted) -{ - VMA_ITERATOR(vmi, mm, addr); - struct vm_area_struct *vma; - unsigned long nr_pages =3D 0; - - *nr_accounted =3D 0; - for_each_vma_range(vmi, vma, end) { - unsigned long vm_start =3D max(addr, vma->vm_start); - unsigned long vm_end =3D min(end, vma->vm_end); - - nr_pages +=3D PHYS_PFN(vm_end - vm_start); - if (vma->vm_flags & VM_ACCOUNT) - *nr_accounted +=3D PHYS_PFN(vm_end - vm_start); - } - - return nr_pages; -} - static void __vma_link_file(struct vm_area_struct *vma, struct address_space *mapping) { @@ -2936,17 +2915,6 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, pgoff_t vm_pgoff; int error =3D -ENOMEM; VMA_ITERATOR(vmi, mm, addr); - unsigned long nr_pages, nr_accounted; - - nr_pages =3D count_vma_pages_range(mm, addr, end, &nr_accounted); - - /* Check against address space limit. */ - /* - * MAP_FIXED may remove pages of mappings that intersects with requested - * mapping. Account for the pages it would unmap. - */ - if (!may_expand_vm(mm, vm_flags, pglen - nr_pages)) - return -ENOMEM; =20 if (unlikely(!can_modify_mm(mm, addr, end))) return -EPERM; @@ -2977,6 +2945,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, vma_iter_next_range(&vmi); } =20 + /* Check against address space limit. */ + if (!may_expand_vm(mm, vm_flags, pglen - vms.nr_pages)) + goto abort_munmap; + /* * Private writable mapping: check memory availability */ --=20 2.43.0