From nobody Sun Feb 8 11:26:00 2026 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 BBE16E56A for ; Wed, 17 Dec 2025 12:27:57 +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=1765974479; cv=fail; b=bO7lfFS5fCIBiXi2GMyM+D1BOqNfM40lV/O6yAfnVUw6AeMIwvqzz+8eNHNRJqo//0GLh9AkEznhm0Twq/kygzWcUiH96TCSnauTuFJuHI0SYakHQYMQc1kLnWrvK0agiOsz6pssrd6bNXO79xV+cRZ1qAsEfKtgV/d16ccbigQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765974479; c=relaxed/simple; bh=fuA+RXP2vE2dGjA6pKKh18KdWVnhcsOvTVve9eTPGcY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Ya2XU1wZKh83LxduqkWA+5/3n4ZTzLDa/cctICjH5W0NobMIsfJKxLpQI674cpkONubPrCrzv17zyeOGSycTpqd8guEFksqxj1DGbCBt4GFwkCwQZBfGDpQBqpsfCzvJX7zZJ9GnTEvMOmCsMg73olGYL+FbNGCDQw+jbFAmu5g= 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=kzCw3zjg; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=kW3Da5AW; 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="kzCw3zjg"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="kW3Da5AW" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BH6O9ke2184117; Wed, 17 Dec 2025 12:27:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=5mofdfm8PzE3XZU/Dd/QGkn14JUwlGIldrCDZKmAfLA=; b= kzCw3zjgkJvnlllnp8foE1v1/53g0j/XkE697UxMUbeiXjs5BGSFwlW9be7PAQpM FwrfntNELNpWR53myMPpqAoCpbTyftAM5Ya3HOsxBdv940FE1Wvxbvm9fmeWoAsY YRhruz14PYk8usI5r/P0CJP9lMaoyrJYmSCDnD4EGr6XfLzKnG77Es4q2JsMcQgt HkceTA1Zf7lfsyNwP572sU6jwKCMiUGDkMesMv+uJ9HTnnpcoAZfLY8/pAEHrS/C e+xCbDG79IgW3weI8naMwGHlstw5V11MpoPinhv5oAZ11qTdWlVFuGNCEHG+lCT7 UBnhKQ7bsJRKbpSvdb7S2w== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b1015wryc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:25 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5BHBx2It006126; Wed, 17 Dec 2025 12:27:24 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012030.outbound.protection.outlook.com [52.101.48.30]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4b0xkegbs9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RQmpGZ5F+wIb0UZo2CCwVTsDutf+O6ZJ2haYpF1bmH6iQBtVXV0gFJQrhm/sBSXCjLZkkG9RaD/NtfmSsrC1jq2GjvXGJW8ybTRyPsBcl4/7o1nCG8hGQDNX066q20lLCZeKff52Bah+fCffUunEmpJDhJdLP693je+qCgZRkI7VnOviGik+aUoEdKBhzIX6FgMz1eOjDo5NV/x2CEzf0Ghjn1Rq6RlUGBTEcC2/ywn62rD4BDXQIdyl6xKKPIG5CosHY2gkMk1UFzDEB22oNachgaDQ61El/mKv3d30JeSir+FlmzRYazBTVsrpQJ/ex2qin2nJ5hqP0ckjuORQjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5mofdfm8PzE3XZU/Dd/QGkn14JUwlGIldrCDZKmAfLA=; b=yC0hwMKSfOgUUNJCXtvF3U0LNDQ9hAmhW8CPc/JgzN2tQT5e3UhfatpnjKdvz0H5brrU8qUUVT/vrmCFiCm6BhGi67L635ajd+UVRHKjTsGz4xmMJKCpJtddS9WJkQ7MQYHUmemaOKHuhDVANDPrtHVTMYi5gz/tDt23G+CtowMkJSeTR1b9c0A3OM6Z/573qEdbKZh9ozvDmb4haOb/BYjeHy0F3nw/SJv2SrqxKsUBMghbfC0jTU8T7qhhvTqb0sgrb3OOIeT0kiP8IxffiHHSm2gfYObE5J+5G2KI+EjG26VmTRfHvyZuuotkk0/C7+rR+xHeIn5A2gtLYvi0uA== 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=5mofdfm8PzE3XZU/Dd/QGkn14JUwlGIldrCDZKmAfLA=; b=kW3Da5AWOWLz+Wv74e6LbUOMtMrTg7vxtePrJzQ51iUf1/7Tavqw+TX1dmKFSEln3dbJpLVMth7G5Ebml1Fynmldu3MrzEBREEhNO5IIuANRXRP2/ZvzQPiMfZTcN463XCOpSsfWqj93wLjQ++3OU8MdIi76at1yWQpy1S4wNZA= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DM3PPF545856187.namprd10.prod.outlook.com (2603:10b6:f:fc00::c27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Wed, 17 Dec 2025 12:27:18 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025 12:27:18 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Suren Baghdasaryan , "Liam R . Howlett" , Vlastimil Babka , Shakeel Butt , David Hildenbrand , Rik van Riel , Harry Yoo , Jann Horn , Mike Rapoport , Michal Hocko , Pedro Falcato , Chris Li , Barry Song , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/8] mm/rmap: improve anon_vma_clone(), unlink_anon_vmas() comments, add asserts Date: Wed, 17 Dec 2025 12:27:03 +0000 Message-ID: <3acc90a8613d5e2ea8882d60b5677228e6fe624d.1765970117.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0200.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1a5::7) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) 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: DM4PR10MB8218:EE_|DM3PPF545856187:EE_ X-MS-Office365-Filtering-Correlation-Id: 13fbba9d-9705-4fb9-5df9-08de3d679ea1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wr/HcpEDB36gEXD1BrRWmp0zRzzkCDYQFM76wHQ3eXtbx4RWamuEov2Kz0U4?= =?us-ascii?Q?lHi8lnifyaaz0q3XHVsYGh0LdwOoRC6j/+FEaMrcJQiASPd8xKo6RaUN9W+3?= =?us-ascii?Q?fjxzQ5nC4cgFoIwUrAlXPkHpHX4c+XbcoQQaXWAr6PeKGF6oNir1KPkk2xa9?= =?us-ascii?Q?CeXU0pgOBVnThOREiW3vFViI0oir2K1bm+ZDFR1vl7jIP9z4Yw9dtAvuEWXY?= =?us-ascii?Q?8FCG9txlxE25dw1nCpYJ+pRWewT8Lv8/AP9ONH61LNVGN/uBnd6knCFjNfxb?= =?us-ascii?Q?/kZXnhxiseQHyE3/2NhIMOGdnz8i7ltgawDfASNp5aa+/mMM0R4a9BvihnvU?= =?us-ascii?Q?og9g5EaPJUw3yqXb1wucNpYTN9DV77mw7wRjWLL7dEuuyO82ALZaUFyGTHKq?= =?us-ascii?Q?Pz6PvlZkbvw4WgnNHEbdbZcTDB7bBhejr6ibADflPiRIMEm6JSwEDmPRWAex?= =?us-ascii?Q?FwTbXLMT+5GNPfoIgPJfPMpCnGtcndq0+ygmovDeiziQnfAXnhgt4IkK63K2?= =?us-ascii?Q?YPyP9ViDHPNY9/SxS+T1Ef23W7HV0LAfeTHBbxAYd8ckIuqOWmzWZXf7viVz?= =?us-ascii?Q?bnvQn0Id+ReOcMMfDTXL778UHj06C2M/gulQPFC4iuqDrrxssDzIRaFfCCod?= =?us-ascii?Q?eanA3ifT+/iiSvCkNokwAGD+YKotdbR/VgrMTbohzAFh8Kw1Og6EZfkVDr6K?= =?us-ascii?Q?+NkcXw9uhOQBbrzh30PI7VQfqSEk/1gJlnVSTSYLmH7Sxq/E/J9thu/+mlzF?= =?us-ascii?Q?d8JzV5BRmCy11UIflLECkui8nRg3VyrQISDdfJlv22JskHV5KdI2/0jQl5Oh?= =?us-ascii?Q?Brevh/JzkZ3/F5t3u/+XNXHcVEG489E+deB/jKQ/I5Vzb28hlnIDTWx1JmG8?= =?us-ascii?Q?W41Of8EloubyAWY8eC1bDbOsXHM5E7eC2nzzFdf59GxJNlCMeI7Sj9bLIlDx?= =?us-ascii?Q?6vUpw+HSoHWNrlDARQbJylO4qf6XEKpUpZjAPNVjVUzcXwYMSP5lVh3BTamj?= =?us-ascii?Q?ZdgC2G20sCP1M5jA5iY+3fMUs1AJumdW33sCMAF41cG/bTR6FdbcgFvW+cK9?= =?us-ascii?Q?Mfqx/LJpDOVEavAddV4hElFxJTmdhjGZRkLrqiDMNRuibU/UGWQEvBA9tT56?= =?us-ascii?Q?8ns2RM7aQFvTcXPCMNfq8/pBQkqNmplZTBVnbSv+BAPMG1jvgzNamZ5+SPzi?= =?us-ascii?Q?A/UreiTWCz622pozESNRNqotT+g4VRSxK94x+y9YmxFVeGjvzcpM2ueD5faW?= =?us-ascii?Q?QZN3dnV1jEbmKJNxZImZQaaVfZgumyzvrbok0LZsSbHjU3AblhFijup7ECyA?= =?us-ascii?Q?SdVJUDzF7qObCkiXjEsOvVjKiP4qddKEGtIZ7h533BWHVrof8ui0rdbanU8/?= =?us-ascii?Q?DAUjpI34xYOjSnm+1XGGKDiLV2nKjLcG1Stl4NeJwNyuZaSje4LvLjoBiO/N?= =?us-ascii?Q?xrl0Ax5wEqLWr5nSvVD1Hf/MdXffuRex?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kl7AvviL/8+AHZ7kYFo9/oHRSleXu4wXMgMg930dBiLBJt4qnJd16zVzV+Lt?= =?us-ascii?Q?+47BjWpMOVleMR/RRQZElNxrcQQNPXQaGkJcmZ2HXAfq/so2mOuo3LE76RDS?= =?us-ascii?Q?xHmZZKxmNXEEWsfD/92WpHD7EbmwwS03oF/HAzOg5aVG+XsraT7yJ8tS32vn?= =?us-ascii?Q?alcHuj1ZkMe+9mxlmxOGv0tU2oOhQlAQPck5zaqjoAyBRoP33FPoCKpqpe8P?= =?us-ascii?Q?0p2UjF8ItJCJeLMjkljk+6Rfn8cXuXezXCTstHl6SWUDzwpJM3P3KKf8V9Af?= =?us-ascii?Q?Hmv5lEA2tFBzdk6k9ODdSUgQe0aYTeY48DH19yNYjLfo315OB5N47l3tZ7Y3?= =?us-ascii?Q?DCgrP7KySjdpKln2j0ytHSBzPwf57FM5SJrfqX/9wWLAoW5ieD9FYHzgTAC2?= =?us-ascii?Q?GPeFUS9aUVE5ulxnZkA0Lhp7qoSjVMk0QCeBakMVoUvkwcXJEHPjXeUjNRT2?= =?us-ascii?Q?WRBF4HrtunYEmIh8nvaR7GtNfCiTSBvWVxevL9Ky5Xp8F4NxbqNchMSpq66i?= =?us-ascii?Q?ueNvw5jPOWXCbW4cJMowIAUhpBN0oUjmC2qeXwZrqfAXDI3jNbI3ut4KjUPy?= =?us-ascii?Q?xbhd7Pk4J9nKyID73VL3TSONdKMjxNiHDtXekSnhSORDac1Xfh+7aKsKZl5O?= =?us-ascii?Q?koI9pSpyZFHVjxDkvHycJpF1unZRXgyhdyrJ9pzCIA5jtK/zBSevTXiHGwCv?= =?us-ascii?Q?4lSBOBbDnOUuHgTg2W5516YfeTgUfdOq7FAhcYlzhGCrPa6QXb1tLVOQvSJ5?= =?us-ascii?Q?yGU+ax7gMvvJ8qnM1++k5ruB9+sUflsXHU6yAKDyfucmQ78a/auOJ0gXBqmA?= =?us-ascii?Q?n+9CQ2B0u/xNljdVbXwuM23Qylcd8eXka/1AstPfr0SDQh7zf3jHRG4UbJym?= =?us-ascii?Q?a6cy5Lai0jKiPqpbDGSEEQGcKonQBgAmqNk5StW1lJf04xgne2s0xITRLvA5?= =?us-ascii?Q?KSImSu/hKiRaHGVl1L+cf/BdFMG4LilWm4GId3FU21szmiwbj0KD3WosXxaa?= =?us-ascii?Q?arxvfg2Z/rQgglGIs+B3YW+NwY+T7e8hr/kml1v7A6NDHY0IyUIps91Y6Nca?= =?us-ascii?Q?rxChXHmtyJZKKkITyg0bq53y2AYGyLsI5yYduHQ5fbZroCReK3iHQLVpWXth?= =?us-ascii?Q?8mPKeql1uETX0W0jF/yIy+bmX949U4HBWz7ULCZH87bT6KVQZxhHlEZ6hryk?= =?us-ascii?Q?CWSWNGG4s9ptRSSu6a5YznQ+mjodeYwaD+poFEec8gVmY5R4ZtVAZGv8/yVR?= =?us-ascii?Q?/PmvYfQm2l4b77vikI1MCGGLWjZaidE/LPtyFFiB5+mLDLzW7Nt7/ClA0cp2?= =?us-ascii?Q?+mFGh+uLYhpCodDj2lgnpuXcM7a9/MYVO1usn9AHdUbLE2NsPtNOLTyrxRJQ?= =?us-ascii?Q?nNSyCbBR7QGXrCtOZH/JuS0zx9GJRfUEPxLgh1MBwSAAJ2hzSDLmOpyu9cZK?= =?us-ascii?Q?IHrU9HMTMD2SLb2GKd58nY8pl2e9Rs5O/rS0HrLKbfKppBdXUOoXEM+oLHWf?= =?us-ascii?Q?jxq7kHDqiKFwLQ8WjcQG2S13U6wVsAtTorX7tofbolsWVKxX4YyYsKJT8yTB?= =?us-ascii?Q?8vjL0674CKs2WZ1XzhTP+0VX78dw9a5SDG5xigjs1Un+ZIlayT0UjliDsFp5?= =?us-ascii?Q?rA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YOdMYldxZkHhORgybByTGvhPeI5KluVOpK2s2QCi/r4LmJOLV4zyrHv2sygG6rc/4mUtED20WUg+KZZgFrrExNB+CpchoACphVE5l4PN++R7Kq0F+ZkoZMmAvzx6GDGZ/zRcfaMh2aFgS5DuHMt21TRcCkqpEErygbUJ5fQaO5eF+Zesg/AYcunSivPwoMb1wShhw8zqGmZDg6nGp1m/aptKkzDDR7eh1E70vXRFAhadyjUrm8Rtxv/GuSvAh6854qaUTw2MwJA+2ihRVx8K4X7w2L9PiTb0ElVzoOCy+ie9QOCUaL8ScsU7wyBS7Ly8PfBtPyxF2g4SxtQC/GVSPWK+Ii5pCv8fLRbG7reCmb0AVOr7TntPb46LQgpCbU1kwA6XIrua4tG3TWGpeVQxF14CwlxnUo4iogo3FUeBYS1J7zdfPqFw9wM71GceGyXhMbVERm8MYFRlnNe15mOQOTVtxZVPg3ibWhIfZ9o9ij+A/NHaLS2F09Eycv2GnJ9gXFJvi1T6hEIRL23YQWdRnFEkVyf64WyxuUHboXQajXC23b4ONppqOMS+9DINmMX/QzVKMZ6wK11nj3+6EhEe5DQmTYhnpBCN/A35xAmGG0g= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 13fbba9d-9705-4fb9-5df9-08de3d679ea1 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 12:27:18.7592 (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: ZI5KmAIqZ2l+euCNoCiwhv9PZ8xXixcpvRXymb4cHb177Oml/SSscCYfjUwvcyaW7PTuhR9CHtiJsmlvug7A9ZUX2TtchsYJ0zKWsxMi2ag= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PPF545856187 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-17_01,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 adultscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000 definitions=main-2512170096 X-Proofpoint-GUID: CUytYROgTfFhmPF9jX0RSYEAeuRfvkWp X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDA5NyBTYWx0ZWRfX+hKaTECYQAKL hxCc/3nxPSbHDUYPSkhj6dc9cO6PC8YEN9BY/7pnkGCm5hbzeb15B29x9ipJZlrF3LblebfNkXU oVQoV0E9UTMW2bOZpUs23wja3xJwqd0xN/ld3Ycz7rKfWuSm2S3kkWFVxDV+qYmX6jcc8IID62Y GZnuO6o/9LAOGELpZScQi4cU9ZDPEcBL17leNUn+nfcDRl7k6tjjk++Tb7m72KgsQY9WiMriMnu Z5fkO0qu6YdRD7edw8BBxuEap4JV+Mwt0OM3cCvdnOwVVs0GmdNMFJxjeBzwQVLC5YbDgaXE4YV Gx6hwr+qtdkw4q3Rsg52PNfEt7IM5ABoU49A0jZJAowuaf2HNm5wMFprFDHlTDE6VBUb/7u2FdF KFSijMejRa34wjanEPsq9vCMi00YYAzARLd4MXMS8FypjeXd7Ac= X-Authority-Analysis: v=2.4 cv=GbUaXAXL c=1 sm=1 tr=0 ts=6942a1ad b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=5zoo0ztvSZEHwY7eWAEA:9 cc=ntf awl=host:12109 X-Proofpoint-ORIG-GUID: CUytYROgTfFhmPF9jX0RSYEAeuRfvkWp Content-Type: text/plain; charset="utf-8" Add kdoc comments, describe exactly what these functinos are used for in detail, pointing out importantly that the anon_vma_clone() !dst->anon_vma && src->anon_vma dance is ONLY for fork. Both are confusing functions that will be refactored in a subsequent patch but the first stage is establishing documentation and some invariatns. Add some basic CONFIG_DEBUG_VM asserts that help document expected state, specifically: anon_vma_clone() - mmap write lock held. - We do nothing if src VMA is not faulted. - The destination VMA has no anon_vma_chain yet. - We are always operating on the same active VMA (i.e. vma->anon-vma). - If not forking, must operate on the same mm_struct. unlink_anon_vmas() - mmap lock held (read on unmap downgraded). - That unfaulted VMAs are no-ops. Signed-off-by: Lorenzo Stoakes Reviewed-by: Liam R. Howlett --- mm/rmap.c | 82 +++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 64 insertions(+), 18 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index d6799afe1114..0e34c0a69fbc 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -257,30 +257,60 @@ static inline void unlock_anon_vma_root(struct anon_v= ma *root) up_write(&root->rwsem); } =20 -/* - * Attach the anon_vmas from src to dst. - * Returns 0 on success, -ENOMEM on failure. - * - * anon_vma_clone() is called by vma_expand(), vma_merge(), __split_vma(), - * copy_vma() and anon_vma_fork(). The first four want an exact copy of sr= c, - * while the last one, anon_vma_fork(), may try to reuse an existing anon_= vma to - * prevent endless growth of anon_vma. Since dst->anon_vma is set to NULL = before - * call, we can identify this case by checking (!dst->anon_vma && - * src->anon_vma). - * - * If (!dst->anon_vma && src->anon_vma) is true, this function tries to fi= nd - * and reuse existing anon_vma which has no vmas and only one child anon_v= ma. - * This prevents degradation of anon_vma hierarchy to endless linear chain= in - * case of constantly forking task. On the other hand, an anon_vma with mo= re - * than one child isn't reused even if there was no alive vma, thus rmap - * walker has a good chance of avoiding scanning the whole hierarchy when = it - * searches where page is mapped. +static void check_anon_vma_clone(struct vm_area_struct *dst, + struct vm_area_struct *src) +{ + /* The write lock must be held. */ + mmap_assert_write_locked(src->vm_mm); + /* If not a fork (implied by dst->anon_vma) then must be on same mm. */ + VM_WARN_ON_ONCE(dst->anon_vma && dst->vm_mm !=3D src->vm_mm); + + /* No source anon_vma is a no-op. */ + VM_WARN_ON_ONCE(!src->anon_vma && !list_empty(&src->anon_vma_chain)); + VM_WARN_ON_ONCE(!src->anon_vma && dst->anon_vma); + /* We are establishing a new anon_vma_chain. */ + VM_WARN_ON_ONCE(!list_empty(&dst->anon_vma_chain)); + /* + * On fork, dst->anon_vma is set NULL (temporarily). Otherwise, anon_vma + * must be the same across dst and src. + */ + VM_WARN_ON_ONCE(dst->anon_vma && dst->anon_vma !=3D src->anon_vma); +} + +/** + * anon_vma_clone - Establishes new anon_vma_chain objects in @dst linking= to + * all of the anon_vma objects contained within @src anon_vma_chain's. + * @dst: The destination VMA with an empty anon_vma_chain. + * @src: The source VMA we wish to duplicate. + * + * This is the heart of the VMA side of the anon_vma implementation - we i= nvoke + * this function whenever we need to set up a new VMA's anon_vma state. + * + * This is invoked for: + * + * - VMA Merge, but only when @dst is unfaulted and @src is faulted - mean= ing we + * clone @src into @dst. + * - VMA split. + * - VMA (m)remap. + * - Fork of faulted VMA. + * + * In all cases other than fork this is simply a duplication. Fork additio= nally + * adds a new active anon_vma. + * + * ONLY in the case of fork do we try to 'reuse' existing anon_vma's in an + * anon_vma hierarchy, reusing anon_vma's which have no VMA associated wit= h them + * but do have a single child. This is to avoid waste of memory when repea= tedly + * forking. + * + * Returns: 0 on success, -ENOMEM on failure. */ int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src) { struct anon_vma_chain *avc, *pavc; struct anon_vma *root =3D NULL; =20 + check_anon_vma_clone(dst, src); + list_for_each_entry_reverse(pavc, &src->anon_vma_chain, same_vma) { struct anon_vma *anon_vma; =20 @@ -392,11 +422,27 @@ int anon_vma_fork(struct vm_area_struct *vma, struct = vm_area_struct *pvma) return -ENOMEM; } =20 +/** + * unlink_anon_vmas() - remove all links between a VMA and anon_vma's, fre= eing + * anon_vma_chain objects. + * @vma: The VMA whose links to anon_vma objects is to be severed. + * + * As part of the process anon_vma_chain's are freed, + * anon_vma->num_children,num_active_vmas is updated as required and, if t= he + * relevant anon_vma references no further VMAs, its reference count is + * decremented. + */ void unlink_anon_vmas(struct vm_area_struct *vma) { struct anon_vma_chain *avc, *next; struct anon_vma *root =3D NULL; =20 + /* Always hold mmap lock, read-lock on unmap possibly. */ + mmap_assert_locked(vma->vm_mm); + + /* Unfaulted is a no-op. */ + VM_WARN_ON_ONCE(!vma->anon_vma && !list_empty(&vma->anon_vma_chain)); + /* * Unlink each anon_vma chained to the VMA. This list is ordered * from newest to oldest, ensuring the root anon_vma gets freed last. --=20 2.52.0 From nobody Sun Feb 8 11:26:00 2026 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 333D0E56A for ; Wed, 17 Dec 2025 12:28:32 +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=1765974514; cv=fail; b=oQzWNMSnZBd3N461yrseNuPU4iix1l+rB8GZOHSQ61zDnH3rYcIVfhuF3H9Gh7aCF/JkyaB49LqccBWk5jR6db+gEdcysIblYCLKXgmnXjI3iPlrvX8S3TiWj5ZD3c3lNHa/qO7Gj8kRHd5JKLvJVdErgtJLtgt3ajxFAp6xnz4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765974514; c=relaxed/simple; bh=IvA65eICwOF6ukOzE8ay6ky3boDoX0LhthXvjPpd6aM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=NYOtzVQn8PcbRAJlWG2GEePwrdLjIK58A6UM9ZjgfeEra2JqSYKID7Sqdw4XWaOT4ZX9h6bEmhI70oCoHmI11FzjnoyfLAuEM42F5X5u5C+iNrfs9u5czogdV+hyTGd5CparzUqu2jMUrI2AX3sKUEG6raS57WPNrt9UbQv+vtI= 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=W+xNnPzN; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=na18t5sZ; 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="W+xNnPzN"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="na18t5sZ" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BH6NOGX2005571; Wed, 17 Dec 2025 12:27:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=vzH6MIGQ4PvKLOXai/I5Rk/GxSJMqmynf3soODayto0=; b= W+xNnPzNu8EfVJsWzwecoGQnwa1AvZEOn6fmoigzzY6GOr/bGGilqZGrBgmCI3Vo 1RqIeh8kLaqxmijKmVs6lDeOd1ElYxAOKSAL9jn5AOpD7NCmoAf6aU7rXqJFHXHr aRM7SeEyhkUNM24sW4/ypkvrVftnVFSCD7zgpncfizOtu3opvqG2sxENvgF6J/ML LHAqYcc10t8dQdDZs26340BXYZ4BxkYThsUmrrtCzAtDp/9ZKehoYU1gRDDcQX+r B2H4Eh1tnikFiFk58mjslFD8WViiKQfPQ7qaDrZk8Tt18OgJZ3Sm0EPf2QzfEWRu uNl4HVUwLqDf1IRCj92ddA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b0xqxwv8t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:26 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5BHBx2Iu006126; Wed, 17 Dec 2025 12:27:25 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012030.outbound.protection.outlook.com [52.101.48.30]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4b0xkegbs9-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hZDJMouKCKiFnO+kZmOHGAiZOEj3UU3lctYlCUE/iawkRiPqx93MPTSaSUuPeqj8Cy0UYmGCW5G4MYNZCaQ9zFvePxemH1Bj7tG4jEIqgrWJDt0BfrQS9BaTij5/i7i7YM4xu5kChaZVaWzzLULIoBtZA6xxDsuOXHldHEapT7scwgch4Lw0hIE0U1D40fUpcQSShZu1uVHJzHXAX/8qLA9dolLt8zxvUriUEXp9RbDRE4LvO5AplWY53Jw0ixa0MRvMS/x/R5vulKAM5AtOhFwG3LQ2PZnjpVfE42/le1k+Kr2Cz7dyWYD4NxFhkhMabwrJ2E2gEDIL5lJ0WTj7HQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vzH6MIGQ4PvKLOXai/I5Rk/GxSJMqmynf3soODayto0=; b=XO8TCv1dC0bqIooXuVznGB8yvE8XIOfNXNczV612GIgXG3+DI+KT43O1mzHToorhFdznUjWZKG1XpKTGCB9iusW6/ak55BVeT08fp8cQl2C6dZTy2oY1pGnxvceU9JLfFO+4gn9Lzxm2zNxQAtD3dYpVqnlnUAcYo6kyjUQNzwXOvOIZD78/P8Xf3kVz74X6OuKIL4qNxc7m2ISrWyLfZMrhk3u06PSDLnIAe7OyqBTI/+EdiVvVmx1D9ldKoTWOCRV6OuQdhTku1/sgwVc+iE1fseFiln7ihltiTSnFQi2PDjDWn5D1+7Wnu/i56tQGHlo2XQwDrqMfJvX46QWyGw== 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=vzH6MIGQ4PvKLOXai/I5Rk/GxSJMqmynf3soODayto0=; b=na18t5sZvhkQoPqQWjs6D+ZcwgcBTs1CEs+TGXbuwD7yNt7iCJR5jmIUqDC4SZxqynzt3izxB/hpYvRT8X5aAmZ3avtn6q7cgPfBXth3jG2fF4DwmUNmEEUi94Kn0ohhRYH8HidxGJTxN83EFUyyAP5M9exAu3xPwvlY3krv0TU= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DM3PPF545856187.namprd10.prod.outlook.com (2603:10b6:f:fc00::c27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Wed, 17 Dec 2025 12:27:21 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025 12:27:21 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Suren Baghdasaryan , "Liam R . Howlett" , Vlastimil Babka , Shakeel Butt , David Hildenbrand , Rik van Riel , Harry Yoo , Jann Horn , Mike Rapoport , Michal Hocko , Pedro Falcato , Chris Li , Barry Song , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/8] mm/rmap: skip unfaulted VMAs on anon_vma clone, unlink Date: Wed, 17 Dec 2025 12:27:04 +0000 Message-ID: X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P123CA0027.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600::15) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) 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: DM4PR10MB8218:EE_|DM3PPF545856187:EE_ X-MS-Office365-Filtering-Correlation-Id: c660211b-4d01-4b36-244c-08de3d67a013 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?clnhKvt59unOzDKdXIQxqMQqhz77CnGuLT/JWbG126OPlH+1xYgKkw/xpC0X?= =?us-ascii?Q?M8FPZN49+s9N4vudAoLCK3WaFZtOSSN2uDEhYi4ZjeioStTalrLRDvdeDxgB?= =?us-ascii?Q?W/K3tiMmtZegaxofM5UCjYmjdm8ay5jQWNK3Go7EzNf4tBBsSIWv5uQkyZb2?= =?us-ascii?Q?SJZcOHVFN7eN2g05qIslTR1X4zemebwjnlkISJJ+FMVRoNNqYUHGfiS+trBq?= =?us-ascii?Q?RRKG719aKVg7zdnZMiwR/AA0fhg677iU1uU65PiQQfK+VuHlxDLaKW1zP8UJ?= =?us-ascii?Q?HPxK1HyM1mFUVkoqceMH6panFt+DvEupckJvpz1Y88RiQyqj+tC6hPo0V9EF?= =?us-ascii?Q?stVNe6JkLaW6qzkd86DOU8my6fW074zC15KWu0ve+IVqMmrbAUfD8bFwSnUv?= =?us-ascii?Q?nviypdStrbzzVIPZ2iKCfe6avkl7zFd29fySghfI4EN466VbsNA+1yIKhjmQ?= =?us-ascii?Q?1vaTQwJzWbezXChcu9Ax66HZK2GGoPRKUbQD4JWJclsgwc0oul2kW1zLWsWj?= =?us-ascii?Q?4U8AE6GsZAtTq10tcnb0lIsFssJql5LFqt2jCxgBbs9CHKjO1xC6kOWtgPcG?= =?us-ascii?Q?xjYIYktr/LLiDQuqSBGdAm0h8DQHtEjeLOwYpsP9IAxvGCIJseJuoXvAmJ+/?= =?us-ascii?Q?nEu+/ozfbHJCc/jRldbLoVGBUHTFLzkCV+tuvhAQpzTTEl8cLjZu7nJv2f/8?= =?us-ascii?Q?kgo9DnVfWA1iu2PGnsItGu5OkX2zqJJOL7zyXjKzjm7EDLwXYqUfjl1H7CUF?= =?us-ascii?Q?znZn/f2p/016C8l5UVOifFe1/AuKh0PdKxSz2nmHlt/BNB1up1DEKC4hGIWF?= =?us-ascii?Q?hlJZPQrJeUgq1U92RWsVifOV0UvTb7GiiM3HiFoP202FCME8BlxZkEWFIfsT?= =?us-ascii?Q?bAqRx5jSPxai1OP2Qsyk8MeP/mF2WfGXp6N6gllUSOauI+1Z+QEu5PnSJ5aP?= =?us-ascii?Q?3tF1SDxb1jiMmASquCGSilIlQL66vKulhQQUoVAX4g3Tys+4BlkYQPACMTNN?= =?us-ascii?Q?uBCvB4zZM8QU8ycFKj09cTLIaNUwVUYWQWp/gMiojrdxWV47oSt/qyEiuv9I?= =?us-ascii?Q?GVcpYhZhoKZpKE7J1nknqeedbFJtufaV5F0QD4Dl3JZrDurSnQKQw6vtTHxk?= =?us-ascii?Q?sMR7SOe81NflVX0bzitvYWIlS7qKE8cwjoaAlFaPTHfiZSAo17JMufwnsCXx?= =?us-ascii?Q?Z+f09mR7B2R7Shg05ggRPP52TCM+jN8t004MzsyahoE/9XaK6cirTbNOA8jM?= =?us-ascii?Q?SESvJ/E+qmPIuyoqqNapkhvjX1Wtr98jMWQdHK01XNC4SpD+0ekeaO3TNnjN?= =?us-ascii?Q?8DSXZQJuUdEDn7g06Au1CxucpDGejvml1Tn5R4oN8j5qIiUkmhOqi/lNslAo?= =?us-ascii?Q?IlTwiHLh6/R73L4hx8HWM+dLVFm+DSVw41VYJ1DtTYWZB0vLhLdy/KSNH2L5?= =?us-ascii?Q?De5UUEI+EjWRmkIJZ4FlztkV+5zejiIS?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7Uxrps+44eza9H+cBVYPkqoJrJxcx95W2mFHKEXQmzILqHsgRwwNDY1zpTOQ?= =?us-ascii?Q?CViMFVYkACsDstrP9drNHG/AqoNEYqysND0MhBuUP/0PMu/QN4x2HWxvNVGB?= =?us-ascii?Q?tS4j4sGymvOAODxnOMJmlPrQ8pP9uiZPIG3LWpnu+3hEJ3gRe4CVEqtZZw+r?= =?us-ascii?Q?3QBz3ib6hAyq41tEn1WrpjDxENBUHT0de08Ko/wh9I5IbStRO7Czi4w1yPn+?= =?us-ascii?Q?C57BviD3vs8bbBOW/GTpRDNW/P5IIPs8Hyu46gsoCbQT8pg6tpb/K4+BqqQc?= =?us-ascii?Q?DEYJpy7PsxZ8K9ml0pkOYknf022dJBzTqpDM61HexmIPXBzGv2X+yGUKnjeb?= =?us-ascii?Q?3M+oalbXm1mEq8k3sevx9dKeZPqZFkBIrx1bd2l6THkPMbobye7m1r9wa0YS?= =?us-ascii?Q?fH2nydbvs55lfD/A7bZ1RgoZU2r4aSL9a4s6wjUCF9faOk2se5fmQE6phMO4?= =?us-ascii?Q?p6tknhF2xxzJP8rmbe/HleBfAKpHlqILEDhoiZC4s67m/ysGQM8OabqcDSz0?= =?us-ascii?Q?3qYdqQMOtd6ILqu4g5+fPnIncsrkFgdwjb4dUMlOy6Pmzpq5uBzvN5GS5h5V?= =?us-ascii?Q?RZWm8GMsannoIKu5UkiqARrHWrfizmeE6MW+DT2bmYwbs1h9IPU+HUUgqj2O?= =?us-ascii?Q?Mq2Ped9dVXhrfRvGQu2AiE0sjWWTVClAFWi0vN4OLBVzxNVbHgd71Kvl14mF?= =?us-ascii?Q?Tv4rbw3Aua+RDF3kflYxktgsggT2oQQu9QjdVxW37PxHfcn2bqmVyeXOvTpx?= =?us-ascii?Q?M1lxKbKthG6jspXMaUd5MY4PBTMFOR0jsUaxGMhIKbp8O5SdXxISR+F1HqSM?= =?us-ascii?Q?m7HAe5OKCPdpy3A4tCUWE/h2bndhVDmtF16Kk56nCK58DT9x5sKxN38ALnGs?= =?us-ascii?Q?OpjKrdMs3z3kUg81v4BqCvkNmssPHZ1xIC4hDI4b5trIuIa2dUb3Uab95T96?= =?us-ascii?Q?WAB+Np9u9sVy25BjsqsaxIW8S7noTqlu98fLHoq4YcFwa+1jpXxL72+QSBRO?= =?us-ascii?Q?hAGAio/aprdkaEeGIYXiGGgXOAzboDu/F0yEr9DtWYcD0lCGoEt/PS9FTvaq?= =?us-ascii?Q?WN2L/2Kql8WwkBpfr1pYiZ72LmhbchAgoWA48OFztteTRdrd7Y9XZszxObYR?= =?us-ascii?Q?jhB00C9WqSy2I5mxy+21GLWKnxHNIArjd9U7z96BHTUqNhNAPHH7H1ueKp+f?= =?us-ascii?Q?ObbxWS3qrIbrYr9NsAYZRTGHb7laViKweM+Z18dR9pxvZzHi4+Lld463aYKx?= =?us-ascii?Q?0XYWkiWmYBsD8xsVyCh0BW8udJNwteda9Dqh7uKtMe58LHxgXvSx5L/wmwbk?= =?us-ascii?Q?eDPvP+Fro3xSjsOQdlBby5MiMa29RVakkn65YltFqcIu9VhWNFNzRW5tA5dw?= =?us-ascii?Q?qL3rC/PHYdL92S0mM3zqgvX9WgUhUBTcMPIFdkHCwGlebYc3HxBJTm9A2gn9?= =?us-ascii?Q?5coY079ugpaU6oBCKv+hz4cQszpeyZsQhVIbYA6c74SgL+04XyGzqUVn/xbl?= =?us-ascii?Q?dr0DH9IZ4gmJes1MdjvVNHnzCx7KbaGRlFnsWgMwW+4QiSVrOKWx4aDXVIbV?= =?us-ascii?Q?0ajEi9b+ZhgYlBiwiiegEnCQo2MVGXqpIf502hDyk5hOPPKk1gG8o+lpPDm8?= =?us-ascii?Q?RA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: iPHChL9eVDpuPmWF7YWADCFuEHgGILkDgh+z7nWywP2Hxqe8RKdad8gUasGIVtmghnyCNcf516t3dpeapthWh69TFigFuLAPMk244cZVi+1vXz1SKMWE4lZo8wsjpUxoTT8h7SCk20/dBK7lFH2J3yAgolqLq5CaHp14+rCKRqguC6ivQ5LYzbBb/a+re8SAr6xYv7axN/+HwgucS/BhEdDhlwF9gtMnzg5HzE1aOFqZBQ43/56RscNDmfU5KfUbnzL4xNAR12bXJbBFEyg7h3TaOfxg9mv5NKlLlxzW/45PUSp0Uq5OzLpVY5IEb4wHcBmUqNH+ic8yn/P6VeZqvuILnpKn9K1dcberm3XX55f0L6cxv7g34bWbqwCsS2Dl5qumB+BbcctUApnxzV91/p1nbNIQTYvqi4DKeIOu/QhI9gaPJfL+48+/yR+H9K2QFUsjCwv+n/cqhophXu1m3NSFcekRpQ/vuTWRfMGdhG3R5aVkb2lprKNu5IZpGaETV+XFd9jn/ZTmDg0FQhjWnhefPnpKzLn/lxfnLdxs7+LrOIhm9UsdySh3XG0fIjY3IryLiRFR+BA7XDRPJ41fRyCm14RcxtDIUViUJOt17eI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c660211b-4d01-4b36-244c-08de3d67a013 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 12:27:21.1171 (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: NcIg+6syCZDPkBO3AOq67oByd+LDEiW5dw3dbGX5JjQ0msjFtz++hxqfrx4X+2yk4Hck+JiFdcmerY72HJDYP53jmWxkehfNHO3Zjn/mmHc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PPF545856187 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-17_01,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 adultscore=0 mlxlogscore=932 mlxscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000 definitions=main-2512170096 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDA5NyBTYWx0ZWRfX3CiZwGRAwhjv b4NAsXDnDxcEHGV8S+6qQ4Ry7IA24FQqXpAL7StvzHVikD5tOZlFPOzsQeMEFoNCaXo+yq/AfFP +d6/bNH6dnx6tMe6j81H4eVXTYlK2MfuWCe7hwx5/3xL6rJRaYMy7JpaVNgsAGfLxexEo5HV9Tx KIUxo7nQQyqIlVzQFuULzdzFZuT7v2SrrLeYP5tujM4JtU5OqHjVfbaRsZmKiq0e2mWNUNR3XC6 Z3whxu+kR9p06zKyqXY7KuefQ/3I+Ds4irI2CaFjZv3Udsy80RWEOiOsIIOsVNgQN7FkoAy8+HF ENXLSj3ZS0MhIo1tkdYtmMrvv0+k32sWq04qEKguEeD6vDkXUDCpNpOT97q9XCHAX/su8AAlfYF 9TJAuBEimP5DAmvafvtQVcRhAWmP/7AoxlL4vCqCjCF89fz7chc= X-Proofpoint-GUID: E5W82Id740oAD5xKP4vnyrVrkO2MMU3J X-Proofpoint-ORIG-GUID: E5W82Id740oAD5xKP4vnyrVrkO2MMU3J X-Authority-Analysis: v=2.4 cv=BYDVE7t2 c=1 sm=1 tr=0 ts=6942a1ae b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=FTnDSsWKxMfbHRKcqXUA:9 cc=ntf awl=host:12109 Content-Type: text/plain; charset="utf-8" For both anon_vma_clone() and unlink_anon_vmas(), if the source VMA or the VMA to be linked are unfaulted (e.g. !vma->anon_vma), then the functions do nothing. Simply exit early in these cases. In the unlink_anon_vmas() case we can also remove a conditional that checks whether vma->anon_vma is set. Signed-off-by: Lorenzo Stoakes --- mm/rmap.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index 0e34c0a69fbc..9332d1cbc643 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -309,6 +309,9 @@ int anon_vma_clone(struct vm_area_struct *dst, struct v= m_area_struct *src) struct anon_vma_chain *avc, *pavc; struct anon_vma *root =3D NULL; =20 + if (!src->anon_vma) + return 0; + check_anon_vma_clone(dst, src); =20 list_for_each_entry_reverse(pavc, &src->anon_vma_chain, same_vma) { @@ -441,7 +444,8 @@ void unlink_anon_vmas(struct vm_area_struct *vma) mmap_assert_locked(vma->vm_mm); =20 /* Unfaulted is a no-op. */ - VM_WARN_ON_ONCE(!vma->anon_vma && !list_empty(&vma->anon_vma_chain)); + if (!vma->anon_vma) + return; =20 /* * Unlink each anon_vma chained to the VMA. This list is ordered @@ -465,15 +469,13 @@ void unlink_anon_vmas(struct vm_area_struct *vma) list_del(&avc->same_vma); anon_vma_chain_free(avc); } - if (vma->anon_vma) { - vma->anon_vma->num_active_vmas--; =20 - /* - * vma would still be needed after unlink, and anon_vma will be prepared - * when handle fault. - */ - vma->anon_vma =3D NULL; - } + vma->anon_vma->num_active_vmas--; + /* + * vma would still be needed after unlink, and anon_vma will be prepared + * when handle fault. + */ + vma->anon_vma =3D NULL; unlock_anon_vma_root(root); =20 /* --=20 2.52.0 From nobody Sun Feb 8 11:26:00 2026 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 ABD45E56A for ; Wed, 17 Dec 2025 12:28:56 +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=1765974538; cv=fail; b=aDWrb4rWwmQqoUXpyGi92iZ22SIphl3ZhTO/c82CjfraSH1Vem7sO6+ywHIsSk9C5Ta0Chv4W5l2LTEXyce79xyz2RI5evUmpjS8wyLP/FeOZ7TYi3+L2yP5Z5UOG9uHSWt42ZAhZcOT8Rtdza6UeykKW4INLIIvmFdCNjJB5uo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765974538; c=relaxed/simple; bh=LfQIXCwBTHegMSumf8ENkpCxt3OpbXreAp79iKts0yA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=sRlPLLiNL0A6VDcOrTLAwZbTeprH5DxaZz7CRkswA5soWgZNCjmdgvw0iC8RsWJ9QFdPYIgHenOMxVbUyg331fEdhOGOrsA5C70qeJp9h3DyRhFLFVjNeMzoHS2PNIkrulO2ZExy6q67YQFtekUT3/TalU/ffVTMn3hX+QCA78U= 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=qJZdWetk; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=RnTqRGck; 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="qJZdWetk"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="RnTqRGck" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BH6NdeS2183653; Wed, 17 Dec 2025 12:27:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=+acDuBkLHkuam8w7oPVOyuSnU9DQJQKCGuQeRlif+F8=; b= qJZdWetkXLAkEt+MY6qemsMzpyIoDkv3M5ggNMiah8blKbv23+IqJXjkPRJwxnWQ WKRT41LKNMInFru/JDq1lKV/d2SNrx6UUf0kPuZ38Z9jY2bb2oWn95BxBpJ6zSZM wc8mqiMBF+5y7pn2WxEY3ziJOW5mzIvnF24uFIVKcanQoUnBe8bPUpz4tk3CnZej EZboyNxY9f7XND7zbfeOOz5Pm7Bg/b2o1lQHcMHjkkTmHLrACTW4BferShFKrcVT gqKlg6V9HwjvPqvw36JGcYFGRqJhN8lYlKMFigW4Wv2E5/DHNlwbzTtSNNttrdXi QPwCakarSIayCbVaooq4Mg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b1015wryd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:28 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5BHBW3vx006177; Wed, 17 Dec 2025 12:27:27 GMT Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013052.outbound.protection.outlook.com [40.93.201.52]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4b0xkegbtm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yIPNnjurDU5cL8HTFlu/VDwL+Ta3PMyjaioGb0bDLJs73dXy2moJyetlZukNlk+UWstlKfr3FP7CJ+PzaBBynpUJGHv+nY41trfPHSJ5+7tMNZVr8LurpWgNWwSnBFXJrGsVBrpWVJpcT8cFLjnq6C9C6s9zplRnWpUt0BuE9AJ2V0Ji3Lau43v1In0J+yKzi/LXipY8mwPikoGJqmZg+3ywyvZNwS4cGrUiqopP6Xat9liIoWYIa3+9J+SFXj5W47n0x0vKk50fCyvG8EOFL+qvpZALCFqGjGdO+aRzXR2+OUVbln0/m01SU0EHGN8oEYFRky9lmhG2+c4qog8WzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+acDuBkLHkuam8w7oPVOyuSnU9DQJQKCGuQeRlif+F8=; b=uszXOTGslpBa8FirF09v7gAyCEF4K7Du2CLOkYJu4Ek2BEY7Ov4+JVMl8mNq39FrEapbI2aD1++vSaDYS9Z8Cfqxr0b2qfEhTgHiDdSFQFTUuo0CNFUhcarOZ8Ne2Pf18ep1kYyOtpjVZXzCS3eEvo+LBJazZtpHUIzBLb2YWA6pGnt7a+d4LqvGHn7edRWhQ24cGrGexLtGTRdGsQWUE2HGPGBcbFdwoBKC4Kg0GdAxv6FXXz0i8G7fdcJjcssMx0lSaA1SO/pPWyvURppLkATuH7cldQirZQPmivjfeQYovDcK71RX6XNHfPKe/4L3iJkP8GelEpVqrntsRfaIzg== 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=+acDuBkLHkuam8w7oPVOyuSnU9DQJQKCGuQeRlif+F8=; b=RnTqRGckg5bdGI/Pvur3HjG+ZRD9yA7B7nBmsSNDU7UtGkITcv0DAKGqC38V1kgcyFI4TJvLi+N3wv98zBeS4uNqa0dXkPXxPJKw61S1Y3xcRqR+voHk1Y6VZpuIU770YQf5e2jhTG57a/RfwOHokKVmmPdMXkK5QiaAq1xEK50= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DM3PPF545856187.namprd10.prod.outlook.com (2603:10b6:f:fc00::c27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Wed, 17 Dec 2025 12:27:23 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025 12:27:23 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Suren Baghdasaryan , "Liam R . Howlett" , Vlastimil Babka , Shakeel Butt , David Hildenbrand , Rik van Riel , Harry Yoo , Jann Horn , Mike Rapoport , Michal Hocko , Pedro Falcato , Chris Li , Barry Song , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/8] mm/rmap: remove unnecessary root lock dance in anon_vma clone, unmap Date: Wed, 17 Dec 2025 12:27:05 +0000 Message-ID: <454c0680d4fdd5504b1e90b2fdaa098bd70d4d2d.1765970117.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P123CA0054.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1::18) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) 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: DM4PR10MB8218:EE_|DM3PPF545856187:EE_ X-MS-Office365-Filtering-Correlation-Id: c9b4280b-10e5-487b-28b2-08de3d67a179 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?3HoI4G4YQa+IaPldWyvjvpmJggrMYcCtwFTwk0trw+mMbB8Gnwovc8gtDFMx?= =?us-ascii?Q?YZbguDMlNk3FD93l2fPNkNX4JiRArnPqxKtC7YtJw/VgxeET1PT6BrgrpsQ5?= =?us-ascii?Q?jJCpYr8xgh79mBgGoJnSaEPrKJfcYxiFx3jEXJkh+McKH8t1659rLuPNP2K/?= =?us-ascii?Q?NcBZDiuMi4AQRYqPSRdvH36zdbONRQCwknukg0K/VSe1ma2s21p7aAnuLcdj?= =?us-ascii?Q?8dE+0e3gsxa03tHpp20Q2UNglj/o9eBCNeNnfVjFTq+gFkpmppKybTdfiSle?= =?us-ascii?Q?MR5EPqCsc5Z3Lfb5hGDGgB07wGUrnZvUrvUyUNxScoHM2rofVWQRDjaOiSL/?= =?us-ascii?Q?7Iyk3udHEaS98DInQHmNicYKZptxZT2Ae9NfWVNvIa0/E8ajui96FRCvFOZW?= =?us-ascii?Q?oM5gRxIOQfM8+T9Pqcg0mPwOZ9Wpx1qWVX12t/TI66KOSbklz95EQ99IPk5s?= =?us-ascii?Q?V7/jfmn0BobV6GfTZ0KBsOvbMXldECh8/p+GS93gnPwOjeIf7XvVNFrEBsZb?= =?us-ascii?Q?9e/wGFVjWKFf+vBpnDRJGSyKcHHzu1fo3oZ5GgqnC+lLs1I4mQ+yrofTUJJZ?= =?us-ascii?Q?9+5LouKlamk54A4E5Ycs3dmPNu67/55whs40JR1Vi8d6kyr0LOBPc8pOHFxY?= =?us-ascii?Q?EUIjxojCnOwgtvvCQpWymcag1l9UoE1wGHQDm+BP6xKpU1kp44/KH5NCOS6V?= =?us-ascii?Q?Jk0xUWyk5e2aTT8zab6KvaX2vuaUKTIZMOHEKSNfcqtfbUR0KbvoUn6SG6/3?= =?us-ascii?Q?V87BK0db7Slfi9wg0qyourKAHkJug6ZSIQxzY+rqNBNTxC4JkVaDkmIcL+7X?= =?us-ascii?Q?97H2taCW2r1Ya37hNf/EhsdY6I7fOevXFGkMcTb/QYnoQz8U5R9wEG7Fldwe?= =?us-ascii?Q?dIArYZfAPBWBsDrdfj4IiWYuc1vOpa0sBkR1cSmIsxKqcpqGS3bL+mzMD9K8?= =?us-ascii?Q?C2MEVevMP+5S3D0B8qYLuzPntGOKWEwkBPbjsFMfOECmh84ODsEecGm7oD+o?= =?us-ascii?Q?JfmB/SdH9536ts59wPsmJqOpzRRtQ+EVZJvOSPqFyTjIR2uymoCse4plQ0oh?= =?us-ascii?Q?+Fe0F18Sau/h+YDoRfe5d8hk3J52vHNBvg/09vaBgm/KqokXIEo4sQoEE4jU?= =?us-ascii?Q?X17of+WQPnKmsPcVrUh2sq0lK6S8dvjKFmSFK5UVyCuXEVjYZeDXPq5NeZBf?= =?us-ascii?Q?vLLh9/b3hGDFSCfnQJoL19/UIDmiqK/oOYswsUs3sHhg1YhXznvFrwBfs/gk?= =?us-ascii?Q?A8iBeVjUuq4bchWk9ZxLQn6GMLt2a9DycaiLVwOJD5y3XnsiKdL+/FeQIQNZ?= =?us-ascii?Q?r7TnyxMfUpBL9jk/IQyss+3eJp4vhGqwJCmSztUM5hCNuRgbNTd7Rh2meH5V?= =?us-ascii?Q?G+U5N+6R7eyy4e2iG1fdL/FvG67C82uX14bvJC8V+EUKxhg/G2GVuPG8WFhG?= =?us-ascii?Q?S3f6sOjgt/w389bS58xIW2iJzsCY85ZP?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7egctYLeAeMg95vFEkqTkcm5t55j0w7cRAz8CPV4/VAAZim491TJ0k4Ce5B4?= =?us-ascii?Q?pK8XZ63FWmaGp2oHE3KCNR6+oz25kD6WjmUrRyayMUYMOJqpUG6ByciOzcai?= =?us-ascii?Q?ucGRm+1Gkk6Bm5I3pYlPlpNc/KVyzbDFdSXmqyEpuOx+Ri+0LaEBX3+FECT7?= =?us-ascii?Q?g7KMAceYmvxwLcSFmtivIkFfBC4m4HnUo7qHMq8xbaCApOXZ2QFUy9ENIoSb?= =?us-ascii?Q?pMF0jvPbTi+7Oq4p+P3Keqgg3w3yERjsAbaiPw0fDMu6pSEM96wNLGfmyarU?= =?us-ascii?Q?dpk/8Ia14LnMiIojndJ8BOtGarMb5e9IBaDKlL3KWhxDpSqRkGy4MykCVN1e?= =?us-ascii?Q?ErRoWJdm6BItf8bQ97cupFdCI/urXdrbblO6A7FfB1LVJm2risXaM2ve7uKp?= =?us-ascii?Q?Hj1i0nvHyCodpm1lFujPtfwiudh24vlM8Nr0YMdT5lbefvWW6JHQG+S/TRUy?= =?us-ascii?Q?aI90YvmYR5tAcOYChQM4/oydOFBFHhNbyU465o3rEDHcOheXesvDA6AHX/0q?= =?us-ascii?Q?1dUUczCS6yngmIHiHdSI97OJeYRzomE8cikne9SwjnahsXYoJYRBIZe8kwGl?= =?us-ascii?Q?zNXcfMAv19TqhxslKo8h4/HosabFkofrh4dRGv0AM+N8kW5MKqXiphR97Mxx?= =?us-ascii?Q?A9fAlCV1QteL6lJ89xDhjB13uwQ4TYCXHzHE3JFkfBIBYByoehCxt1YCBPh0?= =?us-ascii?Q?l630DmerAhNLJLJbtc0hJbZkwFLxyMqRzD124u+4icioYH4lV/zs9AKarGxB?= =?us-ascii?Q?OcqQTuZO+rAGrVUKgKLPbF/QlW/cX7uojOWRjqkqgJznIozeRpavptkR4n5s?= =?us-ascii?Q?+BMgjESi9tksfB3zZ8VPB3IM4TmcOIGMrBUfwV4n9/XTGlVHnuKNPGzW+FIm?= =?us-ascii?Q?f+NHqgZHUJxgfHhOlT0gi9CkM1YzO8qsh3b42KbH8O3Sq35KqE2IgC4b2ytP?= =?us-ascii?Q?hEQCXUorGQxayRykpjHLJtcSkF0/HKybJifJ3SmR7fsSiEfCVu58D9EEWpYN?= =?us-ascii?Q?iQmYL1p5hcnr3CSFaCC6fAw7AbhfIPVzSCEvlIAonuc0vgcop1TRO5+8D1f4?= =?us-ascii?Q?HwwMOIclVEdPoROnlWfpIicvnICjw1CO+cUI65b1+2VqR2jKUUQzmMJsNWQs?= =?us-ascii?Q?9iKIUQ9hMT31zAxeodCTO54BGcP8i/UMOl723hEqET6BjVH2AnDZZGK9OKlj?= =?us-ascii?Q?CXjN222L7p+I7PySYa8m7Wu31GOFZUdBWhUnsEq1lqQ/mHRqpAQHs79omHqy?= =?us-ascii?Q?TYZVq05Di8pW7gT2C2vMsnrnG+oeOqLSyCVYnp8zoRaFId5PtfcmKwsquuu2?= =?us-ascii?Q?hTJhc2/W6+ib9N+jt8EQATWSMQa2w64jkm4MXgTe19dv4S/t24/g59zqcZpr?= =?us-ascii?Q?q/yEq2FrldkUy0CQJzzGL3hQ55buDeu2JtKIdC/hw6hdktqEcVlG42Tldg8X?= =?us-ascii?Q?M6qtatQYuCL032nzhBmYTgvNce+e1IJcA0cfWi0PIVizjcR6spJt6SkNph00?= =?us-ascii?Q?h7CgolBljzLMBAfYaeNVlDF+AQucKP0yHGBpmaRzwZhnt7MJtphkHu6YEFwN?= =?us-ascii?Q?EapD211UTZrJYXe9zmzEGn6qbItHVrhsX9NPSR62qlSvp5LoAnA/rrUupP7Z?= =?us-ascii?Q?PQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: FwRArulS4wcrOmXIv9e9Txz9n5VamqDsGhf07cQxsw3vRozJ4tLF6Lap6cAlkXIvOVBj/MFezPijZcaJhrFC71wNsxWlvhTFEEyr+1I6jt0Tg0JMGAZ/E4btuj7LX5AJ2VmGXTekTC5MZ2cIidSnJslw4xiNQgwgcZIwsBRqzKZphWmAb4Cp9qkyaBS4a6TS1SaurE+UeX8FOcf0rgn6iVstH0drTgzMpt7dgblXkYcgRycOcgBw6igKko4YvmWG6eiV7xxQQcn5JlJQRlwK7b3r/ZCunqbQBNuFmNbqLHbrKuX77jabcwovhs4cNUiZz9qPMKGriEkctJifyrwecK6Rp0T3EOGNA1kHHmGXVhk5kecx0do94TMI11f6yUsin5MIkZ0RDT7vH1m5Aw9UauIesL7GMAGH6RF2MHznpppDthmaVSfsjacsqOpAs6KGo9qzQp/BxesHnJE67G7tm0OiRK4vw1oQOjh+raIAPlLlw/SSBYbjRRDsUW8EBGNRyNorRt9ZjpNFetLE544j84Hm7l9LP6Mcg0KDCx00FM/X+cui459N9CN8NE9Awrro1kmdu4AMHRYz4gJo+sqIv+hkOhvl0H3tvifXkrjEXA4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c9b4280b-10e5-487b-28b2-08de3d67a179 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 12:27:23.4206 (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: cf0mckEDtoGWrsRj7oD5kgWMdBjX0TfEYbrDbUZZgWZv8bxCGA0PQ6TD7msKLxnUlVKPP8kS3ZsaKBySc3qCO7XalTUGOw/7tK69J7UUS48= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PPF545856187 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-17_01,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 adultscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000 definitions=main-2512170096 X-Proofpoint-GUID: RBbAyt25UsAcQykImw1SocSSskLC6bpc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDA5NyBTYWx0ZWRfX9KO1ogMbyFKx 12P/DHR0HrexQjKgR3/mhYyQItdx3dOveEiQlfxPf7meqgXyznw+e5lv0drv7kWrbMSJZd16hzi 0rQpNR58Y9MCKrINa2G/hGMUSFUsSqlp+78zF/RUg801lBmndTkYwXru6R513mGCHYXhL8sZLNp W9/baAvcVDvS8R6683NHs6NVRbw/x2Rl9mIQCAmBPdxRic3ngMJvK4PqIr87Mb/Wtq17u2Olx2o vMBaU64WaYqTqjPam1CmZpXUuR4NT2qCYqu5sZecqU711LAfwFXDSusktqdv8cRs2fP8e+KhJJT K2A1Yk+5QGG2pjezEe1t9uiORw+0CD5zGmb0o6+V7j1w1oSBIpHcJHXn+qDCuANpI8aVNq2nFUw z4XO+uDx2KkspMeGvn46zRUOQGeBAb+NFlLV2aU2jt7qXXov2qg= X-Authority-Analysis: v=2.4 cv=GbUaXAXL c=1 sm=1 tr=0 ts=6942a1b0 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=QDGw0KozxnkV29ZdokgA:9 cc=ntf awl=host:12109 X-Proofpoint-ORIG-GUID: RBbAyt25UsAcQykImw1SocSSskLC6bpc Content-Type: text/plain; charset="utf-8" The root anon_vma of all anon_vma's linked to a VMA must by definition be the same - a VMA and all of its descendants/ancestors must exist in the same CoW chain. Commit bb4aa39676f7 ("mm: avoid repeated anon_vma lock/unlock sequences in anon_vma_clone()") introduced paranoid checking of the root anon_vma remaining the same throughout all AVC's in 2011. I think 15 years later we can safely assume that this is always the case. Additionally, since unfaulted VMAs being cloned from or unlinked are no-op's, we can simply lock the anon_vma's associated with this rather than doing any specific dance around this. This removes unnecessary checks and makes it clear that the root anon_vma is shared between all anon_vma's in a given VMA's anon_vma_chain. Signed-off-by: Lorenzo Stoakes --- mm/rmap.c | 48 ++++++++++++------------------------------------ 1 file changed, 12 insertions(+), 36 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index 9332d1cbc643..60134a566073 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -231,32 +231,6 @@ int __anon_vma_prepare(struct vm_area_struct *vma) return -ENOMEM; } =20 -/* - * This is a useful helper function for locking the anon_vma root as - * we traverse the vma->anon_vma_chain, looping over anon_vma's that - * have the same vma. - * - * Such anon_vma's should have the same root, so you'd expect to see - * just a single mutex_lock for the whole traversal. - */ -static inline struct anon_vma *lock_anon_vma_root(struct anon_vma *root, s= truct anon_vma *anon_vma) -{ - struct anon_vma *new_root =3D anon_vma->root; - if (new_root !=3D root) { - if (WARN_ON_ONCE(root)) - up_write(&root->rwsem); - root =3D new_root; - down_write(&root->rwsem); - } - return root; -} - -static inline void unlock_anon_vma_root(struct anon_vma *root) -{ - if (root) - up_write(&root->rwsem); -} - static void check_anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src) { @@ -307,26 +281,25 @@ static void check_anon_vma_clone(struct vm_area_struc= t *dst, int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src) { struct anon_vma_chain *avc, *pavc; - struct anon_vma *root =3D NULL; =20 if (!src->anon_vma) return 0; =20 check_anon_vma_clone(dst, src); =20 + anon_vma_lock_write(src->anon_vma); list_for_each_entry_reverse(pavc, &src->anon_vma_chain, same_vma) { struct anon_vma *anon_vma; =20 avc =3D anon_vma_chain_alloc(GFP_NOWAIT); if (unlikely(!avc)) { - unlock_anon_vma_root(root); - root =3D NULL; + anon_vma_unlock_write(src->anon_vma); avc =3D anon_vma_chain_alloc(GFP_KERNEL); if (!avc) goto enomem_failure; + anon_vma_lock_write(src->anon_vma); } anon_vma =3D pavc->anon_vma; - root =3D lock_anon_vma_root(root, anon_vma); anon_vma_chain_link(dst, avc, anon_vma); =20 /* @@ -343,7 +316,8 @@ int anon_vma_clone(struct vm_area_struct *dst, struct v= m_area_struct *src) } if (dst->anon_vma) dst->anon_vma->num_active_vmas++; - unlock_anon_vma_root(root); + + anon_vma_unlock_write(src->anon_vma); return 0; =20 enomem_failure: @@ -438,15 +412,17 @@ int anon_vma_fork(struct vm_area_struct *vma, struct = vm_area_struct *pvma) void unlink_anon_vmas(struct vm_area_struct *vma) { struct anon_vma_chain *avc, *next; - struct anon_vma *root =3D NULL; + struct anon_vma *active_anon_vma =3D vma->anon_vma; =20 /* Always hold mmap lock, read-lock on unmap possibly. */ mmap_assert_locked(vma->vm_mm); =20 /* Unfaulted is a no-op. */ - if (!vma->anon_vma) + if (!active_anon_vma) return; =20 + anon_vma_lock_write(active_anon_vma); + /* * Unlink each anon_vma chained to the VMA. This list is ordered * from newest to oldest, ensuring the root anon_vma gets freed last. @@ -454,7 +430,6 @@ void unlink_anon_vmas(struct vm_area_struct *vma) list_for_each_entry_safe(avc, next, &vma->anon_vma_chain, same_vma) { struct anon_vma *anon_vma =3D avc->anon_vma; =20 - root =3D lock_anon_vma_root(root, anon_vma); anon_vma_interval_tree_remove(avc, &anon_vma->rb_root); =20 /* @@ -470,13 +445,14 @@ void unlink_anon_vmas(struct vm_area_struct *vma) anon_vma_chain_free(avc); } =20 - vma->anon_vma->num_active_vmas--; + active_anon_vma->num_active_vmas--; /* * vma would still be needed after unlink, and anon_vma will be prepared * when handle fault. */ vma->anon_vma =3D NULL; - unlock_anon_vma_root(root); + anon_vma_unlock_write(active_anon_vma); + =20 /* * Iterate the list once more, it now only contains empty and unlinked --=20 2.52.0 From nobody Sun Feb 8 11:26:00 2026 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 DD04333C18E for ; Wed, 17 Dec 2025 12:29:54 +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=1765974596; cv=fail; b=YI2N2guC1JZ3CqGxza12/qisZatqypT2f/t/pDd67gMsDDOKZy/qR6tXfTDHmA49f+3kIksIXx/Yx2EnJEQh58yo8HrC4US4FJ1ccCRS0Panb1+Ek6Yz9UX/aAKXwt322ztQ1XBHvtqFtTQotweea++qZ1nmWmlOiEoAecz+Uso= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765974596; c=relaxed/simple; bh=AMTf/ZT9HpHE+6gCoLquDJNF09jaFJlQYVSxHRQxQTg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=bHHqim8oOVcPJUUEkRSdf1bhy3t6OQjwMkrTbHK1q4CiX8erSA+z8Fs4enDCiPofJgG/UqTIIVd5LwEOZ1hJcIyBuy6wZ4IDOSnABM8y0+mUI88fwlwp0NeP4pcOyxEvWlaGuRlQaV2gxUWocWO+SaaLcxrVim3TNpZsD7v6IXs= 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=Ti84PXYm; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=MbbmhJoR; 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="Ti84PXYm"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="MbbmhJoR" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BH6Ncb22068664; Wed, 17 Dec 2025 12:27:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=Rdwzbw1AZYhkqTBEqmNuIC5pJ/BKBUkdJDAB9joqWyY=; b= Ti84PXYmKRzGgcfbf5ABMjVDsF2FbWd4F4/3Rx15gEP2b+hXIwaFi647TnGGXScU mFjujhj9MoO7ImZEOPRJziTf/xMww8bQaOgR7OtBtJb/PayI5L4vA6+N1KdLBNlJ yc7+1GJfR27XoqRrjbK0vRtWJ+x2MxS5xJzQ5a13rCpiJO91LfMapOVtzCb3I8xI oedYbbPHGaUGUTjqqcI6h8UVAoerH6M6NELtFW5bRyekKNuyoSs0YAK4t792HCeO CFwnZzNNGv+RIrfMmfxsFaEfg1RiS2/CUEkoRhGW+foz7l9dsx/qhlj8jTSjfYfc Z5Spei1WDmCW8v+WMq/tug== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b10prnqu8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:29 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5BHBW3w0006177; Wed, 17 Dec 2025 12:27:27 GMT Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013052.outbound.protection.outlook.com [40.93.201.52]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4b0xkegbtm-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HrrnUMtFK7QSDY9FAPhDSDzml2AYfIqZrQ0lqkUMOLrPx9KaoTKwBeh5zu7hang8U4voW0/Ni7D2Q/lvKoGN1EBbSnn/Xn2TCk1/75HbksDMZtFSrrqCfziwrTUJCfCPiU8SRTBf1pDukGweYsu/AzXf5AE3xuerR/sP4ytCeaJx83AjX/DG22RF8croGZ8tVpPqNv5QhBEreHuCxsyqHuTwLKeRB7gSYPppG8kwTcoNcpl0BN9d8TFMBVK9xMBOQtC/hXKBi7/ELLAKVHv/YSnYe1bJ5OHvb7pOPTS93RySqcq4w2tEhxSLoGSdXwUomJtLTeAyPPzvQQgqFi5dNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Rdwzbw1AZYhkqTBEqmNuIC5pJ/BKBUkdJDAB9joqWyY=; b=QQYsEJljzgDLOyTIFh7n+7aOEd/msfc183HJC7D1sEROnlGl2EaCaxdLwmawaYwKFEPoUZndxzfOlhbXonrKSynf2q2eDBXdSIFdPZdPHewVzPq/h5hZ4wQTdg2/Mbdrboz+5jHbTjiIl/H2n/Lp2c/SByQI5Xod4+UutkGeC/qI5K3x/oEUc0a8cggh/dAb5jHwz7ov1E0fT9l9gNbiUJL4iFZbiCfFyg/k1LX6qPQL61KD7VPOUDXV5CHkj6BsWSukIZr0mypvLnMbeqdV5/4tKslk7tVEKewkOJypUMx44QGJW/9vETheSAMdiBNhGHs03AHr+tIp59YQpfLHnA== 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=Rdwzbw1AZYhkqTBEqmNuIC5pJ/BKBUkdJDAB9joqWyY=; b=MbbmhJoRkCJ7BBhBC30EgufX/6Zbos/gGmSUCaaMQJF6yXpKBtfhmNDV2k3Z6eLrxwgZ72BtTrvhvvnFiqGrwOfP7nCmoYJg17BxXi9LRlaQ7KKlCPXfVeQQgJ949fOMd8LpBghaYC/4EpinMZL/QTHYBg2jsIOYL0VDyr14Ccg= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DM3PPF545856187.namprd10.prod.outlook.com (2603:10b6:f:fc00::c27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Wed, 17 Dec 2025 12:27:25 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025 12:27:25 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Suren Baghdasaryan , "Liam R . Howlett" , Vlastimil Babka , Shakeel Butt , David Hildenbrand , Rik van Riel , Harry Yoo , Jann Horn , Mike Rapoport , Michal Hocko , Pedro Falcato , Chris Li , Barry Song , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/8] mm/rmap: remove anon_vma_merge() function Date: Wed, 17 Dec 2025 12:27:06 +0000 Message-ID: X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO6P123CA0013.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:338::19) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) 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: DM4PR10MB8218:EE_|DM3PPF545856187:EE_ X-MS-Office365-Filtering-Correlation-Id: 435e0e04-0351-4d24-ea4c-08de3d67a2dd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?RBbXSTV/ELmzH8GJcgNMKFSRuHv/yvYXFX49lJRzqy25z0Voo6Q/d8ipXcad?= =?us-ascii?Q?e0rcNZ9WE0aTYFhagdewN6rKLcs6pZCHNezLm7vXPusJTRlTJ3NBDCq6M1NW?= =?us-ascii?Q?Y2lS7bBb2Yw1+a1C7EVleRnu8NPBSaPwkpr3WgqYFWAI9+JXPUZPvADXi7Sc?= =?us-ascii?Q?qY6QqixjOkH36F2T+WPp7k6wvQ5deev8Qzb7aAVGdJTc6aG4MB4MC2vy9oeu?= =?us-ascii?Q?ZJbgk5IUZHlPzMFC3HLh8avVTmGAgTBzv6PogHLsfZU/WokA8mHzegfq0kL0?= =?us-ascii?Q?lfNuAZaGdzs74JI94UTWZziEF7/2lD900KLHAfJ4Z0RM62MKMtVAdAy5+9Eh?= =?us-ascii?Q?8mbA4K0WQlBnbdd2+mXKq7+PApyZ0BGw1FMsA2SATZ9TxTeRt9caPZd7Uvm8?= =?us-ascii?Q?xsEUlzmo3iaycE4n4Ku2s+/KWiZAvlm4Qh/VfQHQcAx9wh7jscC8lJCExF4u?= =?us-ascii?Q?H4KbIwopRECv2RdVr54qiQUQXVMWwwaR8rlwleWnZ+epzMiK1cOimrjpH3OO?= =?us-ascii?Q?x3uEbOzig2gD5nMlhTFVUhPyDJpDarKw0oSg0HE6y+wI4D76ODzYjPEUCTEj?= =?us-ascii?Q?PnCUWCTnI4DyvHYHvJN9j/ugAv61RFDh2hDoYCvayTb4Tg7WRiqjuHg7HWLe?= =?us-ascii?Q?QNW9XFMC6MMloec4nIB5oEozYJhYV6bdWqmU3XQWlVw3wYlvf/6FhuCVE1Fi?= =?us-ascii?Q?b5zdigkzIAo2VfEgkyCf67KSe+qH2aKHrgCNWZMME5eQ4KLTYZ20XJY1SIJD?= =?us-ascii?Q?Bl7O4VEqd7tXBp8K/KYfKcRxNDOaxMmSBIGy0cH8jxJTGxUNnSXoGGvyL1uN?= =?us-ascii?Q?AWWKDsmV86WbbykEV3B9hHGBqOnV3USzpJhB96RizHaTcd4oWYwW/9zPgfWe?= =?us-ascii?Q?JJhfwJipRbulluvJhaJmVBVKt6na5jEfqwQo4MFxTr7/8zA4L0YrNfjR7ZRh?= =?us-ascii?Q?eNLBDZjj4Udh7W+mvIzEGgI1JgYTrZDfpya1pMefqFR8zMOakJEDs+CfjiyG?= =?us-ascii?Q?Mq5w9tfFNQiWj5i9bVPYvdd030o9ilgUwwmK+G7lUnfi3y2HB9OOJez44bWO?= =?us-ascii?Q?zf5sh0I30t5fH4FARIAhU0fqWwLpGcqeiEpZLrEj+jRKfla5KzNBWHHymAal?= =?us-ascii?Q?u8hYiqr4CJCMV1kMgrWxO16TWbVFxZeb/g/8oC0rmw2o/ff+OpkO5WYNo+ps?= =?us-ascii?Q?+4HB7nq2bbcc7WrB1aEToWzP/xyhdxMSNbG9cJJD/U3NLeIGjkEKMWE4QlvV?= =?us-ascii?Q?Qw0Bj3LTPct5u8hO/5qEROasE23BpBmavHXTJuhB8FX3N9GhV2nCgP8x7NWK?= =?us-ascii?Q?cGjumhUM7iGPg9tHFDIK76UqhbavsM/NzR5+ig2XULlYM+2X2TM/doAIvQrC?= =?us-ascii?Q?+WPyh5zY7xmEhm1jdi7+NJ6Bh99CGvWttktgORuGWtCg8RUDnBk8F/GgJcmM?= =?us-ascii?Q?GPoe2zUWDt7ov1o4xNtgRVdS0bCrNkiD?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rOprAMkhdfNtNYDBMtjt+ebs6hIj41vOaxoYpjLRbv6KQhqsJlyd2Hjr4SrO?= =?us-ascii?Q?xqTlkZRlSYw02XS5QO3xgee6GQvsM1MsGSYmYVdEb1GoK3U1blAjDoznxwmd?= =?us-ascii?Q?gRx9bC3i8smuiukZUzXHwpySzU8Zldc3Ob7Un/fOprBpvbwLmXtHxAzqNtZF?= =?us-ascii?Q?Rfn81Q/Z+/5BU9aOb7vHGgHOKJFzGlcptAlzOQ80HzCKqNw3aWkST+zZ1pRq?= =?us-ascii?Q?MROD8K8tbg4bt5Kb7gMx0wpHSaIEMQomEmcoHeom2vpaRYOfMPMfq3JDPCP2?= =?us-ascii?Q?DXSanAqSHoIXP/ZwKupW2Aqe6z3hPjWTRGB5wQej6qVU0I6P8isLNXXT6gFd?= =?us-ascii?Q?hOoWu1hFSogiWgAdSnk2C9EQQ3C+PAks/px6r1t2el1byrARpyNiHDbTQt+u?= =?us-ascii?Q?9mBAlQNfy3X+kitH6UGz1Gbiufy0boP5zO41LpT4fRDDPB6e/TtPjYKKGK7P?= =?us-ascii?Q?mYKdGj36ob0533TTqUw67Gj3ZbxoEo+v+Lcfh7nlmpEbbLERWvAi7jHzWMlz?= =?us-ascii?Q?633ZZZhIq9/o3nMRVhbgftWqFBljwxZANJbHF1OK5oVQ+veuBSanSppFjPk3?= =?us-ascii?Q?4G86AnfhIVRgrOoQtlGTJw+XroN4RU2PwdVTnMfvfFVAOGd+XVwyA0XCp/Vu?= =?us-ascii?Q?TyhxxcqccU1ocs8wFCOcdCVyftxQGMSuuBB9TfjoQdh4gPW+eClkNNh223ff?= =?us-ascii?Q?hi3pfG+NsxEqz7+sUc3eZe+vy403m4E8tEsoz5jrPT4Mcu6ZfKBWqe+oKV4P?= =?us-ascii?Q?yrFu1gEPfBfTju8SO+Msof/W41MmOS8uy95RwOfgrEOlpkMVRbp0B8+o8WrN?= =?us-ascii?Q?Om1kL5J6JvUGcFn9FqWrvl0dRNfUw1b8tGVDt5Dj896eFSAaFQq662ZMV2MW?= =?us-ascii?Q?s+urY8TK+nJyYSvzRFQLXFOV4xeOCCA0zpfC9VYJFwTGpBHsKAztUljwLInq?= =?us-ascii?Q?7af5/TdWEYaZ1Vy4C40IzHwutmTaRDfeOn8sDc/FkDiCAHqvn+qeSNi7hte0?= =?us-ascii?Q?lKsoqsIOg3ewIbCwVz1iVDPAEFVQOUMWYz4BzJ5zvzWtimrzxvhKE7DlWlut?= =?us-ascii?Q?ZLy2EiM0ck8y2ypsPRZQBiGFsG8dyTib1uUZx0yXMgQuS/9fGPusvqP63gV/?= =?us-ascii?Q?EVZkrDxKWUF/W/b0CyHW8ncV4gXcpTWODmOs95YquBvyxbeulLFaC4TUVG0U?= =?us-ascii?Q?aExGbYJDCxm8CKHRaHbA+V2fKYABr3rAK35dfQH5SKzf+hTNH5q15mi18EWM?= =?us-ascii?Q?4Yjo4WTm0CwQKVbvI2EyMbMgs5Azrp29kojSLiu67Jb094RhOaTxVRQkiiUd?= =?us-ascii?Q?0BUNkrZUfjtUe4l+WFgk8dBCCzA8C0NDVwmOYuVx5xnWLbzUO3WypYztYwJn?= =?us-ascii?Q?TY8Qje9JiSCc/ApNO729WKbFsf60GOAfzjA8MtDJwVr/bX0Mez5CMpLb+/ss?= =?us-ascii?Q?x5CJe2noUDhq+o7Sck/wZBkGhaULf7vHlesW2m0/yac5SMEMVSzjZQmgumCw?= =?us-ascii?Q?nA7/nj5KAUXLZMBJ4e3g4xZk/HijpI6Y/UcBq+c+J05UPSIMtmC71InC04NA?= =?us-ascii?Q?vrePiB/oUaiB7T6K12KdAAYmoMaZwEJQRtYKnL65q1hZD8VxB0KUXUCRs9x8?= =?us-ascii?Q?wg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 2gHpMVIPG6nyBiQSethEVq1L5AAAUTdtY9xuegT9FeNz04QlSK11b9TE2484ojBwN0xkCuDlm/cZSYYDwatgVgrEjCA+L89dATKEdhdjlY1KsDYHY1RH/xgDoXOc6JO1NDPsneI6HlQnfmcX2nSQKk3V6xi4RWVz5uNa2+4UTzgahu09GbPxN3QQZr5em/5U/HGUN08Hsyla0/0d7fwKr1EWTgCTBvBo9maHJf3hjZgasgr9fRp4WDuKJyV/yIomPJTQJgCg4qMUqIPmvxHtR279zqehZgqKsiP4Y/IKBqxNBEU5GRv8w2bnlv7wieidJAOI7xaezYx4479IskdwyCDaLJNC1nS24ivpze3EkrEOx4zkjZy9/hxSImnZCj8/SCv8kCxBiUPW+rukUjSjOiI4m17HucJwVuq0WiBfEF/aVPD7q75MBPRSh96uVwB4fFCGZzjiLDlYN8ISahflz3VPb6ZbDjl9d8uvvQBmj19777dWLQHfUXZwLGw6niXRf8Il1mqY+Y2ehrFnDX6JtoLXBGPnDoqqHbKVy7WHsZW0rTfdZlqGQsFEJ2Ipg712Rh649b+ffptxQ3yWWGntKxlYTWUrnVYGWkaJZtHDzWY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 435e0e04-0351-4d24-ea4c-08de3d67a2dd X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 12:27:25.7682 (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: 36OAYo9TX2KeLnuKDDhgwyfc1cu3mNB/FSvJawhhtwKzLUNhqJXhng3zvO3Dw/7QubjcuiXYMgBM8E4TF0xRZicqaRxkocKbK4XbyMjqVPI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PPF545856187 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-17_01,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 malwarescore=0 adultscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000 definitions=main-2512170096 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDA5NyBTYWx0ZWRfX74IUpSkZfSxR MsQ8rxf5wHAi3OkKTxZfZoIcuxiVsH6WkB/shVuLe0ShYQWaLX6P3MOdDt8YLjayf1d1tgS2uH8 mqxo2C7mB/ziWHUUw9bEhTPLGEQcetPq9GCAKEBCGITdlGMzIpav7LCVjmCd2ijDdzBPmsLzRr4 SLTkUlwz9/h0OT7Pt4eWggEHlY7sKq7gt9sd6/cOBRof6M9uzHBVc4zsbmk5g1/rVdw2dWD/+Cd uLsrRP7f3ajxM7aZPIogKsyNg5hbG+/N/LfQ6v4Uivmx6fOpTKhuUFDX/wdMWE4egE9D+B44IGW 1FuVt6ec844AE7h2CXQLYBXAw2wklpYp4QLO/R9ygrsBiFBGDwAkgJ06V94dq7Sf0N4oYpEz6f2 vmGwRO9cMhYBubhpa2zPW2P51iNDSfs8pMnQg44kmDwFlGhY9pc= X-Proofpoint-GUID: GvbZYmmgz1U4zaWj8fViLhhm_PjN5qEO X-Proofpoint-ORIG-GUID: GvbZYmmgz1U4zaWj8fViLhhm_PjN5qEO X-Authority-Analysis: v=2.4 cv=dParWeZb c=1 sm=1 tr=0 ts=6942a1b1 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=yDX0O4jjIrK4UegQ5t0A:9 cc=ntf awl=host:12109 Content-Type: text/plain; charset="utf-8" This function is confusing, we already have the concept of anon_vma merge to adjacent VMA's anon_vma's to increase probability of anon_vma compatibility and therefore VMA merge (see is_mergeable_anon_vma() etc.), as well as anon_vma reuse, along side the usual VMA merge logic. We can remove the anon_vma check as it is redundant - a merge would not have been permitted with removal if the anon_vma's were not the same (and in the case of an unfaulted/faulted merge, we would have already set the unfaulted VMA's anon_vma to vp->remove->anon_vma in dup_anon_vma()). Avoid overloading this term when we're very simply unlinking anon_vma state from a removed VMA upon merge. Signed-off-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- include/linux/rmap.h | 7 ------- mm/vma.c | 2 +- tools/testing/vma/vma_internal.h | 5 ----- 3 files changed, 1 insertion(+), 13 deletions(-) diff --git a/include/linux/rmap.h b/include/linux/rmap.h index daa92a58585d..832bfc0ccfc6 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -165,13 +165,6 @@ static inline int anon_vma_prepare(struct vm_area_stru= ct *vma) return __anon_vma_prepare(vma); } -static inline void anon_vma_merge(struct vm_area_struct *vma, - struct vm_area_struct *next) -{ - VM_BUG_ON_VMA(vma->anon_vma !=3D next->anon_vma, vma); - unlink_anon_vmas(next); -} - struct anon_vma *folio_get_anon_vma(const struct folio *folio); #ifdef CONFIG_MM_ID diff --git a/mm/vma.c b/mm/vma.c index fc90befd162f..feb4bbd3b259 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -376,7 +376,7 @@ static void vma_complete(struct vma_prepare *vp, struct= vma_iterator *vmi, fput(vp->file); } if (vp->remove->anon_vma) - anon_vma_merge(vp->vma, vp->remove); + unlink_anon_vmas(vp->remove); mm->map_count--; mpol_put(vma_policy(vp->remove)); if (!vp->remove2) diff --git a/tools/testing/vma/vma_internal.h b/tools/testing/vma/vma_inter= nal.h index 9f0a9f5ed0fe..93e5792306d9 100644 --- a/tools/testing/vma/vma_internal.h +++ b/tools/testing/vma/vma_internal.h @@ -1265,11 +1265,6 @@ static inline void i_mmap_unlock_write(struct addres= s_space *mapping) { } -static inline void anon_vma_merge(struct vm_area_struct *vma, - struct vm_area_struct *next) -{ -} - static inline int userfaultfd_unmap_prep(struct vm_area_struct *vma, unsigned long start, unsigned long end, -- 2.52.0 From nobody Sun Feb 8 11:26:00 2026 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 286B132FA2D for ; Wed, 17 Dec 2025 12:29:57 +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=1765974599; cv=fail; b=RK2gY/tMD747PSOTIUPoY551SmG7QFa348xNudS8Q6QZF57KzH/EnLXiA03CYKUV44/awIF0IvG/nwaBjsUgsTiciPtyIj+5HFtvV7ZU3n0+Ka7tWzMCnl8UET6qfZBTvGqWFLfw5xm6DCtricZVRBOM9J+nzK4jIZAb3Rmmsgg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765974599; c=relaxed/simple; bh=dRPGzxL1UxzCIwN9eE20GcvurQJ2xSEOonjJtAc+CrY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Fq7sGIWzgu+D6u3UL7sUktkVKF9lS8vj8Kmsuu9ncWme7FjZyarOKHW979cgIU1M8F1JdcyUyYEFPvJdwoslGbG0/X7n52Y5hfkBIQjaSNI1sNFjbLHKLlzWFreVVRRiF/vzZpY5zrNAIn20/70oBQ85ZkY+kPSNJ9LHXc7xfVU= 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=f78eDhUI; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=y28fa9UY; 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="f78eDhUI"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="y28fa9UY" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BH6NJFS2005411; Wed, 17 Dec 2025 12:27:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=rJZDa2n9ncVkb2QNlDSl98BB6L47oBiLUHJDc+rdApw=; b= f78eDhUIRUIzMtn+dYhxrhggyDtKyjWYvJwbptkrQypSRZe8ly/4mC9qe9S8aKs3 CrYn0T7I/OXWjbm7UiYQoiRQIB/KKBB7SekZTgVJQreskHCM3tVD4wMtTml6bcfD 4oHXEtNBQ7kaMZFt0IKA/9h2wy5f+Lr+Alrk82GHar8PggXHVp3nfpgneNS2KB/I BdLOyHrngYYASTcat0RsKcmtVB4ByFeWQRHLbmy8kx7vatKYOnHQSGUmbfUD6JB5 kvxsLrWpsPX3DCCQoALalMLDW5mTLZ+VsGfBBpcfD1S9U18OdWigG+xArKYRHzIr vOlcTmjt75s6YJqdGQfQZg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b0xqxwv8y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:31 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5BHB7E9e024495; Wed, 17 Dec 2025 12:27:31 GMT Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013050.outbound.protection.outlook.com [40.93.201.50]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4b0xkbq6hx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=LXvJjSWyqp6ElJB+2V0Bj61VKAmf2ijLMB89h9s3gZ/ENxhBMM4HL21xiO4mcAyva9/fAo7JQFGdkcWUfabZiN5MU/422ntMTsrxIPXoikshN6AYzQ5L1xqYHE2jYLSAgUESJHAMfJmNOkTX+dFK/TBVXbxF2T5C8W1gtMud4ZzUg2GFkTLlzGCEivFtuMwj+IeVjTVaIy69JcaYhjkmipsuKO/i1QNbAf6cn0DnfWn7G08a0vlXluHkysDmcoX2wfPOokLhc8QajDzNIxoRfaNReN/g6dPteMyvFZ5h/641cw4k/NI8mqdjCT+NQqPKzAnzeuEezemntT0RtsRGOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rJZDa2n9ncVkb2QNlDSl98BB6L47oBiLUHJDc+rdApw=; b=QjDDDoTSXFaf+famHtvQYoVNWfvkghGrAbStkyyLeoYNFRKGdN/xKAO1ZpWiKDuVL2l/Y7TWgBYx/nIa4W8vvtzyRf9+9UeXB+ZSjK57Hj41mi4/aprB38sTdVfGGYBnn9A9k3TBqjzKEneOeh+3yOUhrB81ao1Ex+eeAE7aLPuRBjN1XSUjM3M7hmUb/HW4ZL5qGHT3t62vzHngvWS6TeOGD/P0uur1MP40bUvAGofwYOUwiIzw/ntra0hOyqfIGN8CpMn5enVQcqXK1hjrmVNV/M7bNAMhcb8lmk987XRC8iCbL9TPFI6gEB56I2+3f9zXf85o5/QPvuvQDxrVOw== 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=rJZDa2n9ncVkb2QNlDSl98BB6L47oBiLUHJDc+rdApw=; b=y28fa9UYWEmb0Y07sTsU5lRi/c0XdJA+mN6ouyS9Wpv1KRP5bHUWUhVRyCZ9vShyPxuu0lLtBOmhd5+kkazsWdJXnaTPaTX5e+mHrBHoD5RN8k329u+dD4hdYX/Vtg4/p+tYXzqbvVOosSY+D3QE77QvTTC6jGZ/KoJTAEf0Zt4= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DM3PPF545856187.namprd10.prod.outlook.com (2603:10b6:f:fc00::c27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Wed, 17 Dec 2025 12:27:28 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025 12:27:28 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Suren Baghdasaryan , "Liam R . Howlett" , Vlastimil Babka , Shakeel Butt , David Hildenbrand , Rik van Riel , Harry Yoo , Jann Horn , Mike Rapoport , Michal Hocko , Pedro Falcato , Chris Li , Barry Song , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/8] mm/rmap: make anon_vma functions internal Date: Wed, 17 Dec 2025 12:27:07 +0000 Message-ID: X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO2P123CA0056.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1::20) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) 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: DM4PR10MB8218:EE_|DM3PPF545856187:EE_ X-MS-Office365-Filtering-Correlation-Id: d8aa79b3-e27e-4739-42f4-08de3d67a444 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?zAkQHySXFRs3vwem1uxEj1uY0RScPFN+w+gjwE0sSm6oilNKhKf4LO5t04Ch?= =?us-ascii?Q?/A9L8qvr344Et6ht4WgUxJKp0aZUUbVr1zwG4I5IQclEJJQHQ2U7d8Lj8gOL?= =?us-ascii?Q?AnOikzla9GiNOYce0qlLY6TqL+mPexPGqep6k4TqFdaY4sYdqR7WfRuLAd+t?= =?us-ascii?Q?6h8TlTUZEIgwrHCPfSyfzKhpff0XMPEOL3VprWuu9CmjEoUN7nvyDJxF2KRT?= =?us-ascii?Q?uofSS7mbl3DIO2bJkTKpD4d64JBfenW2c9e20/njErs/7o7yQQBPop7v6WGX?= =?us-ascii?Q?sph/4PPKze+AjKKvWtqajCFyPTB4YfhTcQ1psfqUTT9RgDliefefP5HyFdEP?= =?us-ascii?Q?+2fZjV/bAR5XSby4IXOHCOAzGhT602eac8sI7hdaEXvkiEucpjrSLvuCFDXk?= =?us-ascii?Q?xqD/C6FkDp8pG+WDpR2BZ/uN4mExmUURoUk57vwOEblZAihs9TC5c6RoFDAL?= =?us-ascii?Q?wAD3E4G8X0s+xOLn48ob6ryX3tD6zpXHlnWP8rtdfaMBgbQw3q6unT3B8Y79?= =?us-ascii?Q?lhgVXS2Syf7CIveUtnUD6hHCfPNpFoQZCUGfBEuGasyvG/o15wOl+9ht2be9?= =?us-ascii?Q?QnitHQ3o2XxWd2hE3JY/tfnk63GqvqMwwjZQotXPjkUzyjDkI8Ho2RP0n12Z?= =?us-ascii?Q?KYEFPOVm9VOpgiRYMxLJZMxkKKcdwWtb3HCrfj1sVcDzogLPz9+Zrg9zR5Sj?= =?us-ascii?Q?EmZ4F+l1MS9sTV1L1Gvxv63nkN808y+0SpozVrwmjOHe25ApyOnF2TmnrCnr?= =?us-ascii?Q?skz3/8828pIfwNcbVuz6FeaPTl7pHKc3RWkOy1esoaHsOmcHUkW/9j+xEg3P?= =?us-ascii?Q?beIoqTS3jwQZs2NXfmJ5zW1B37z0nBV/LtcOp+k/7h0B8vkpv+M93cNimnAO?= =?us-ascii?Q?/x2Ki/rJigf6vIQEVC5gc/pkXkLTivKxSft6fQleA3lgwiHz2t0U6PP+wd8j?= =?us-ascii?Q?Xwrk9K6HYPl/ZyLnQJE3+vpW15slgvA+ymMLCBG5v+3YCDer9r8ba+NbBl9N?= =?us-ascii?Q?8JyzSW7vORQenHYEtiq6Dh49WjFK654Y9qV3TEVzeXCnBIkEy5a2EE70hfKe?= =?us-ascii?Q?n1bnoHjFn1ceN+HfKjRgK6ViewlxTda8yBtPhYhOXKZfzzi0v9iblelmky0U?= =?us-ascii?Q?pndC4XQdUXgpKCzrSzAN2WARc+yjisiIcCYhia5YlpRW2JvfLPXGgdFRpMla?= =?us-ascii?Q?vJluN67f0HR+v9GRY9lKtQrQfGcrI7Up3B2mz/ZfSmE9AIsU0DV5BfLpjYTZ?= =?us-ascii?Q?cGn/7+fRRccYsonwkOE/Yr6Nw4VVVwQ0wSZ2Li3G7Cu4KKx6QnhYwGJVSi0J?= =?us-ascii?Q?FmBdZRC8ENYecZSLiMFUWUP7ScdZNCxFcqMrHtXvZklvTdOptr2pDOzJz8Jm?= =?us-ascii?Q?/4uV7l2Q3xi0NinRG6XPA3lR9V3OCa4BOupU6aeZikOcm/KxS5X3O1FLbYgJ?= =?us-ascii?Q?sE8zrC2UwDhHPxqiCbem0GTHn2HYvh31?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?no0OO3f9elAWows/MHG0U0Kmtz1vTSsR1h5c/ZykgI6MvQtstjCK91jawSl8?= =?us-ascii?Q?uXV2Ar+T9O//AEGGlpgmwye3pEf4KPAAJdvjysVvYt/WjDoXOo8c2UCLpL+2?= =?us-ascii?Q?4F3vG3M0nBvOA8qNYao1StyuLS+xTE4J+f5CM+9Q2z81nCrpyqjLIAJXY+mb?= =?us-ascii?Q?Cgn7JBYGSE8eJI1GsgxCZ9mGk6zj5RMBPdzYgpOB2P4oKDf3zrYC56hXpvJC?= =?us-ascii?Q?iKqBjqXONEV0JSjWYI2Ql/b3RoEk69djTMgz8AzJtiubv8OwnyCBH1OohHN+?= =?us-ascii?Q?SJ4WkOXmidqXlJCVqAGe5xYZ+pFcqPJDXqWAwXrQmMl9xTTFslnLZg1NHsHx?= =?us-ascii?Q?3Cp8RJ7vxNwW71i7n5VCCre1qzVzZ9IdX0CFVEQw75CO5t1Pu3QuwNQkY7S1?= =?us-ascii?Q?E0003FaQQqVxwV3MmNrrXOlfvGz3zIc72m6lscngcq7cW3i8EMNyzbM8+OQI?= =?us-ascii?Q?XHJbmJMbSzEfSUzM+wUDeqoNzXR1qys2pe/Bs823c2zqLS/u0SDWUbp3T97A?= =?us-ascii?Q?ecT5s2Jqnh3MOfyCZ/Me1uOWHjW+QeqXCuwonjxjd0lRX37i3FHkvIS2RPEb?= =?us-ascii?Q?azyhJxMrzElf7z2rNj3hc0Cqbf9Yd32HkgGwUmncs7LGpMHjF73s5+2JuslG?= =?us-ascii?Q?EcfQFiF2gXOSKNqGiAATGMjrmDqspVJRrsRR8qUAJBm1w2zu341NFGeX+2VO?= =?us-ascii?Q?n+H83njMm6807gzwUVg9p4Ucf+SttMitZrvmL53hZC0mwuxmvE7CPOFjEJ90?= =?us-ascii?Q?vz7PFiBHWESF/+JydBPtDRofsrW8vYOD8EgeH9zAgtvMm5wOe3uZN2HhlNIc?= =?us-ascii?Q?LOPIrR9g/PNxEWpcxiPpMU38xyUUIC0ZIRogYyaqSbkabOga27gY6tXBgsZP?= =?us-ascii?Q?kJKTBjP5enAKdjUMzaEJjofVJx+7RTZ17ibMUZ5m5Lkg3mVA4JVXN9+rcT44?= =?us-ascii?Q?dz6vQ34lb8aR726ytXyedyIJ0g0w3KbjV/7xHL3ueikP3RKaLKrNKRcvg+CG?= =?us-ascii?Q?XqwpN27rzn5wR133WdDy3J589YW8+K4NpSAmjo0sNYDiMpM78/+PWKHYtqiK?= =?us-ascii?Q?m6yjEQTyHeQ9EgmHr095bW0c2OASYzeDNwd4Z+vZXHT4Tp5oKPig22hL/KEA?= =?us-ascii?Q?MlHWKBiKrDkE2oMzFKB/830+ExDX1dFvfdKGNAwuoUbxb42ua3aqLLGL8jDZ?= =?us-ascii?Q?6jqlbKNP9J0mPTOumImo++9PeQ1RE0+SRXB/wKd7YjvEloxEaVG3wSobxKow?= =?us-ascii?Q?PS0q9ddcPxy/2O5sKI5R3pfa6Kp9NAxC+SPa61xk+1LFT77bORir+uTSMjjH?= =?us-ascii?Q?XRQs7itMVXHdRHYBf/lxYuLRkvo6QZryCLAy/M5TKxb/0dV11l4/BEtPNOQt?= =?us-ascii?Q?KKSd5fXftrdWTidbL3aNV39zbbLXqk0qSolIGv4xvOBLgZ7L7RZGyUYwen/1?= =?us-ascii?Q?cPkIA8+76kurvpPfcYrDJhAQL9c5KCEEjx7oq+EdL4oLRX+HQRlH7lMEtvkz?= =?us-ascii?Q?BW+RhT/fqhg98BPnfuhX6KjuO9zLeJnJm3eBcNZ+g7sxf/JodojrpIUK/+Xq?= =?us-ascii?Q?qXyGkRrPOApOPxyE5eGZAWH09tVaLulbugXuPRz4YIn7v14MzKKcQ+2Z7hTA?= =?us-ascii?Q?+A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: yrjsMCkDie/wzHGxGUexJOqj/bSYBsysENtg7ZDe/FI/atgvH9tYpEoFN/RN3cWtZoQpUE0FEbLgIK2GWYMS61M6Uv2O4rYZ45DcVIVIDgMTY6rYxBvTwsptabce4gDdsw9pPsKjI2M5Ij5IcchM7VinBnE4T6hipkFGcZYPbbA5jtoPEL5xWFmuVUxZ1sv5ixSfq4pzQ9jyooc9Hj1IItWvqRgBJ6x0P+hbffqlD2S8minmJUc4Yixt4lY2cBHsjRbNRzMmse0XeD+8ILKc28K6SQDvtBawx3b9eXnma2HP1JRgrbuacvoSaVzP4BiEEie4sEhflPceL/sxo6JGnGBSNjfGvei/TknzUCv99FbnG337h2I7krFEVw66SwEhZPo24MARnMYtcmychH96XDN4OO1LxCJ3z6VeWv+Q33TFkQ3xEGfz19+a1QfcRErJM5HIBasqUs+0zPqFauDnYSl5qYngRcAAviK8/I2XE3yiv/d6TFWjITN4iSHqFQDckiBoLVMTW79R8B3ydDc9ovSfS+DzP7mE950u9VYcmn0T9WG9lJKVgvocaKrHBh9ipdURJXiK75fPfz9V3aY4dAB9GgijsSHNnUGjjBFfmt0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d8aa79b3-e27e-4739-42f4-08de3d67a444 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 12:27:28.1094 (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: v+CY0jCaH7Cmo20On0RuinduW8i54bPVCPav0ovAikwUcj8lf/LGD1LCYVguAO6EbhHtqov7ZufgcZ7K0QHqETA5aHOyvAFs/F0x/I+I8/w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PPF545856187 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-17_01,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 adultscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000 definitions=main-2512170096 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDA5NyBTYWx0ZWRfXxxBtBaTbST/I 9MlRnv2NJazSlBLsv8X3h+lIsBfwwnMxlgn1cqK+8PLkUqh21bHsIMPlycbAkpA0VTBrQikQLN+ JUL7yev4DSjcDwYpi/9kSIpLp7b1hhNVRlhZLH8c/pgxJHTyz41ZxOc9BVTWEkBrEMO66Ctmii8 BuLcb68S0NFafjhRcu+s957J/Co3wKerAivAt3imbzD/+fwo9xpFiJ8ZAvtWe6z2iopZcPTx/Ld c21p4lo8kKOx5GbA5u2scYcsoQJ/Chp9QvQAnD7U4rL5ckLnfRNoKpe3pmKpQO/7HnuFz7P1ccu kFdszIH+s5pZIOR6zRA+7VGUn91vAvWt5w+fxhdXXP1OmVFHnFgS6g0sHXWBHM1hV5ReuySL23r Z4mVpJ12+0gmFDOeDcGV6Tno0U9ysA== X-Proofpoint-GUID: Ia5bF5c_LDwiPH0TakUX39dzbx1QbLql X-Proofpoint-ORIG-GUID: Ia5bF5c_LDwiPH0TakUX39dzbx1QbLql X-Authority-Analysis: v=2.4 cv=BYDVE7t2 c=1 sm=1 tr=0 ts=6942a1b4 cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=1PI_McdixYITsgu-vP8A:9 Content-Type: text/plain; charset="utf-8" The bulk of the anon_vma operations are only used by mm, so formalise this by putting the function prototypes and inlines in mm/internal.h. This allows us to make changes without having to worry about the rest of the kernel. Signed-off-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- include/linux/rmap.h | 60 -------------------------------------------- mm/internal.h | 58 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 60 deletions(-) diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 832bfc0ccfc6..dd764951b03d 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -104,68 +104,8 @@ enum ttu_flags { }; =20 #ifdef CONFIG_MMU -static inline void get_anon_vma(struct anon_vma *anon_vma) -{ - atomic_inc(&anon_vma->refcount); -} - -void __put_anon_vma(struct anon_vma *anon_vma); - -static inline void put_anon_vma(struct anon_vma *anon_vma) -{ - if (atomic_dec_and_test(&anon_vma->refcount)) - __put_anon_vma(anon_vma); -} - -static inline void anon_vma_lock_write(struct anon_vma *anon_vma) -{ - down_write(&anon_vma->root->rwsem); -} =20 -static inline int anon_vma_trylock_write(struct anon_vma *anon_vma) -{ - return down_write_trylock(&anon_vma->root->rwsem); -} - -static inline void anon_vma_unlock_write(struct anon_vma *anon_vma) -{ - up_write(&anon_vma->root->rwsem); -} - -static inline void anon_vma_lock_read(struct anon_vma *anon_vma) -{ - down_read(&anon_vma->root->rwsem); -} - -static inline int anon_vma_trylock_read(struct anon_vma *anon_vma) -{ - return down_read_trylock(&anon_vma->root->rwsem); -} - -static inline void anon_vma_unlock_read(struct anon_vma *anon_vma) -{ - up_read(&anon_vma->root->rwsem); -} - - -/* - * anon_vma helper functions. - */ void anon_vma_init(void); /* create anon_vma_cachep */ -int __anon_vma_prepare(struct vm_area_struct *); -void unlink_anon_vmas(struct vm_area_struct *); -int anon_vma_clone(struct vm_area_struct *, struct vm_area_struct *); -int anon_vma_fork(struct vm_area_struct *, struct vm_area_struct *); - -static inline int anon_vma_prepare(struct vm_area_struct *vma) -{ - if (likely(vma->anon_vma)) - return 0; - - return __anon_vma_prepare(vma); -} - -struct anon_vma *folio_get_anon_vma(const struct folio *folio); =20 #ifdef CONFIG_MM_ID static __always_inline void folio_lock_large_mapcount(struct folio *folio) diff --git a/mm/internal.h b/mm/internal.h index e430da900430..469d4ef1ccc5 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -199,6 +199,64 @@ static inline void vma_close(struct vm_area_struct *vm= a) =20 #ifdef CONFIG_MMU =20 +static inline void get_anon_vma(struct anon_vma *anon_vma) +{ + atomic_inc(&anon_vma->refcount); +} + +void __put_anon_vma(struct anon_vma *anon_vma); + +static inline void put_anon_vma(struct anon_vma *anon_vma) +{ + if (atomic_dec_and_test(&anon_vma->refcount)) + __put_anon_vma(anon_vma); +} + +static inline void anon_vma_lock_write(struct anon_vma *anon_vma) +{ + down_write(&anon_vma->root->rwsem); +} + +static inline int anon_vma_trylock_write(struct anon_vma *anon_vma) +{ + return down_write_trylock(&anon_vma->root->rwsem); +} + +static inline void anon_vma_unlock_write(struct anon_vma *anon_vma) +{ + up_write(&anon_vma->root->rwsem); +} + +static inline void anon_vma_lock_read(struct anon_vma *anon_vma) +{ + down_read(&anon_vma->root->rwsem); +} + +static inline int anon_vma_trylock_read(struct anon_vma *anon_vma) +{ + return down_read_trylock(&anon_vma->root->rwsem); +} + +static inline void anon_vma_unlock_read(struct anon_vma *anon_vma) +{ + up_read(&anon_vma->root->rwsem); +} + +struct anon_vma *folio_get_anon_vma(const struct folio *folio); + +int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src); +int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma); +int __anon_vma_prepare(struct vm_area_struct *vma); +void unlink_anon_vmas(struct vm_area_struct *vma); + +static inline int anon_vma_prepare(struct vm_area_struct *vma) +{ + if (likely(vma->anon_vma)) + return 0; + + return __anon_vma_prepare(vma); +} + /* Flags for folio_pte_batch(). */ typedef int __bitwise fpb_t; =20 --=20 2.52.0 From nobody Sun Feb 8 11:26:00 2026 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 3B58A218AA0 for ; Wed, 17 Dec 2025 12:29:12 +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=1765974553; cv=fail; b=L88cgzBaNFTnQmt1I7Jvosugezpr+3wN/vl1q6YWffxeKAOtOEI3TqcwL9qC2H4qIFLsjzHu7IEz7e4lKluAtuYvTr5nf7hxdIkEh1J5yzmQ5ZFQLSyzjINpqBjitPm4zmSIQI9pO+K0tTnERreYuUHnowwEOKj2MxT+Q+bBqKM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765974553; c=relaxed/simple; bh=69R386rO6vHQWiEz+XUuGvLg0COCJR5VDqA7GKCetPY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=bmN5VoRy4vJrDvpZM17Zxwb1lbjrtO5heOGNwdtiE1vjDG6iXXBmaS0HCF8ZBBzLofXj0iZslUWa/2pYJ4V3eb42Bn3vTvVBje0e9Euxveu7RnKWjtRkN5VUgwGUyNDTej/kdCbWFUIfh4SiIyjvWPZV8iL0cnWsHNzmm/NhmV8= 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=oUsp2a/O; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=tx4shwJh; 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="oUsp2a/O"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="tx4shwJh" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BH6Pu1Q2143291; Wed, 17 Dec 2025 12:27:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=7A/MFiQPkv5fgq++rp7qNeYBq32yCXRy7mZILSJQmd0=; b= oUsp2a/Os9RTGE/o9m/pL1zEyMT8M0n3ssu6gIXqtmUx/Z8NKOnUYECZkWPoocWG wwmkDmMTdC0KOEwNpRvSuC4T2HeWrsVQiL0Ywgm4O2TXZGXKdb9bFizeb1RHyDCZ /sKLEoj1KeCStybVek6x1cxDi98ho5rzqDh46qF9fa5LmXcVA1xet4aT/pwuZ1xk ARlIH2QgWwWPcsWiL9TsHURj+5aLEMVGApxZYMTzKIQU//sShfdY/Ey6S/dLNtaW bhtWxDHnOMvRuGRGY7ihI9hzrPJa+Fjum1jp1vYOj1iipTiHiFQnklKVycG+pxR9 Sx5ueYP1w7dC9ezV2vkXCg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b0y28dtxd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:36 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5BHBUJju022508; Wed, 17 Dec 2025 12:27:34 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013030.outbound.protection.outlook.com [40.107.201.30]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4b0xkmgyq5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=w5o0g7EPNCcDH3JI3UzJihNJ2dOMXWl5FCWfutuA50o2e4d2zp8jYqVrr+VvXW/6AzZbKg1Ku5ZT1hnSh6rK+9zLoDU8Y+1kamIqmiVaU494O1gwvnEWlJmye8OMk1VtusJ2e165QS8uX9sYhvhbhtzaFYNBnJjFpTf9vnMzzvxfqAbKcdvCQqzt+F+2wInK9XJtv7L9akDWta1Eiytpm+GeU9wAwd6h4cXlocbbVrDMz8INXbgXZAPuebswHXaSzssH5JEEBHkvLx5qjLnp5sgk60vti87RglEEyZapfNfqQfhVsGdVb/CCZxJLayCMU5Hu1rIGMZ3/zD8jhhJipQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7A/MFiQPkv5fgq++rp7qNeYBq32yCXRy7mZILSJQmd0=; b=wP1j1cj9/aJce9pJzyLKnmdtIU5XQ9savkfjbCReibc53L5BTOwUAV3x4/dRlaC7MH0Dlfz5+/EAfr6+V/tTjB3CDasTm9xudmYiiHuk5BtDTiMGo/yE78zuCy38b2PBa+stuZaxdEB7LVB6Ohf3LZ8nL+2Or0KSErZDYzTtZShEgD+VneLYu+WiiXxLYnJ9Jq+jjz3+5nutEcXM/uzPcwqscQYg6rqlyeDKLy/Gam+qv3wCNFkjocVoLxDbdavUF4Ev+0/6TGL0VUJtNtxw9JojiaGBzH37qv2e/t8hknkyXgIGR+P1DlDAX0KaVIUEAsxW3OSklWDujzNhUXX/fw== 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=7A/MFiQPkv5fgq++rp7qNeYBq32yCXRy7mZILSJQmd0=; b=tx4shwJhugwgD+qAUyAN2ELyubTBeU02ixEi49VqgtmkQzwkV3ifukAVV+8GgM18VWFNYnU6oDGqsHuAnQy0VvqiQFIP7iIm/5ZSsII502uAZ8bHt0jSx/qUJhJu7gnJ3mDFcIy5BBHT9TieQGITVamqqsK+kvu8I6IUUFXixHQ= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DM3PPF545856187.namprd10.prod.outlook.com (2603:10b6:f:fc00::c27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Wed, 17 Dec 2025 12:27:31 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025 12:27:30 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Suren Baghdasaryan , "Liam R . Howlett" , Vlastimil Babka , Shakeel Butt , David Hildenbrand , Rik van Riel , Harry Yoo , Jann Horn , Mike Rapoport , Michal Hocko , Pedro Falcato , Chris Li , Barry Song , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/8] mm/mmap_lock: add vma_is_attached() helper Date: Wed, 17 Dec 2025 12:27:08 +0000 Message-ID: X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0358.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18d::21) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) 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: DM4PR10MB8218:EE_|DM3PPF545856187:EE_ X-MS-Office365-Filtering-Correlation-Id: 22832b9d-2fb8-45eb-96e5-08de3d67a5af X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?T+5L8QdvggDLM0FE6L8DpERt3B3RbIy58VcoE98+0lvNkhkwjcvUAxomgVjC?= =?us-ascii?Q?yPGayWYTR3cvNKwOAsO4OMmo1I72ayuuPRkv596RnPxC5Pl9UqBOaRev6tTH?= =?us-ascii?Q?zHAHfZo4/7NQsJx3JaXQfnOmlvcj+2acxid+Q0S0nHzcEsi6z+j0V5gCXtcJ?= =?us-ascii?Q?nCEErBExKvyiNqaSEqhBW/e+tQdTE+LCNiLxRs3Qd4siX0oCIkW0wJ5HFbOO?= =?us-ascii?Q?fodXHs96cbMMA6FkN/RXALDzxIMHIddjCGJhtz+92UydUwYEUGbNcu0Wx1BK?= =?us-ascii?Q?xaSS/C9yOPtBBp1MtR1tML0xN68up/5K+/YHrGmjdAMWI1BSjT5B2xfkTWX7?= =?us-ascii?Q?8iwlVvyc7xORQG5Q4PXD3LavJCJN58UhI2bHW4cbJOClHp9dx3O+7pfE/om6?= =?us-ascii?Q?dL1QBn5MA4lRGAJ0vvOziTtkqtby+l91ofC57EemEYzjmc/jf/QuPr9pp8Pv?= =?us-ascii?Q?Ywi2t58yFvApgH8gkyHkooSlTZm/Xz3eR3CLvixIbLaH0lruNkvLioXqysY5?= =?us-ascii?Q?mXNMlDiMofcjYBf9e/N0XkgHs2u8tqfdNfSs4H13xI5NX2otzSE5j/QL0yld?= =?us-ascii?Q?G1QytYKoB3zMvUGUHB9kvBchp0nHEkGktUsO0fRNVdt7/Z4eBZAWc0DJcgjE?= =?us-ascii?Q?LjDzTyUNXmJ4/JNB75YgGifLx1eiOJz//7RZsGGP3/3Dchaqd8uk7d7Tne3e?= =?us-ascii?Q?cJQGyZmweSUtRM4nTKXt6G6qc0EMPqth9ljQmnve1ATNolyPVzwSkosgqpd8?= =?us-ascii?Q?Utqof/gSIfFEkkmnWZjA+wjob3pO2l2fmRNU1+95qI85N0YJDkrZwMPk350Y?= =?us-ascii?Q?nf6dPYoxbPmZvYZRUDdteAeRvFaLJ+/zUAv40I5VEIOaJxLKnwVSqnLSFiH7?= =?us-ascii?Q?eGZ0aeRQzsiIwkxorU09hGMbdT+ZjZP7LtyxP1ktUmGdjpbytaciup3zND1v?= =?us-ascii?Q?V51DI95hQwEd3jG9IfdXj3x0B7tX5uXa83mSjt3Mhd2X0dswhqPYeghm+IzE?= =?us-ascii?Q?xrdB6aiTFtxOfcBVUExPZERUc5rTQ595Rgiqq4HsKSQJti5BK4w+EB+jm8l1?= =?us-ascii?Q?2gcZUE3ueQF4IRTKM38VX6YamhsPdb6P1t9hn4uRIjYBenE02orri2+B4Olx?= =?us-ascii?Q?azUb2NHRjIc38nrraChOpdp0seBgeFaN6IhU5p3To+8z67cRBAFIVnR2lsRY?= =?us-ascii?Q?eClmxPPPdjBPRUS3KHkhL8PdtFaIPU8svslSXisYhOqjHOGujLbH7U45vCFs?= =?us-ascii?Q?8gLrNfpjXzAHXvopTryrC8EDh7hGK9Xp5JC9KmxzmIReT50Fkt7d4Pue1F8E?= =?us-ascii?Q?ExhbFGeen9bBvX5qigu5PUmxYASzLgYb7YHYbfhz7r/pcGxX6MQ9L0HZ9qFI?= =?us-ascii?Q?a5t51GX8xXIGPL/Vj2OgleNw8vY2r7MVNXSHFsx//7ziVAgKjQ/+SPn6W9c6?= =?us-ascii?Q?OAQjknbux3z/WeST43HJLYxVnj+uqsme?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oAZn4QZ7rUBTeyWGHSlEvqZ5cFWuKXyQDpUSkmnd1BJhHWAKuf+bbEkTXgNj?= =?us-ascii?Q?6TG2hjhMFOurYDKM3Ouyn4pm9yDHz4U5VqzcgFFOETFUEmhlqamZL434regS?= =?us-ascii?Q?N7Z2rESFSD+sjnNWMT1EjNGDnZuwZ+YeEAAha1W+RPD1IuSEdmzMcOhC+czl?= =?us-ascii?Q?qEYuu1b2z1XWwCtkogEM2iGoGJ4xX0tgOcYxnhYQvDP0F0hWmR3YtuUbSQL5?= =?us-ascii?Q?W/9TKic4E1C90Q9WHorm+fRdkBddExKkiq3Ip/Xqj0eNp6ztpgBH96keAGtt?= =?us-ascii?Q?D8t/Q6s/QXy35M/jWIL0/OQZD/hEhpitQ9E88/MTuqkwmM9BiHyNWNhtNwL7?= =?us-ascii?Q?NLKrbK02AgijcqBAm/6DhXo4TMzbxYyBuonlrBbttZm6pI8RwDpIaOrdtRqx?= =?us-ascii?Q?3Ml9WTC0X5wvIbPr4NY65UmO7dysEkIJMYsGvv7CK3vFvOX7wuh767OrvMnb?= =?us-ascii?Q?tHp2ome1sSiwE8lyCl/a/KsQBY1q5SVTnMz169aWNxBYO7C0URP6pv8JOiFa?= =?us-ascii?Q?0CCuxkpBYlD20aloVD82Mcs+GewC1vFdmFBUb5UoecpTeV4I2w76oSaYWRFt?= =?us-ascii?Q?ZfADrCsl6lcWfnxn+yoBShswhYgCruc1TxhEUqBH/VfAwxVecQEtmri5uqYO?= =?us-ascii?Q?0V6b6pznzJjdOZz1as7I0lCX59gE98IoHbLx3PYwv4ncIMmG9VQ1CYZ37dw5?= =?us-ascii?Q?CYGQgRq7EuwfA1ba4dJX/0wHlEev/AlhyOfMlLwDdR91dMM7gDkConDOIL3r?= =?us-ascii?Q?Wq2Y8gC7bRWTK8BCCHHS/eU0Ngo6ZdZzTv14FA0X479Md+Hf491uRZMO92HS?= =?us-ascii?Q?VhpYZKyaDPo/aVG21fohT1ZHgFJzNoHXCumgz098HjxogyKUav5eaxqu8ldt?= =?us-ascii?Q?oIXaSdeb9cQVUOtH94rPfv5Lwlt5nLCJKeRVzdtJaxwfIuZgeFSJOrGh981N?= =?us-ascii?Q?rdcRsuVLppfFiYs/Bn7J6FqpdRjIHiSmtbdnuEUFFRXu47nnDZm534wmRLBc?= =?us-ascii?Q?qLlYK/uZ9CBW9AUiwpJwxNPQGdyF1KeSoRQgmHJ2VBFDsdp5RXfSu71kxzHt?= =?us-ascii?Q?z6pGGgG81VYJz11X6NmQmGoUUlINVy8vWBo5tA/65dzZ9SQUx0LHvzFaswvQ?= =?us-ascii?Q?fEgCOyEo4Mhe01kC2fYHWYT2z5grRI15OV/hk01WyNMsKaAn4DvnZvC6iKYt?= =?us-ascii?Q?rcZ23C4raTplhUCzCWhfAmRWFeNfnG9L40uT/wGYiqPWnwIFA4WxO2wT6CHS?= =?us-ascii?Q?IvTH8gyIkxsovE0ex0vkcAn5Oxm91cS/jim0Xm4voV03O2Meu2KskxKZKsgv?= =?us-ascii?Q?kCkfEmGlb0GR8hogXbTcY4b0efkvmlaLt0t4es4aHmClDaQBwh/kC71WxPRQ?= =?us-ascii?Q?xm+IaeYgraROAYhfl2jDmAKVwz8KyzrygX//mRY+As4gs75JjrOkGocEH7To?= =?us-ascii?Q?m7aIwZmWbZPPwq4fA1uriSNiEa5hdNYLz8wjwfZh3JjN9Ky/GwCvOAUfXmQt?= =?us-ascii?Q?DP3hx7fFrDSDF3pVHjEt7lDDmjjZp24SRfbnUQldTePyPUIqqnVdn2GA6SuF?= =?us-ascii?Q?Ag7vl7k+XxMJheqNnebRepfRhXNzJecr0DEEri6azQABolTisdebBLedNAPZ?= =?us-ascii?Q?tw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: HHg8yJzbXGfBwcMfEnVVF3rc2ujBAGn7Go/p+CO6EI7lRyxrFXmaCiUhgM7ivzvIk1teNVuMmOLTY9ppUM1QdiBdgCMRfa4xAfjGTO+9bc0xl9pqCuffIzQaid4b8LuHe3V2Gabw79ryGALWF6dseGwXys2XKP48ORhXnWtbytfHXQC5BYTNQ4ayzeDXjBSqP3cULDGPRP26VXknUD7mxKVUoW3fZjGgDwxZHSe2RF2OPdLJ0MNYsy4oUi12M5p28rMaJ5W45WM7VMAAgZakTRw/uKAe06YZFLRlRCt4XiH79l+wlX6f0sqwo5VdKsxPh4f/dE/cCaSk77h/IV4WH7Ar/qO5iUkv6AaWhjcQti8m8QWDdOTgH5qxDRzlP/MFyDpjI1PsyMbgVchZWWXcBIC8ncXaMWq54ua+IC6hU1Qly2SdGaKAOSqs+m5iE0YMPFk+dx8fCcsD4oJbVk1y5meGmr9PKB1eGqqlanzWq4WIgGANn7p7jtOOdhQsjVznBkfQ0EkrlGaUR+cwmH/qXLbfV0YbfTNnst3CLpWH4QgRte3TDpTpr9rFa3DQufsyEuN/CKvwgwFDlpyQV50B9XMWd6Ao8wRSIl1DExAhkMo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 22832b9d-2fb8-45eb-96e5-08de3d67a5af X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 12:27:30.4966 (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: DGOqFlG+PmgVKcAmEZaYYkRxdmYj2fEMPUPTqpvfyMqoqY47vxaquOqlVNFPW4ALqrQx/J49ihhO2M0DIBnnyOfu+DK9bFNLEOkT/NTFujg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PPF545856187 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-17_01,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 adultscore=0 mlxscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000 definitions=main-2512170096 X-Proofpoint-GUID: aQhIKXdm9lKXYqLlK8BBQYEOkRCDPUTs X-Proofpoint-ORIG-GUID: aQhIKXdm9lKXYqLlK8BBQYEOkRCDPUTs X-Authority-Analysis: v=2.4 cv=fOQ0HJae c=1 sm=1 tr=0 ts=6942a1b8 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=_f7RAM-W_OM-GOxaregA:9 cc=ntf awl=host:13654 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDA5NyBTYWx0ZWRfX/lARvHUEQo50 Ui5Flov33fTxwEvlzyk+RqyVGG7Mv/W7IzqsH88D8soDtx1R5+Qa1NMB8eyLe0RH7qyotqtmGAk DwaPwCkzqQfyEsCWz1GOv56ZreJClB3fakyBMpQ37asNVl8o3BRUtgVyfv3A8b0rFWCRFmhg+vx 1IVj0Pli+b+Fv+Vgm9pEzwKeLNOp38A8VJ8TesREuqt6KUKglHSX0qqMkb/7suTTVf0tQ4lHqCB SC1iSbI4DkgD3fmb2UX5zoHKAYn9x4MK1PCJBSnmXMydXTOx2kS81ZNNxxER0CVOX3beYUe1qR2 dKTIyN/mmjrpjQ1Kc4p0R9eC4Nag90O98665UWSG27d4JSrS5nkyIvBL8ALbLvQHC+w5HpvfkFF B7UjIkJ4pLoLJ/sTAcyymuMxbk92RdK6pAHGup8z4U53SzWJcHE= Content-Type: text/plain; charset="utf-8" This makes it easy to explicitly check for VMA detachment, which is useful for things like asserts. Note that we intentionally do not allow this function to be available should CONFIG_PER_VMA_LOCK be set - this is because vma_assert_attached() and vma_assert_detached() are no-ops if !CONFIG_PER_VMA_LOCK, so there is no correct state for vma_is_attached() to be in if this configuration option is not specified. Therefore users elsewhere must invoke this function only after checking for CONFIG_PER_VMA_LOCK. We rework the assert functions to utilise this. Signed-off-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- include/linux/mmap_lock.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/include/linux/mmap_lock.h b/include/linux/mmap_lock.h index d53f72dba7fe..b50416fbba20 100644 --- a/include/linux/mmap_lock.h +++ b/include/linux/mmap_lock.h @@ -251,6 +251,11 @@ static inline void vma_assert_locked(struct vm_area_st= ruct *vma) !__is_vma_write_locked(vma, &mm_lock_seq), vma); } +static inline bool vma_is_attached(struct vm_area_struct *vma) +{ + return refcount_read(&vma->vm_refcnt); +} + /* * WARNING: to avoid racing with vma_mark_attached()/vma_mark_detached(), = these * assertions should be made either under mmap_write_lock or when the obje= ct @@ -258,12 +263,12 @@ static inline void vma_assert_locked(struct vm_area_s= truct *vma) */ static inline void vma_assert_attached(struct vm_area_struct *vma) { - WARN_ON_ONCE(!refcount_read(&vma->vm_refcnt)); + WARN_ON_ONCE(!vma_is_attached(vma)); } static inline void vma_assert_detached(struct vm_area_struct *vma) { - WARN_ON_ONCE(refcount_read(&vma->vm_refcnt)); + WARN_ON_ONCE(vma_is_attached(vma)); } static inline void vma_mark_attached(struct vm_area_struct *vma) -- 2.52.0 From nobody Sun Feb 8 11:26:00 2026 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 1234723D7C4 for ; Wed, 17 Dec 2025 12:29:03 +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=1765974546; cv=fail; b=olNrp7AuwN9xeQyT8t3wXkbhZFTUAZPC6HlADl0qSdR6Z0W2ri9LOLGMHE3C9GpJJQszl0PEodaVsPPORpPVXY5jw5slT/73FT8xbPtfFzEYn1Jv0mQ2F9W+F+DCPaly0nv/YD2tWtFxtuKVYXLdFzq+YXKxNGivSfs8Z0hIakw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765974546; c=relaxed/simple; bh=Hg4Bg2Am3xREAqTID+N3b5RiqFi8g2fNjp2KB53Xvek=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=LKQn8yAPdoLRY8WZENg0gxqq+Z3Dkw6OybarFlXtlc6Gds4/B4ZFHKpblYHFdgxk1k52RYGeP54LbGaQi/tiTxBAqdDu0AS8HKe98iRMEUFg+VvNSTcQ2wUbWh6L0HkO0RKUu4Ad1t2Ud0trUgMxFdMh8aOqQ9evFdvI4awGkFQ= 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=lFU6YApG; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Dwqgnekt; 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="lFU6YApG"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Dwqgnekt" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BH6Ncb42068664; Wed, 17 Dec 2025 12:27:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=xi3B2de2d++3HecIT0WKfvdrNO+Q7eWcJW4Ra+AG6DM=; b= lFU6YApG/7DkgGrL8zVyYtX4R7BeC9K37SRkzvUYJLG4UMmK+eDW+xHRceGwBgzy 9wYYyhzqEoqJCSVX4XV5pMP1WIlpl4hBi2MrOJ2bixtLBKY1TI7/8uunx5cad6jM kNvVxsZZOcGD6Mwf2zO4dqzLOQs0nxqexUIICYGFwEx8J5+KmyEmvLf+hx8lvE6q RP9liEX9bA/zHyNZPQKK050JgFUAfuSD4BUjDxfmzMww8rDPLDx8gHWcEcreBFJk QC4P9iTzXD34SmBOeWHHyeDQ6lmVuk014x9cvfkjSh1EMBXLcJpBma1ac2/rIExj IWNPUWqKDzk6R0n+NWs7Bw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b10prnquc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:36 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5BHB7E9g024495; Wed, 17 Dec 2025 12:27:35 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010055.outbound.protection.outlook.com [52.101.61.55]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4b0xkbq6m0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hOlHDYbXUIMV0Y5XGLBE9ldXRJ5PbFWhpC2pKmGtOg+fRSj2KvuxfCtHmaQJj0Ne0RDPe8BI9tKwjGx2aleYnZI4BqUzAMOUEYQBoDf9imliXH7VJ+vi94r/FJ+jjr0jhTOOihaA6s6OJ+wVgZE8phgg3dhSeLvp46khpd0V8cA0Z0aFHCOXwmIrbdqgAudyfvsmOmQrzo4lUirbKlXHwZ7iRwjKUot82GP2KHf6Y6IXe5VFfkya7qq5KbQtHK21SWXHeV+cl7sTl/d6dTkoJVDJlv2ahc7waey9rSUI9JzQ2E5a41p6GixZU1gM3PlQAtZLcb0SRzlIAXgY7oLETg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=xi3B2de2d++3HecIT0WKfvdrNO+Q7eWcJW4Ra+AG6DM=; b=U/R7NIFzaXiACYC+JY7tFmMLTkXfQUghpOtX066zhJ8OMCZAfYFUi+/1B5icdCAmjb9QZSYWhJutyArseu4A7B27vVN08zsenuZFoJAvguRszbtz/xTNemmDLfDdhog3M+qmkELDe59zFngy45srORLTZRTdOx72RDTnlzgyoVKZtQpnvs1b+RiEzksuLgMzcHqKJidXi23hgup/+NP5904hyhhzu9HaiftdaPERV7ab8BONW633Yd4I35bICyegPHfnKiVKbxBr0mmY06i6EPPzZEuE0IWA35sJ+0XfphfL3mfm0ShY3s57uDhpuPXNvoB/5jZT3feyFHPHfedIoQ== 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=xi3B2de2d++3HecIT0WKfvdrNO+Q7eWcJW4Ra+AG6DM=; b=DwqgnektXpW1djw7Fztk9CN6BiSznTQQ2GHPEiaNH9DyEVFwVK1GwKVyNsp8nZwjpE+9N4VKLKdz5SFzZ+Bd3h1OMImtGbn0kJhRGxr6guUnZPgcHK/ZRsjexO4AWFhVBSfpbmHbzEtDaWD2QD6F0tbx0iAQV8Y1Ngig7wPaNBc= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DM4PR10MB6253.namprd10.prod.outlook.com (2603:10b6:8:b7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec 2025 12:27:32 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025 12:27:32 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Suren Baghdasaryan , "Liam R . Howlett" , Vlastimil Babka , Shakeel Butt , David Hildenbrand , Rik van Riel , Harry Yoo , Jann Horn , Mike Rapoport , Michal Hocko , Pedro Falcato , Chris Li , Barry Song , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/8] mm/rmap: allocate anon_vma_chain objects unlocked when possible Date: Wed, 17 Dec 2025 12:27:09 +0000 Message-ID: <4ce4ec09b92664091e8935982d83dde3a4c7f898.1765970117.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P123CA0562.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:33b::12) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) 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: DM4PR10MB8218:EE_|DM4PR10MB6253:EE_ X-MS-Office365-Filtering-Correlation-Id: 17201a52-3b7c-4007-ddbe-08de3d67a70c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?23Jbh7Z+cY8Zfx4WXFv8pXAJxBj1C/VSNe6EiV5ENoi0qA2YfJq0MsWZ/21V?= =?us-ascii?Q?8T+s5KQgYdfGbdBjIT0OvQ6/N+Q3ZV5lRS6vlNr6B5t8xRuA+x1mwbIRsnx8?= =?us-ascii?Q?jU+TvLbJzGAdQOxSG1+0OpwuQKobHSVYI53m3xDenoShX0ZSUlU2FRGWoz9F?= =?us-ascii?Q?mzg4Dt388k/IEdqLHqKmKa13ULKWVFhVsnuQdCbTTXMG0fmHu6CWePNs7GC7?= =?us-ascii?Q?5tPtuNuEbKcbWAMFyYXR+ZvTZ+KmckgomXJjfmq+N13cOy3s9A8lLCGRGlCx?= =?us-ascii?Q?Qr0fBRNfoZulqa+rsmFTB01H+d4oJQlP6phFr4o0MQjwwgOM9xpoyxpi5Q+S?= =?us-ascii?Q?o0nTOEKX6I1PkGOlmdBj5/StguyVBRT3OpU72RMcqgNon8K2QfTpygiq3aRl?= =?us-ascii?Q?Ax6iAjGyaj2wrpV6TY+TB/52kH25EYKfrXneWpdmLh3X6vKiPPT2S38cstQS?= =?us-ascii?Q?hijqfU/CW9Nqj+tfYgrpquXK7CjrMmx6Z1Uv7UVAE+9IjG8RXdXRURIL6Yeo?= =?us-ascii?Q?8vROx+ewDw562eruSnB0vNhMmYCFmlDCP5/y/WPau8Pf83fhFOnGcb6Fz59X?= =?us-ascii?Q?h0R+MG4J3OHEYw0Tv1mOHcz0bimCB3qjEcfqUyG1tpf2lb9PCKri2DYDDAbO?= =?us-ascii?Q?2zRlTtGinWWxbSYr12adKbD84U7xw8Fjsx6GBbxNlfr4apGu6Uyco2q8+H6O?= =?us-ascii?Q?/S6vsvPNL80/OoNNy45+HiqBOnef8FoKbDBbXFxETS9Iu6B+2qr1pLflMOzT?= =?us-ascii?Q?MbRbUEZlo0lLedzbZyxJZvjkY0oGM/MPvRXhHJKPUZf7uEzJuUM9Nv8RAE7B?= =?us-ascii?Q?mSg+GlkLdjmvPcc6BlTHAHF9YxXSad1oUt8RIHI7zIBmU77mAvQJZ8/VUkfQ?= =?us-ascii?Q?dqUMWzxvP8KYyIB0SuFlyGj3My5u9cM7p+aj3e/xqntb98GfePwxvY5mFmBk?= =?us-ascii?Q?9WINEeP+JyME/srgvnW32nBXPI0Jjv7Dvr6Ycl0BDXdOsNx5CeioRLwAkgiU?= =?us-ascii?Q?bY+Ck8KJjlY9QqgxxO9kqOermV5HHtoR9p9wCH5u9DTY1hSE79g6i7TNZhfw?= =?us-ascii?Q?gH/pJj1CuUwiyJcrlMjXv32pkXB9OGWBIG5QIC4crMAY8n48FggyyRAAjOhx?= =?us-ascii?Q?Ul5aLCKP9OLc+wBPbPCqVh5kKTYifz+qRDWLGRRxDz81ctVBvknsjDe+4Myc?= =?us-ascii?Q?7KrGRWTyiPSBtJOR9SRtQcrUD35P47rOE0mopZx/94xbUzSgqqAu7ZJnKFkM?= =?us-ascii?Q?g1JmjhcfNmI+ZOievun4z8NBFTZaq9/ospZHf7PDMmL0S0N9tKYWmaDxCywT?= =?us-ascii?Q?SHYQ2HyQ104GIbqUDwyqBWveSoAZ+vpp5piY2Uj78HEOXg3h9bhJKYz/CAnc?= =?us-ascii?Q?rkp0HI5EP8QAHsTVkZM5drccZKYdfUr229fuepw1IHd1u69zZVhhBPM19qJ2?= =?us-ascii?Q?NkVeYXtJFTvTq3OeinV3BhpOkrcxja3E?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yB0ie1g1CmzjYVLVSyTfhS7zFWiSIKYJbkgAClXP2w8Eguk14bvGlVzFotkk?= =?us-ascii?Q?i3T+la/w2yOwlgYcWrB47U3NWwU0jk/z3AK5zuemFe2AOFIiMTWTNPqqocMs?= =?us-ascii?Q?06DeRpKvPxGbetX/PSkX8Yw9qbe1dJXC25TlhnTU6bcHPtunhQhuJCW5p7EK?= =?us-ascii?Q?JYAMwhfK90TkSSPV11a2uWxb1CvZ/Nud2zuBmFu/Yaswz4O8H9KkzejsWF2t?= =?us-ascii?Q?4UHft4oyVcQca01YiuwW9ZYJNlA7qQVVTT4UJxesVqOiIRPySofk/VWZ7IVA?= =?us-ascii?Q?HwOZl9w7a9TUNSf5VoS9ZLSjKjC8VWvEAmHwZIqA5ONZUU1XxGXZyrR+x3G0?= =?us-ascii?Q?YCRhuc/fUDcUGAk1mvIMf66I1eazCC0s6r0fyWAIK2F5gURDDNWQe54YKtai?= =?us-ascii?Q?EeHg2+f2mgjES9jwqpmQ1PdaL1VJCQdRcHwBbCqo4UCg3zSRi39JIhN78043?= =?us-ascii?Q?oOes6FrqzDg6L3dYNV8NUJHgXoe9BAvtjGly2kOJ6SwVm7c51LFZ58z+Q4s9?= =?us-ascii?Q?0pHKLW7CCyE6bIGtZ8EKpzJP18jyKt6MqQVdV5Tfz+Eseu2CcQFUnom+FvZs?= =?us-ascii?Q?mtbvehMr0B60Y/bE8sxeY1S+pG6JA2BR4gfHAasLVqzYeZXQFTa3JQBrumQA?= =?us-ascii?Q?7rt4ZftXx0Bm7TzAEvkBSJjMlzrQ7KeZ1WxIsYfkhJJ/AWL+3oF8vDzP21XN?= =?us-ascii?Q?gF8VAjQ6kfpXGq/pRxzlKly7pfbMhzUmBUbnHQQAOQ6RZ/c1j5foc2j74l4c?= =?us-ascii?Q?F6UX90bBI+RLtAvMRNr5Z1GeYAOZJu4Lpnr13F+IpuUSGAiAi6Yp3/vOyvTd?= =?us-ascii?Q?85mAhZjPzhZFziQuCT0MAtc1wM+o7GEYNS/Pl5gv8gClandE6ZSPpzuIVJ6g?= =?us-ascii?Q?N+7cHCam0z20UJAOOppXEhFJ6loWUt4dfGLT8SmDhfhphwnRyNveKdyC/uRJ?= =?us-ascii?Q?zj0117IbhAkoY5NouBFsU21M6SeM5hbMg6Ymcb8A1HTj9EdsiAO7t+bFlvZQ?= =?us-ascii?Q?W+xG665A8FYu3fhX5pmMmgZ+UIg2wCM53GQK5cj4kWT6sTAKsoSSakPto+lQ?= =?us-ascii?Q?NQMxRd6yHzwW6vpTIZoFG/tBT5Ii3RIUJITZg27ZD3sc1oie9oGd33lQxVqi?= =?us-ascii?Q?u48H1BgcAU/GAZ4ILIt4gZcVmrnCngm5wpXYT2ji13dd4N7pbrftahqq1Zdu?= =?us-ascii?Q?N3WldxiGBAulctJRcnDtVXOFlcgIatbieLMQj14d+z+BbTJpokwpuu2gfGFT?= =?us-ascii?Q?UmxQ61m8376cmrRS4DMMB9FSCcHQAdsQvZB9GV8MOsAqz2wNBORBDFsGdOyj?= =?us-ascii?Q?IVCl0jdSVSYmsOs2DUIpbRyb6bPHkxk3gllzCu6Dr9r2sGlmO7+sj6Byvh/H?= =?us-ascii?Q?B4bFv00mI/T5YoSD+zyQaYosh9mHlE5USZM5+Je/F+nkVHWpaimDxf4Al53B?= =?us-ascii?Q?aE51PWGDTK+9KXcyOFZ7VfcTzHfcpci+4jhGWelnn519AEG4933kJxkdDIPS?= =?us-ascii?Q?ixDp0ZNJ7jqyA/uacmrF5k6A/1l2xcFqZMmHGvcY7Y9TdHYuoVUmtF0xvMif?= =?us-ascii?Q?jhWX4/MFYdPr21IR3VysAdpVntXuPC/kuNp4lLFH2f7rgSPd/w2ORmq4WTy5?= =?us-ascii?Q?Gg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6eXvyiX9MFianTz7FPCyuUajyKyDu/23K3Lg9I5MMpZxQIW2KjPjcQNnk/JSjkr/pLkZXVl8DOJbhlcDX4qIdD2uYWtSI4UAUbkf7X7umqWwkhtkh+XEtxs+tRfz4yx8LZfadUw0bu0oLwbK+xjuSrT7Er7HKnfhapJUEF29YIofYzitlwBGV/D0dOJe5qFxJINvG/aURncMV0NhlwTdX0k+IhQmb4/DS6tjgI6od1A0//CRecmxXEm+KdcriSEGvSyehQz8X26oGuPqbNrISopfepSKYq3TX6FCqRQaH3hbUDUkOBjYkj7BziOXYLWxlr0j2m7xck0PlOQO0txmGomCS6GxPsJnKL+gndaM7thAmSzpGBVj5Vm03V2IUIAQFw1bk7Cofo8dwUT5YE+HWrX/VWNmJrJiEPYWgI6klCvPDiY8Cenj371B0ZvocTJYm0wwXz8u7YxLPFTejPFenv2D+w9qFCE5MsR4YMnpfcfYYyf0nAuUlkiCf5GtFqnes7JIIaub4qraZDKCAaxm+yt6caqFF32iJT8KnIWJdDhInqveC/Cm0BWRLW9P02g+2Rvr4L17/mV3Q6ZsY/imOa1ShPliWyllIc3r9fkmNMI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 17201a52-3b7c-4007-ddbe-08de3d67a70c X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 12:27:32.8026 (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: 6HX1BM8H/tOhk4lmCT17GZ6ppV5K83BzpobJZLw4s4KYVaD6EGrd9Y4fmHanovStYFs8WII4mR/ljp6df/E20KJSfhORdx+AG+qTKcBEazw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6253 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-17_01,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 adultscore=0 mlxlogscore=999 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000 definitions=main-2512170096 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDA5NyBTYWx0ZWRfX2JLHzXlFD682 XAzhx3JXrl/JVgCZ6NWUkDfKei/lZEqhIINZWLT16weG4/IYfngo9zz6QIoKxCtWxRsqtdNsZIF wuIAhBZ5BkKU93Kwv6tQxlR7scdhmVy2NzygnueU5qzKXuGrYMvuvIrfQtHIhjhTjSl5RTQxlfQ QoupfJkHneEtVfyqAqdrfT6opsrMb604lkC4dUBe2kLV/ajdr//XB4TY/jdmZjIalAyHHNNH0ib P1Y7rw8eUxmyFVsshr74u+lSKyi1HJYE7u13D6qMwfZSYPcAD8P/2hPlmvinE+6j1OI54poqjg+ 2Qc06kgwVt22RrDOJwSShbgYv6xvNaGhXhd9+Bk05uiMLSRFPcIIpWYzB2ttAvJYDNqp4Q0IZMT Q5DEF416CQJ6B0xK55U278q/0Md9Fg== X-Proofpoint-GUID: ga9Oz49VbQF-wr0u9UfBj5rW4BN3Ae7g X-Proofpoint-ORIG-GUID: ga9Oz49VbQF-wr0u9UfBj5rW4BN3Ae7g X-Authority-Analysis: v=2.4 cv=dParWeZb c=1 sm=1 tr=0 ts=6942a1b8 cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=kN6XwLchXLQ3Vj0rqgIA:9 Content-Type: text/plain; charset="utf-8" There is no reason to allocate the anon_vma_chain under the anon_vma write lock when cloning - we can in fact assign these to the destination VMA safely as we hold the exclusive mmap lock and therefore preclude anybody else accessing these fields. We only need take the anon_vma write lock when we link rbtree edges from the anon_vma to the newly established AVCs. This also allows us to eliminate the weird GFP_NOWAIT, GFP_KERNEL dance introduced in commit dd34739c03f2 ("mm: avoid anon_vma_chain allocation under anon_vma lock"), further simplifying this logic. This should reduce lock anon_vma contention, and clarifies exactly where the anon_vma lock is required. We cannot adjust __anon_vma_prepare() in the same way as this is only protected by VMA read lock, so we have to perform the allocation here under the anon_vma write lock and page_table_lock (to protect against racing threads), and we wish to retain the lock ordering. Signed-off-by: Lorenzo Stoakes Reviewed-by: Suren Baghdasaryan --- mm/rmap.c | 49 +++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index 60134a566073..de9de6d71c23 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -146,14 +146,13 @@ static void anon_vma_chain_free(struct anon_vma_chain= *anon_vma_chain) kmem_cache_free(anon_vma_chain_cachep, anon_vma_chain); } =20 -static void anon_vma_chain_link(struct vm_area_struct *vma, - struct anon_vma_chain *avc, - struct anon_vma *anon_vma) +static void anon_vma_chain_assign(struct vm_area_struct *vma, + struct anon_vma_chain *avc, + struct anon_vma *anon_vma) { avc->vma =3D vma; avc->anon_vma =3D anon_vma; list_add(&avc->same_vma, &vma->anon_vma_chain); - anon_vma_interval_tree_insert(avc, &anon_vma->rb_root); } =20 /** @@ -210,7 +209,8 @@ int __anon_vma_prepare(struct vm_area_struct *vma) spin_lock(&mm->page_table_lock); if (likely(!vma->anon_vma)) { vma->anon_vma =3D anon_vma; - anon_vma_chain_link(vma, avc, anon_vma); + anon_vma_chain_assign(vma, avc, anon_vma); + anon_vma_interval_tree_insert(avc, &anon_vma->rb_root); anon_vma->num_active_vmas++; allocated =3D NULL; avc =3D NULL; @@ -287,20 +287,28 @@ int anon_vma_clone(struct vm_area_struct *dst, struct= vm_area_struct *src) =20 check_anon_vma_clone(dst, src); =20 + /* + * Allocate AVCs. We don't need an anon_vma lock for this as we + * are not updating the anon_vma rbtree nor are we changing + * anon_vma statistics. + * + * We hold the mmap write lock so there's no possibliity of + * the unlinked AVC's being observed yet. + */ + list_for_each_entry(pavc, &src->anon_vma_chain, same_vma) { + avc =3D anon_vma_chain_alloc(GFP_KERNEL); + if (!avc) + goto enomem_failure; + + anon_vma_chain_assign(dst, avc, pavc->anon_vma); + } + + /* Now link the anon_vma's back to the newly inserted AVCs. */ anon_vma_lock_write(src->anon_vma); - list_for_each_entry_reverse(pavc, &src->anon_vma_chain, same_vma) { - struct anon_vma *anon_vma; - - avc =3D anon_vma_chain_alloc(GFP_NOWAIT); - if (unlikely(!avc)) { - anon_vma_unlock_write(src->anon_vma); - avc =3D anon_vma_chain_alloc(GFP_KERNEL); - if (!avc) - goto enomem_failure; - anon_vma_lock_write(src->anon_vma); - } - anon_vma =3D pavc->anon_vma; - anon_vma_chain_link(dst, avc, anon_vma); + list_for_each_entry_reverse(avc, &dst->anon_vma_chain, same_vma) { + struct anon_vma *anon_vma =3D avc->anon_vma; + + anon_vma_interval_tree_insert(avc, &anon_vma->rb_root); =20 /* * Reuse existing anon_vma if it has no vma and only one @@ -316,7 +324,6 @@ int anon_vma_clone(struct vm_area_struct *dst, struct v= m_area_struct *src) } if (dst->anon_vma) dst->anon_vma->num_active_vmas++; - anon_vma_unlock_write(src->anon_vma); return 0; =20 @@ -385,8 +392,10 @@ int anon_vma_fork(struct vm_area_struct *vma, struct v= m_area_struct *pvma) get_anon_vma(anon_vma->root); /* Mark this anon_vma as the one where our new (COWed) pages go. */ vma->anon_vma =3D anon_vma; + anon_vma_chain_assign(vma, avc, anon_vma); + /* Now let rmap see it. */ anon_vma_lock_write(anon_vma); - anon_vma_chain_link(vma, avc, anon_vma); + anon_vma_interval_tree_insert(avc, &anon_vma->rb_root); anon_vma->parent->num_children++; anon_vma_unlock_write(anon_vma); =20 --=20 2.52.0 From nobody Sun Feb 8 11:26:00 2026 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 7422D31D372 for ; Wed, 17 Dec 2025 12:29:04 +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=1765974546; cv=fail; b=YHImR7RSbbrxb/lOKgel0VunHQrsiOFCCOArqWpanTjNJPN0+CsGZUJQ2gPEW3NWCsx08RV+nXH0KPbEss9czjMiYu4sREejgfzdG4gOaiVr2t1+tH9uw5sMghlEnCUsczQGCC2qxYlS0T0veWOsRBirTXIIuFK2/whhoy6zONk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765974546; c=relaxed/simple; bh=d1fOw+tjJNJpKKZg665leRZv12yR5U0hmvOleiqkvzk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=tB5mgC7IUh2Vj93OXqoeBvtX7gXNfMIjStexTN+yg/MQsh100yl4Q+kiJNtv89vVrAI+UU7GsGTyTs+IsCHJui8NoOrBsUCHNKCbvzqSYtN/fzdEPxYHQE5BZW/xFcMKCOfOcD2qojNIO8Zyy3qMg9sWtgjhM42IaQvwizcW4r0= 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=lbfVpLTy; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=q2Qu/ljG; 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="lbfVpLTy"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="q2Qu/ljG" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BH6NWlb2005671; Wed, 17 Dec 2025 12:27:39 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=7hnZrGo8ZeyIXqyVblTSuV/hz67Fhc+3Q+cOZVrwVO0=; b= lbfVpLTy3mWFdj+WuoDl7DhAFmmddXbtKWnsYRh4uUPixSSaosXQUlDp/ggz6n7W akLoqlC4NgINh6M63Pq0wnMw/PNIInHI+HMap7U+GYoEJpqkl8mnFmET4jI3VTSC WzMGyqWSUBgASlloMkBlaHFYBSnZ/1YG8QghGeGCYZ1GbbgNfdnTtkxrzQldvSzu PjmqRuv8plJMKLbOrTq6LeZCS4tN+7dZit+sP+COsUx6R4jhLK1RpZz4JZwPC44H HB6nIreL7mNSxX5U0Vp0uSOPdoMgwi/7q4hRGY4MTNqHXEstQxtuL6HBrLWJhAAr xGvw4YN633oxhdbb4Kr7Bw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4b0xqxwv92-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:38 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 5BHB6AaF016709; Wed, 17 Dec 2025 12:27:37 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010029.outbound.protection.outlook.com [52.101.61.29]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4b0xkn0rfk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Dec 2025 12:27:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=W2Rqm4DOeAveirJX5bxgpxcNWrj7BK/2k+1KbNeK2Gey6oVc4EHmOGkhu7bn96zkfa4ozQWag2iStYwyRvDb1nojwIcsnj8bKgfQ0W0DX7aqu3suOYv213CWU/kLcmHOADyBKIG939kBdRSlYYKefqZxWp2GeEMidschRnMuXgJLXjwMCs1fVFtgsRZZZa0fQxRu42mSt8zp5wlTVxr8dTfJsmcy0kOZEjkKRtYoQU9R9E+/1nXjg4ATqqE8BBcU155dVQTYT2/MXGTzbDbVbPh4Hg3xa2MRQho32GqVGjDMSauZ0W48UF5vsBdygXEb46vkabuPeaBh1LM9KIEthA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7hnZrGo8ZeyIXqyVblTSuV/hz67Fhc+3Q+cOZVrwVO0=; b=TLukPttZFIEByX9qUMCPdHtNM+akQntq3laCHz5EbtWuSNYGVWrXQpoK43NYbr8lxqs7gUKcSBaM/CtawhZc86vnF3IjdZeu+MbjBlqEt65GmpdgJvFVcCDSsHIZ2F7in24+UraKjWSNC86MrTYHtqYHrnyb7+0EyBVF+UB/YvSrHGz4IWFxFBJR9DIAfv4tv8fI1ofpSITt/U+L3mpK9XXDqFS4wehpxwdQ5jV06mh5AT8I5MdYCc3YfWeaVuwrICJw9okzOHY15ozFW1W+LcaGo3RNtCbzB0YFXvbjwA4dcqt0qQj43PAnrM8AtbkPLoZY9fTwtGfNAZ+Ib/2QLQ== 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=7hnZrGo8ZeyIXqyVblTSuV/hz67Fhc+3Q+cOZVrwVO0=; b=q2Qu/ljGhpBR//yEhCkYDVlIi1Z8KV//XxCVEi2kJpyrjF0P717fN0LAX+WydLf5+HTDWs2CXU3mCT5jTsLtp8UBLH3ns2NutYDUczIBRfqluaoBY+KLv5cspgjPGd3ck6lAOK6/DQK8EDjC2wSyxiCleiDJYNRsKd2/fwa1/js= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by DM4PR10MB6253.namprd10.prod.outlook.com (2603:10b6:8:b7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Wed, 17 Dec 2025 12:27:35 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::f3ea:674e:7f2e:b711%4]) with mapi id 15.20.9434.001; Wed, 17 Dec 2025 12:27:35 +0000 From: Lorenzo Stoakes To: Andrew Morton Cc: Suren Baghdasaryan , "Liam R . Howlett" , Vlastimil Babka , Shakeel Butt , David Hildenbrand , Rik van Riel , Harry Yoo , Jann Horn , Mike Rapoport , Michal Hocko , Pedro Falcato , Chris Li , Barry Song , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 8/8] mm/rmap: separate out fork-only logic on anon_vma_clone() Date: Wed, 17 Dec 2025 12:27:10 +0000 Message-ID: <175d29b48f7e49ce9a1b19e3a6c72cc80c0c5bb4.1765970117.git.lorenzo.stoakes@oracle.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: LO4P265CA0192.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:311::20) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) 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: DM4PR10MB8218:EE_|DM4PR10MB6253:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a51007b-ab37-4232-f629-08de3d67a870 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Fne4e4fYgbb/QEWlyVpCFO4PG6J1nXYn3l8S4e2ftIM+MXK6c6ce46GlZB9R?= =?us-ascii?Q?Eq5Zfxwjz/plnYX1mYcGkMp16yhvGzBEeiB6T4z6SHnPe7flXsZPsJMUId2o?= =?us-ascii?Q?+bxp9HcmAjeUJtIQGRg7MOfa5c4+E/3TwDcGMST7BEzmC1NCWt73OU6H826/?= =?us-ascii?Q?oAASDJ/idEyr7n+lfwFUjD9N7W/CDLeP5H1wcK95INMUNIpZcZZ6WPs0gjDa?= =?us-ascii?Q?eTz9dZ6nuPgEpHiu36HNLWDB/JKd/ro/rM1UwSATiwdZqM6u7PdaRtqmiLCs?= =?us-ascii?Q?yUR6TsRga+P6KSdMX1eroFvFnCjgp8XEYD5H7Ux1zLWPMQ1EaXItNPDsAxov?= =?us-ascii?Q?iA3V+U2IZj4l5a0qDYfqYKjup42jcrYVA994Sya9zoqC/DpfSvoPym445JSv?= =?us-ascii?Q?BntuqYw0JYWUnLY2Fg1GaGABssvW4ixJw9XKH0EUurrfdROg15uehyOuJQlP?= =?us-ascii?Q?ampCYWb+jkXACWH5nJD9O6S7iChS2cmbRvhbKeB7X/FauzmSKUZ8ENHSZrrg?= =?us-ascii?Q?EIAapMsGsMImU/0RqaPpHp8Q4wg4XvV7oBYY1XiLAesuEmLwzoaAyVr+C3Ij?= =?us-ascii?Q?Qep12aLbE/9phx6HqqkJZAGojm9kM9b1QiDqyksmgmGUoljTBA+5MEvT6Ng6?= =?us-ascii?Q?wOkngBZCoytl59Ae0v4Z4mLY7UOYfGLxJIpliqtE5m8ZkLLhi6fLNRv5dHMp?= =?us-ascii?Q?bXELCa43CgYYm8Q05YV8APl3Bk3V1bNKT5DJUf8Wz9tVQ3czD9eXTlWhKZaE?= =?us-ascii?Q?wWlEmoGPbtUi9ftJlmrCdd6/aIzv8prjR2uBio8cRpboERfHG/sFrXOlU8z5?= =?us-ascii?Q?M6rOicimdO3KDpypZpzkapJ9TUJOS4nMnAFIedddgvU6e0In2B4sY9BpMGV/?= =?us-ascii?Q?KgrxZZt4hNZbcwvWXCXeiEY7H0Gsmkelt56XgngOS/RmHaYBFzQjRzeBRJyr?= =?us-ascii?Q?xob+dFE7MJyc1uoMR5JCZj6/Dg9ooxLm01iW41kY+BAvrrQllncgK0z7KxKk?= =?us-ascii?Q?QUvprpVmd7zgOMHxYCbsBZvpZ/yR42n1DJOrXHAyWfSz7Mm/czyxxqNUOSKp?= =?us-ascii?Q?OcNpCndFURWZbvoUncXF0ZR5WOIIIkk+AJrHBNRPxPKQaXTOUs9hDKcIUrZS?= =?us-ascii?Q?KYxEz8cTOFqCpvTy8dX/yvCXM9W/Sf04+l8xW6Ib5+tcrM991nh8dGIdGwD5?= =?us-ascii?Q?LAKu843LD1sYUO/D9YVWhnMWGyyilK7m9WBKXsDKL+3slbdV8QoVJABDoCNi?= =?us-ascii?Q?E2bAt6eZJn/cwQHAyejxjyD7DlvWyMBKuKgx3XsLyJ7qBSN/lxS1/aRqxWt6?= =?us-ascii?Q?8rLjgzR1muA/nH9tw/jXu3R/M/PsC+AYfwtSsktruwWtvDyth+w3yOAWuSAY?= =?us-ascii?Q?9XNIiVUZ3hCohP/noL2jvmGVHaeGF3vHd6eQr9jb7Lqb8rSo2F0J38Q+dxle?= =?us-ascii?Q?ugsKsNxGP9vRdLkaLvdlmPuWlCZZlkCP?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TGIcxKC6THGJ1e2bRfD1v74wFvEpjeh8VMEo/WkSfOY5uWiZObhtkEHjg3QM?= =?us-ascii?Q?OboPlWgcDsQY0XpDRI5laG2jUOIvh8ru/G0eMPLD+Y/7GbyzYFPYllF332uH?= =?us-ascii?Q?aIceMkjiagOUDyGpprZ+egTWaHWxjonT87hptjNZpmBcYjGQORpkib1j5feC?= =?us-ascii?Q?o7OiEhsIJ1htT1tOB9xkXNtLWRWJVuk7HuKLoe0S2qZVwSo1TnTjUFgJ/HsX?= =?us-ascii?Q?/Hyl/AVeWLrwtD5RFVAWI9SOkbxg2wD7YLjjDo72lmZWUfuBWFfTi+EWLvOZ?= =?us-ascii?Q?YHYxoG8y0mLejL+PlSU79TiEYzXXDU+8xtHZlK4I4pNUuYu4wrZ7dBbbVR48?= =?us-ascii?Q?Z4bV8fvCAvPge5kTNtCda9Z7Y1rnjcC8YnZZy4++MI5urTlpLrZC3LTWkOrB?= =?us-ascii?Q?BIZeQfzRISPMw/TCdrY1f7jckg7gMwMXWWi9CnSA9+Ynz0H6TK2LwnySR22A?= =?us-ascii?Q?NgEM+YOhIT6JHXmPtt3dDO1656rnnv54nufGgra9xSB0lbOzE1ocI86JmHS8?= =?us-ascii?Q?ULMxJsSryQ1FDKBO8b0qbT9tj8FYgPzvo7ENzJzJnxw8/Yh5P5RBQsCUYiH1?= =?us-ascii?Q?/tZK9Bu1OGgNXxPzW2LGtTGQxByGU4bUR6zDPqMQ0MDPyx2dJbugyGeFjQav?= =?us-ascii?Q?35llWZC9teMnLP2EGTRM4017H/2LPVdQONYOavtOorZ0KWvpPPSD72a/A1qw?= =?us-ascii?Q?aTEDHJtTAqmWDNvU6hjYST0zKzh/77/aHSxXQFJKUOmPwoAcTYfQ9zMSAEz6?= =?us-ascii?Q?mbISwBDQGc88UnsCyzZ5utrgyWx21CiLiWEf5M26m2wlHxJz6JdIwEjRNziW?= =?us-ascii?Q?Bg5xW7C/IJ1NxCkd60EJiS7mno+MIQuvUYPVZZaBHaFjfusMe/D9yBzUbNxo?= =?us-ascii?Q?hLulNKHZgG1ZGVUyZbH8VupKdjequQJvwgMngRVu67aMOPERXPsXsl4m+hhr?= =?us-ascii?Q?PfEGA7wU/5poyeaxA9rCIId9r89RHfZv8Tb2XNlufFLRFkHDurgCYDndPFzl?= =?us-ascii?Q?sBGXVrKP63kLv3r3RyvyW96hStJ+2DVvk3Vg7Dij3mZZjqFV11JZxBJPX9Nf?= =?us-ascii?Q?AFfT+sONrNoFQGdg5Rr+wjTPv3tl97Q2Wk0iil1t5UdTbD6W65JhxVJeN58v?= =?us-ascii?Q?9O71aqH7PVo+PxAERlqf9FgD4U4H/a0TFX+VkBdv3J8QqMTPz9Aq72oEzj0a?= =?us-ascii?Q?iu7tjEPB114mUFnxLtixY6k39T+HMIeVJ5bcjQac45O0ND3KrQRJIkxK0nCg?= =?us-ascii?Q?Vwpg5s3Jd2uWom7l1Lf4DcXYgk4P10Z9QHQdfy8Td8ebNRG2MJfAOj4jcHZH?= =?us-ascii?Q?Uz7qDTxUqJ/Wu6Mm2MVUlyB692T6+cslw+gJhFy86N89EFW/fWTZi76tsbhZ?= =?us-ascii?Q?JoMupn9NSHepL46/GfOpwNVmtLsa6yTI2P0OTcu2a19bDXM4VbmNjfFV7g5d?= =?us-ascii?Q?qIZiMJPwp9oj2zBtU/v3+jJxQW4QUxgAxOyPVa4lfvtMemGqAwhBuf32EqEn?= =?us-ascii?Q?TYyBSMI6SemUzyTObo5MYRxLfg2+3IOYxANYiVo87ldiAeaCOM9w5TGtOgB6?= =?us-ascii?Q?97tMNJvrTGUqT8S+xtF2I3TF1eiYS8SvtBbfi1XZmdFh4lDwW1LkQUce0TAz?= =?us-ascii?Q?MQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: EJNrURFyAREqPI/UJwCgbrq2DQ5RnHCtHmgg4R2xX6iVZmKQW6RzjGyc4D8Rfe+BjQi8EDuMkblzAGBEeypG16q3q9hj8QTcjzShR/aAFw36R+N6zX+N6+5+LYR4juPW1Z6SFTQ5tnJ7WP2Z4if8y69ytcaTKBPkujPvHKjMEyVcYU63Y5JswNUQ9FT2ZsLv7MmcYCEwLvkjkdYqeYUcgkjZzH8nTo42GTLIGFRtmTzf/Hi15GtCMrid4Db5MKhCkCaGjIoPdOcrT4rOIpkBDLSvRYx5rQSPu5lNWO2/mNBnXeAY/KrY7OKyIssve4FMk5i1YCPi2NWxUUvD5xA18qDA+y+NQ4NTjEljqw65pZrTDVGK4nWDaM67WBOcdtFrUA5+jgW9P16uRIntTsgKHzoFrlv+nAGhyukMu5OPBAzduMcwW2/CYOji4TvznpYEvLdFHjvkwxXdszx+mnwfskU5zWporlG4ewuGEGU+sjxAR6VNQE6XjOo8kj2uESnMOpBE+Z/4CCCxgd4sXIOeMd0DCIfDtl9WzSP0KAZU7d4foows39/Ve4NGW1ltljgndehWWJL3Lf1YAYxOEWkP/7cMHhByTAJ9lvZjftqDCyI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a51007b-ab37-4232-f629-08de3d67a870 X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2025 12:27:35.2170 (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: LQ/cE7AdvG7ZWnPlGgafmrqgRhTVmLZ4gEcJGFGS51pwdq6sqd1tS2TanXIPMOZYCLO6qyyz+PyhHg+6Y7+Okzj7U0tI+dI3Dnp7Zgp8lWQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6253 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-12-17_01,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 adultscore=0 mlxscore=0 suspectscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2510240000 definitions=main-2512170096 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDA5NyBTYWx0ZWRfX1sf1d43DxZF0 f+E6u2Z+NgFuSKTiB2iOaN6eDpTfExaMNKMzRgl7C8Z58fgMQJkUOin41UOZHPRn2Pb4pdTRKPb iEccfjsjsRktAhkvPPAAemBDNgWsmbWYo5fl8Tbs75EkUrQWkzCw2eYGZrQTOJekGXuiNYU7O1q LB4i94eDE5HiKSWUTy5ffDXfvtjp5vGz4ZV6PaxX9PdV9diOVl7/mUi71DDQKsORdES0FNcTrcb qG5fJ70y0Nf38M2zQvedRQJCGgsRlUMW1+vX/3VPLWt9kn6jztbudgl+gGXm4iglfHWemCaIo4H tS1Qbef6Awbq9exdztc59HUdW6aEXFAgZcREYER1YGt0wfrSi7HvmFjYYCjyl32gBtEYoicMDE+ vSTYT2fRxpv7i//v61649R8RIZY/Z/pC8Ggt5tLa5C1LYyK5IMs= X-Proofpoint-GUID: 82cHcUnRYlKV0BUXjr6pTNwDv_ontE1B X-Proofpoint-ORIG-GUID: 82cHcUnRYlKV0BUXjr6pTNwDv_ontE1B X-Authority-Analysis: v=2.4 cv=BYDVE7t2 c=1 sm=1 tr=0 ts=6942a1bb b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=wP3pNCr1ah4A:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=67mXQNmqP2celrMn638A:9 cc=ntf awl=host:12110 Content-Type: text/plain; charset="utf-8" Specify which operation is being performed to anon_vma_clone(), which allows us to do checks specific to each operation type, as well as to separate out and make clear that the anon_vma reuse logic is absolutely specific to fork only. This opens the door to further refactorings and refinements later as we have more information to work with. Signed-off-by: Lorenzo Stoakes --- mm/internal.h | 11 +++++- mm/rmap.c | 67 ++++++++++++++++++++++---------- mm/vma.c | 6 +-- tools/testing/vma/vma_internal.h | 11 +++++- 4 files changed, 69 insertions(+), 26 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 469d4ef1ccc5..b4d4bca0f9a7 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -244,7 +244,16 @@ static inline void anon_vma_unlock_read(struct anon_vm= a *anon_vma) =20 struct anon_vma *folio_get_anon_vma(const struct folio *folio); =20 -int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src); +/* Operations which modify VMAs. */ +enum vma_operation { + VMA_OP_SPLIT, + VMA_OP_MERGE_UNFAULTED, + VMA_OP_REMAP, + VMA_OP_FORK, +}; + +int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src, + enum vma_operation operation); int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma); int __anon_vma_prepare(struct vm_area_struct *vma); void unlink_anon_vmas(struct vm_area_struct *vma); diff --git a/mm/rmap.c b/mm/rmap.c index de9de6d71c23..f08e6bc57379 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -232,12 +232,13 @@ int __anon_vma_prepare(struct vm_area_struct *vma) } =20 static void check_anon_vma_clone(struct vm_area_struct *dst, - struct vm_area_struct *src) + struct vm_area_struct *src, + enum vma_operation operation) { /* The write lock must be held. */ mmap_assert_write_locked(src->vm_mm); - /* If not a fork (implied by dst->anon_vma) then must be on same mm. */ - VM_WARN_ON_ONCE(dst->anon_vma && dst->vm_mm !=3D src->vm_mm); + /* If not a fork then must be on same mm. */ + VM_WARN_ON_ONCE(operation !=3D VMA_OP_FORK && dst->vm_mm !=3D src->vm_mm); =20 /* No source anon_vma is a no-op. */ VM_WARN_ON_ONCE(!src->anon_vma && !list_empty(&src->anon_vma_chain)); @@ -249,6 +250,35 @@ static void check_anon_vma_clone(struct vm_area_struct= *dst, * must be the same across dst and src. */ VM_WARN_ON_ONCE(dst->anon_vma && dst->anon_vma !=3D src->anon_vma); + + /* For the anon_vma to be compatible, it can only be singular. */ + VM_WARN_ON_ONCE(operation =3D=3D VMA_OP_MERGE_UNFAULTED && + !list_is_singular(&src->anon_vma_chain)); +#ifdef CONFIG_PER_VMA_LOCK + /* Only merging an unfaulted VMA leaves the destination attached. */ + VM_WARN_ON_ONCE(operation !=3D VMA_OP_MERGE_UNFAULTED && + vma_is_attached(dst)); +#endif +} + +static void find_reusable_anon_vma(struct vm_area_struct *vma, + struct anon_vma *anon_vma) +{ + /* If already populated, nothing to do.*/ + if (vma->anon_vma) + return; + + /* + * We reuse an anon_vma if any linking VMAs were unmapped and it has + * only a single child at most. + */ + if (anon_vma->num_active_vmas > 0) + return; + if (anon_vma->num_children > 1) + return; + + vma->anon_vma =3D anon_vma; + anon_vma->num_active_vmas++; } =20 /** @@ -256,6 +286,7 @@ static void check_anon_vma_clone(struct vm_area_struct = *dst, * all of the anon_vma objects contained within @src anon_vma_chain's. * @dst: The destination VMA with an empty anon_vma_chain. * @src: The source VMA we wish to duplicate. + * @operation: The type of operation which resulted in the clone. * * This is the heart of the VMA side of the anon_vma implementation - we i= nvoke * this function whenever we need to set up a new VMA's anon_vma state. @@ -278,14 +309,16 @@ static void check_anon_vma_clone(struct vm_area_struc= t *dst, * * Returns: 0 on success, -ENOMEM on failure. */ -int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src) +int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src, + enum vma_operation operation) { struct anon_vma_chain *avc, *pavc; + struct anon_vma *active_anon_vma =3D src->anon_vma; =20 - if (!src->anon_vma) + if (!active_anon_vma) return 0; =20 - check_anon_vma_clone(dst, src); + check_anon_vma_clone(dst, src, operation); =20 /* * Allocate AVCs. We don't need an anon_vma lock for this as we @@ -309,22 +342,14 @@ int anon_vma_clone(struct vm_area_struct *dst, struct= vm_area_struct *src) struct anon_vma *anon_vma =3D avc->anon_vma; =20 anon_vma_interval_tree_insert(avc, &anon_vma->rb_root); - - /* - * Reuse existing anon_vma if it has no vma and only one - * anon_vma child. - * - * Root anon_vma is never reused: - * it has self-parent reference and at least one child. - */ - if (!dst->anon_vma && src->anon_vma && - anon_vma->num_children < 2 && - anon_vma->num_active_vmas =3D=3D 0) - dst->anon_vma =3D anon_vma; + if (operation =3D=3D VMA_OP_FORK) + find_reusable_anon_vma(dst, anon_vma); } - if (dst->anon_vma) + + if (operation !=3D VMA_OP_FORK) dst->anon_vma->num_active_vmas++; - anon_vma_unlock_write(src->anon_vma); + + anon_vma_unlock_write(active_anon_vma); return 0; =20 enomem_failure: @@ -361,7 +386,7 @@ int anon_vma_fork(struct vm_area_struct *vma, struct vm= _area_struct *pvma) * First, attach the new VMA to the parent VMA's anon_vmas, * so rmap can find non-COWed pages in child processes. */ - error =3D anon_vma_clone(vma, pvma); + error =3D anon_vma_clone(vma, pvma, VMA_OP_FORK); if (error) return error; =20 diff --git a/mm/vma.c b/mm/vma.c index feb4bbd3b259..e297c3a94133 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -525,7 +525,7 @@ __split_vma(struct vma_iterator *vmi, struct vm_area_st= ruct *vma, if (err) goto out_free_vmi; =20 - err =3D anon_vma_clone(new, vma); + err =3D anon_vma_clone(new, vma, VMA_OP_SPLIT); if (err) goto out_free_mpol; =20 @@ -623,7 +623,7 @@ static int dup_anon_vma(struct vm_area_struct *dst, =20 vma_assert_write_locked(dst); dst->anon_vma =3D src->anon_vma; - ret =3D anon_vma_clone(dst, src); + ret =3D anon_vma_clone(dst, src, VMA_OP_MERGE_UNFAULTED); if (ret) return ret; =20 @@ -1862,7 +1862,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, vma_set_range(new_vma, addr, addr + len, pgoff); if (vma_dup_policy(vma, new_vma)) goto out_free_vma; - if (anon_vma_clone(new_vma, vma)) + if (anon_vma_clone(new_vma, vma, VMA_OP_REMAP)) goto out_free_mempol; if (new_vma->vm_file) get_file(new_vma->vm_file); diff --git a/tools/testing/vma/vma_internal.h b/tools/testing/vma/vma_inter= nal.h index 93e5792306d9..7fa56dcc53a6 100644 --- a/tools/testing/vma/vma_internal.h +++ b/tools/testing/vma/vma_internal.h @@ -600,6 +600,14 @@ struct mmap_action { bool hide_from_rmap_until_complete :1; }; =20 +/* Operations which modify VMAs. */ +enum vma_operation { + VMA_OP_SPLIT, + VMA_OP_MERGE_UNFAULTED, + VMA_OP_REMAP, + VMA_OP_FORK, +}; + /* * Describes a VMA that is about to be mmap()'ed. Drivers may choose to * manipulate mutable fields which will cause those fields to be updated i= n the @@ -1157,7 +1165,8 @@ static inline int vma_dup_policy(struct vm_area_struc= t *src, struct vm_area_stru return 0; } =20 -static inline int anon_vma_clone(struct vm_area_struct *dst, struct vm_are= a_struct *src) +static inline int anon_vma_clone(struct vm_area_struct *dst, struct vm_are= a_struct *src, + enum vma_operation operation) { /* For testing purposes. We indicate that an anon_vma has been cloned. */ if (src->anon_vma !=3D NULL) { --=20 2.52.0