From nobody Mon Feb 9 11:32:15 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