From patchwork Wed Jul 10 19:22:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 13729604 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id BCEB2C3DA45 for ; Wed, 10 Jul 2024 19:24:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 94F0A6B00A8; Wed, 10 Jul 2024 15:23:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8B0EF6B00A9; Wed, 10 Jul 2024 15:23:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 636066B00A8; Wed, 10 Jul 2024 15:23:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 35B396B00AA for ; Wed, 10 Jul 2024 15:23:47 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id EC35880232 for ; Wed, 10 Jul 2024 19:23:46 +0000 (UTC) X-FDA: 82324817652.24.E4163CF Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf22.hostedemail.com (Postfix) with ESMTP id BDAE9C000B for ; Wed, 10 Jul 2024 19:23:43 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=YAUTbMqy; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=wuK6GlnB; spf=pass (imf22.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1720639407; a=rsa-sha256; cv=pass; b=1P1TRC/+CG0KNxKmkqamVeZkqtuDHoVRb7RMB5OPXyGxGpxFj12FBKNoIkc01h+hkPCRZZ VwPg2dwpang5l9NrF1URWSRvGLsXZIy+8NBiWYJaEpbZZwRpyt9cISQ9bL6tYqAdit1RR1 sv9HsKCCj3pPBULM5WAiWmw3HLem81s= ARC-Authentication-Results: i=2; imf22.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=YAUTbMqy; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=wuK6GlnB; spf=pass (imf22.hostedemail.com: domain of liam.howlett@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720639407; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=QcDp4MIWJkp3T5u0KghSh3RYvYOlDVjCT2K1TAeDYaw=; b=O067YhV757oUINrePcqtgF7jfgVA+X02tZ5OVwQ/d4EqfIM6BH6B0Jm8LhyCeAu+1BlEYo 9i+uosOy66fJO2iR9aSp8ZjemEOxzXjVFAfoLp+eWW2QdoKYQOE9WWXurcPgYwBo7q1wgV OlMXO9iA9+JbGOuO9MLIKdwXqYeIRmU= Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 46AGIInG012020; Wed, 10 Jul 2024 19:23:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= from:to:cc:subject:date:message-id:content-transfer-encoding :content-type:mime-version; s=corp-2023-11-20; bh=QcDp4MIWJkp3T5 u0KghSh3RYvYOlDVjCT2K1TAeDYaw=; b=YAUTbMqySHuKpxreFcD7B/sCb/yie+ zBXIimnpHNov8l6fgNwgOBb/Poe9LJtxpDYScl21qVifa7x58pkVKCxYJfkjX+mH icyOFj96rAhPHeGQozeEMbpHdnc5fpNuIbJp4fvICqQJdxlceVlqa9BXPjnbbgE7 rTazvX1QSGLaeSx+USIa3z8VzW6288dKE1w9IxOWHLpXrG3mObVo2ZIm2rA3BvUF KJL+2TYD99MXMQofRMAq1E+ZdSvKYVQHCRn8SyPxggJfPKRyMfINf3IAGmW4n/Bx j1epwiJ+u1wN7Uf1G0XwUZHvsMjE5WIP5EFcaewXyO6u0RRSX5lHyr1w== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 406wkcg0bc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:32 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 46AIjken030110; Wed, 10 Jul 2024 19:23:31 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 409vva92t4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 10 Jul 2024 19:23:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D0h7+LYNdwa8y/1qVH+jkVjXRI2oXNsk1HvMELzgBFepyOxtZCuSM2LvErj0iGK9pZYAHEkM+rYUyWdKwegCQ3TFRULgP7D1lJ3l+dRqn5mhFdeSUDD0rVYmCCK2hxEuPUSD8buAC4SMAbwXK3GUZyRqGwI5vltOcWnxhy3g9YxBJcty444sGAwjaP2JRn0Z902e4r37Oaz3RfBKmF7yi+uNyBVkC6QzQR2gouiitmdNx0LzUZrOvYXFmE7MpGJKurErVOSpUUuXr6CICnti0a6eh7M+krozB0stnGx38BkeeTEoyXWxrfKNGNJfI+qfRIA3cyfBCMY1+DPHBB7yiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QcDp4MIWJkp3T5u0KghSh3RYvYOlDVjCT2K1TAeDYaw=; b=hMrkul+ALo9Mu+w6byJyyIjPFueg0oJWUnSv3GiCV4cv0IE3CjfBcQiv6I8vhCOQR2dw1EGftTKDf6OuH0O2c+q2S3uRxWucMzAwkZR5lEK8V3rGr9sLaOHROyAPrY8DRKVOeWwcsbMkmq3cKQr8RkA8NjPU+fLruZ5Zvp1hNfhrA4H8mr/IfIssV7I/UcoJqPrctqsFUgJP9ugnyFF3wN7vkG9qRe1foZNE8zKiXhYSSeocLNDL9mP8440heq3Fxr5EuU29gn/oZeBRUOuzSheZ/ysS8uStC7LfiKpeFt28IwxO9YG9D3GOk8OMHyNPCRlKkHinPTZnTP9k3qAX/w== 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=QcDp4MIWJkp3T5u0KghSh3RYvYOlDVjCT2K1TAeDYaw=; b=wuK6GlnB9YGeFQM9vU8vt9A+CzzUS5bvxjcO00pO17AE715v5xuNj6UJ2YWfhP8OJo2PX0fj0OzakxnhkiczPYAT0+agCLx7905FaIIACXVFGX1TebK+NGxHTWQl1yr1lCov1cS+4u6uTcRTYGNxKMIoDOpN6QWa2k1f1P4x4qM= Received: from DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) by DS0PR10MB7295.namprd10.prod.outlook.com (2603:10b6:8:f7::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.36; Wed, 10 Jul 2024 19:22:58 +0000 Received: from DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490]) by DS0PR10MB7933.namprd10.prod.outlook.com ([fe80::2561:85b0:ae8f:9490%3]) with mapi id 15.20.7741.033; Wed, 10 Jul 2024 19:22:58 +0000 From: "Liam R. Howlett" To: linux-mm@kvack.org, Andrew Morton Cc: Suren Baghdasaryan , Vlastimil Babka , Lorenzo Stoakes , Matthew Wilcox , sidhartha.kumar@oracle.com, "Paul E . McKenney" , Bert Karwatzki , Jiri Olsa , linux-kernel@vger.kernel.org, Kees Cook , "Liam R. Howlett" Subject: [PATCH v4 00/21] Avoid MAP_FIXED gap exposure Date: Wed, 10 Jul 2024 15:22:29 -0400 Message-ID: <20240710192250.4114783-1-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.43.0 X-ClientProxiedBy: YT1PR01CA0094.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2d::33) To DS0PR10MB7933.namprd10.prod.outlook.com (2603:10b6:8:1b8::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS0PR10MB7933:EE_|DS0PR10MB7295:EE_ X-MS-Office365-Filtering-Correlation-Id: 5b6e88e5-1ba9-4a1a-0fa8-08dca115b4e3 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: 5JAc1IG0nWkQTFl1EyyO/Pbh9dbEi8VQW9K8UjgDiQaWr3lrmbN3mXZCEntNMpd0WczvA9SsxhapwW6acdYtUAfOMdykuGMce/Q7UBMh+WBGtv1Mtu7+Dazvu55GHhI7ntuLYGlpqfl2kBF2YMgWw+1nQx3QkWJ4mjClG3azj4TNb+ovfcZV7SeoG6B5fMQ+yi5y+NXzd0APqLk/OTeIohzoPnWd03eixtHK74+XXbH+sygbFhXOLzbdx0BRFIvjv8mUS/VaYPaACVfRGwH4DtIVnHspTG52XwuZrldm7zl1DJ60+hcjBjQSsZDm4v/wWyrjCY5Mx8RJP3Ex5QhWzaT89Ky2nnQHayIaRZ5cy0i9D9lkr4gnhSZBiDtAkJhJvjqyk25DpYmdww5y4D/QwxjG1tzLprF8OYeTHFXGiwcaBhFXpAND4iiSuZ3aiH0MHaehaECmHjtJZXbZ3Shk3PjgeBAdzMqUKCKnF7Nam/78b1KIUerAL43C2i8dgDOxdRu0djnXCoCkoCLSW6IubiCPp7k4nhuUqI2BVHdABrKlA6v8j971WY1NNZFdxf/AmWII0Ip9fTUtePA+rhWRB9dNsMOlK0n0qhi0FTVTa4sBS89YSv9fzICzRxXGJecC7vEvhnKTH4aup/9FLPaEyU+rOIO+Mf0ytp6qv5B2YcC6REcyX1xe9/9UiXuJtoRECneoc6ldm0Y6Nq3RBj/ao44XUX0jsFQ7rVBwVJQJwoZNRMEJKzdLQpjklmjkLzlyK+6y5MIgZr8ey/t/mD7+NZQRAt1PTJEfb+NBvzrvbG+IaP6uZiqG7r7NDDDeeh6Tso/M3LRJoH9o7cYK+qAY6CAZEoKnb1/c4XsfvBU4rzCFONCa58UEM6SUYR33B/ZPQ3vJc5Jz4ZdNMQpF1udOT/9CpXf7jPB0KwXLACivpFZscN0ERlqzRn3DqZatfUxSRCL4GsFIaJrkmj+PbXmy+llad0ua6tV0AvI/qsLiI80gffn6d9wu8GOLkHvj5S/iG1BVMHZ2JFvtzm27KRg4IqG4nHfZYzeqF8pPYdqUJLFX/1LpBRyPC0n+RgUphyYm2HI+AU6OdvR28nzVJafrgzwaE6I81hjSKnMyefg4L++LLFvA4IpvOrxlIiOg4fWTjuX89yNihGpK7jum2VPmNfm2NwivaHKIPROWd9gqKMKFaszc3cogG8IYvV/Vct8XHJFvYi6R3kZ4L0j1huB8L/+XjEx99XVLCPW+2e8O/Lf3UTXI754oTIG7wqAsf+n6oMoDdwwHv1FngFofFWso7cyXaI/AwDqd9yNpQN3e9dA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS0PR10MB7933.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Q/U2S/DRvEOMrD/4eY12YJ0o3/xRZwWw9Odygpugvj4VAtYahZxRmFbE86TVcromvwaW+JBphp5uDnl3jS+FKrH8Isb1xdgAnW6CKHg6Rr+4x+NjmgNSmxYXQwRX8QF0OwdNoGGtETM18KLJSA2UdH8GSidRe4O4WoKvz37+T2qcz803nxkMD6FWwSK5l3PC7TsSwKKFGM8BTmOoO4kxWRd1Zwma5GZY6afl8bTVo9Yb0pmwK/mU6CxbLAGN5jBdB+2N+mIMyNfCPmqGkn11u4UVI/z+IbJUVIUuPfoxRZDa6niyEQ0F6Ps29PpTEfDcEMAaMTY4XRqsC2V349rPtmB8rnaDBZr1W9k1uXTxHEKpdr5UZwH/CFNgmnI2lfOUf3vFYjfnXiVVvuPfSm4X+Pguk/4/vS1bfQJHpNXmOzNHtPCCXNsQL4lpvAcQT23tv7PB4D2ABWJARqUrS9KqoAYaHvU6NbtW8w3GgmgBY+3TKJZMToyaTz9z/Cp6FCi+RSzWVxk2riJmIc7t9ObnZDUHJh/Ypv3SKF4xIhLl2AB9YWfu6XlEHON53rcw8Z7TL9PbPxjJCNcp4FbZYTFGY0y2l+XxEQM4LG85s4dOH5WTvt4R1/zLLRAVsUK3ol3L43wi0t2KrUmnQV3EwSc2KlLAcfLAyu7eZXcnILc5ctAeGw1bwdAiuF0hQcoBR6c1lQrbLJfZxSJUF4+b1YEwLHRzLiEaj2uSZLDvmgHaMWV19bgo2zmGOZuHqQW2SvPs5T7OwlEjVWE16IapJsdyQTFmnmxp19fnTIOIqtohK9LGHOX389n75GI7Islm4RUU/nmGgGqzpUzW7XQ8rqxnfOq26aejXlUCL60FxbTDuxJ+sSXb6E/Z0MAVfbl343UILRgDqIUNifkaJROdFB1pE8rugthooYeX9gxvwAUQiPGBqbe+G6RlbSu2dfW963VOB0eEVbNDWyO/xg/5+WXQXv2q0dXAV2yaVemHiJ3Nzex3VVaTjjDjxMPE+VhXQFmtTyB4WH5h7tGIYysyhUhVFMFkFG5UgR1jkmqDNNsjOarOOkvX5aYv2LXv4oiUf5TpjiuSiGbOeDhMFO30UJT/2RTu83bBsop736bEJXW6AUzcAE0aVfFH64lrmOR4hHb1n1z2tPo1rnUL2MFfRTeel10FYt6QhNCl3pFELuJJYB+2rJeWMMUcCD7scVErBH669EO0z0lCuQKmddpIpk2S5BfL0kxAvON8S+n3B098eOM2nzsCLCfTPL33o27LJ7grvSstj+NTzE4g7glw95itxMxpzwa80vdYwJXOYxU6kUb1E1Kmc9xdhJ7buqUVfL748dr27y3GxWq634wG88kNF1NODI95vz7Xu8FTI7jZkVG4Eiccl66iubKlR5qIGyNimgrEP3bO3ZSUWmYIZCCqI056fy75ZzO1xXXp/VtJdadGeGC2/RxBYqVzi3zPPNPjDh2InV/KdwVICy9b8n8f6iwL3ote15kqvAxlO5PVvLQOzigSJRCxVIzJRDWcJM9sL40vKj7sCjJXQqPafaJV23KRPLvoZXypyUXoOlU90ik1WuCcg+BWnihUMC/5bjmGwIWA9qKaA3rnj38Uw3nDew== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: s4jVBkudTZ51hdOKuYaIVrlNbz2FMjHXLjyq81ovTRqpluTt7aahTrgd2wrC3U7+C4qATADgpuQtXhZTXTBHxUOvENeAHTUw+nE1q3IiPvYf+Wmq8QFMAcW4Au1dOE+2kgKmUWuUuirXC1QIv4CNFE17i5xq1OdLwxZrEEqETgufjDAuBUlNTc+ur74XSuHEHp6usOzFfH6xg3sG3HAy+dIz0b5YaFNYrs0esSoHlF9BHLuH4QB+9UoIbfCcLkZQDnik7RiX6568cfN3RKTdBrjqN4gF3yQ/5+mB2bqdgqtdncAcp+6jnKvtcgchG08mHwiBeksx0L/2PLFJtp+OnhdnDtuXR1kMBtx7y3zW8qw0iy/ej74sSXxkWW/kSamgBNEcpPWuyqVdUSwEb7DS6hJTthqeRk9Rz8hkaTU+DrzVkmbiprANnV94Fs6BTI5baAHI2YgDPgYtvo0TDfKgJIm40DWd4Y6KvtbrLZ2TO8YmcDff9NqY4Ucbl08MG+WpIc4gGM+KRci4ughh0YYcReY7dTjIujqw97vaHYxPO5e0BYK+P2SxKStjnebyMCHmEqzTsZBuaOGayn7T1v9CJGibc3IdQ6/q1W186Vahb4Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5b6e88e5-1ba9-4a1a-0fa8-08dca115b4e3 X-MS-Exchange-CrossTenant-AuthSource: DS0PR10MB7933.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Jul 2024 19:22:58.2426 (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: ny5kpE/Nv11GYp19qAU3jjqMk3Iu/9kp1fzxl8/fxYtJHIyZd4+t7WasRcQnw4vu0WSO9uRTf7zFTxPLjWXKxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB7295 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-10_14,2024-07-10_01,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407100137 X-Proofpoint-ORIG-GUID: iuKW4JrqvCR89gc6JWZD41DBF4nwRF5e X-Proofpoint-GUID: iuKW4JrqvCR89gc6JWZD41DBF4nwRF5e X-Stat-Signature: jd8wmihbwjnqhrw1h6gjrzw7eb4j79pb X-Rspamd-Queue-Id: BDAE9C000B X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1720639423-914646 X-HE-Meta: U2FsdGVkX18VSInwcbokLTRGc/8jf4roXfDthNdXFwb0b6/QnN7+uAEm5GPvyN/Bkhol3TTfEIBFk1FJQNvtwuqChzwbPSYBZemqreZzHkg1CLZQcjJUHWcJFkkHlC0wkUzhnda+KxamwbvzuVM3f11xjHS0O7Jm/QYuvqghuQyjETgexhKcSr9UIalFv6VuXSFT3UJrXi4MUcsuezAZ3n+7esTQqtno/RiTD568FC8RzTKDpi+dyr0a3/n/U+CSOjzGB3UbDD6Y+xtkS3Ld6VyaxUZIJT7U/EO3Kn/xkdhJ4kPZ0LmfKsuKjKXTwlBuGuGKV3c/cOtnaiU1iv1SLCxhDG3NSguW2N5zPfCBB40DJ7OoltyrRrsSyrR6oR9j4V25aHZwrBV/7hLQPvyZuZSLMs5fA8O3UdCuUBaep22jlJQJdnPW72xAOJm/NtQJL4LxpBDdyNwaz+fnuNy/lB/715vNdgTKGhitSycYpVOIZw2YkXiLx/q5DUP9CBrs/ewlxmhiJB06CLe9sjqCLZys70R5RLA+aWOhJqOQHzfFnVoLpz/lCy8+b+U3WC9EgQf6SdmWZB+F8rFa3U1uZ3oOmZ1W24peunaI+kOXeOtSnujVrLMcNHpSX/Rat4bLseK/Puqt73yUwfrw+NIIqPX7VLPy7qIFh95IOrvIg+h6Dxa/Pju2pfB5w/MMimksKjuQ0hUp8gnjkuDGiJADJTVqBDEiVWUuYunKG0S70Qi/7MHhryfrHN6lJNiL9ID0Z3iUHl4B3bCUQ9/k1tLxBGQOjiBuel4UMITg3BIoVbFXp7zgA9vUyAddyo3sItvJzRUo9nEfBzKwm+NwzJA0myyRQAOOnl1kMhMDnm1bfuUiTq/WtndX7FuxFkxvZBLzlIUc7wd7Tu6hnD3uEX18j7PAiJS1MFyrF+0PHY9i0AwHU8+gtwVUXGQpBy+/KEnW3sMPoR6w45ci76+DbTK Puc9iYZE fPulfpbFZiXM6CuefcKHrOGmjpneDFMhAGWWnfYnKMyIlkTiR7M9Gz7YjwO3LzKhVifujCirfZjZhZvucPT4IZKF1vRhlzwgc5Am4LjO6Xj+qZZ/yt8mtCmseZLOP8DVnApTVCQZ8MCK+YFvmwoKbS43I4R1DOZFu9ILYDhIcDIrZ/ZWUzSf0PSOn1gNBCP9KCeyptXrFJchMsH7B549sB6reaLt7/ZCqLycRLGicw0RK4Mr4FOeAHq27+KDvHRrhE576tTxih2650ubEUu8EUfoKSmfmCT76KvreDDZKDxG2I+IN9N1w3bAhV6pIpFezCQWDd/a7C2kkN10OKmRh8e+rYR/6MGuwxe5tfwG7E6S1Xv+E+nb1Un0/D388doapdzjo2r6CDRixn8dq2xPtK3VRubCUMjo4O/5lBqfA3AOXeozQFAl1p3QqYwzL+5An86rLU7Gmyu5yOAMJ/OHKt4hACf/EWToiMNn8FvJjd5/3R4hMq12DEpDbyZTREGIULd/fkrtCHLzCqa86QmvRqRw+6m9xUHNZ8u26Ucu2ldO6Bvnp9J2xcXnC0xR9L8gkOiZrav3O3UZhUH8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: It is now possible to walk the vma tree using the rcu read locks and is beneficial to do so to reduce lock contention. Doing so while a MAP_FIXED mapping is executing means that a reader may see a gap in the vma tree that should never logically exist - and does not when using the mmap lock in read mode. The temporal gap exists because mmap_region() calls munmap() prior to installing the new mapping. This patch set stops rcu readers from seeing the temporal gap by splitting up the munmap() function into two parts. The first part prepares the vma tree for modifications by doing the necessary splits and tracks the vmas marked for removal in a side tree. The second part completes the munmapping of the vmas after the vma tree has been overwritten (either by a MAP_FIXED replacement vma or by a NULL in the munmap() case). Please note that rcu walkers will still be able to see a temporary state of split vmas that may be in the process of being removed, but the temporal gap will not be exposed. vma_start_write() are called on both parts of the split vma, so this state is detectable. RFC: https://lore.kernel.org/linux-mm/20240531163217.1584450-1-Liam.Howlett@oracle.com/ v1: https://lore.kernel.org/linux-mm/20240611180200.711239-1-Liam.Howlett@oracle.com/ v2: https://lore.kernel.org/all/20240625191145.3382793-1-Liam.Howlett@oracle.com/ v3: https://lore.kernel.org/linux-mm/20240704182718.2653918-1-Liam.Howlett@oracle.com/ Changes since v3: - Completely removing arch_unmap() from the kernel. PPC doesn't need it and no one else uses it. - Relocated checks for mseal'ed vmas so it is only checked when necessary. - Remove do_vma_munmap() and use do_vmi_align_munmap() in its place - Added inclusive/exclusive comments for start/end of munmap - Added comments for unmap_start/unmap_end to specify it is for PTEs - Renamed "cleared_ptes" to "clear_ptes" and reversed the logic so that it is now a flag to indicate that the ptes need to be cleared vs it was done. - Set the "clear_ptes" flag after a successful vms_gather_munmap_vmas() - Rename vms_complete_pte_clear() to vms_clear_ptes() since it may happen before the completion of the vms in the case of a driver mmap'ing in mmap_region(). - Fixed comment around vms_clear_ptes() in mmap_region(). - Call init_vma_munmap() unconditionally in the mmap_region() case so that all defaults are set in the struct, which means init_vma_munmap() must support a NULL vma. - Use ULONG_MAX as the limit in abort_munmap_vmas() for clarity - Added a comment highlighting that the free_pgtables() call may use a different start/end based on if there was a prev/next vma - Removed incorrect comment about VM_ACCOUNT and mremap's move_vma() - Relocated to mas_store_gfp() call in vms_gather_munmap_vmas() so that it is clear that the accounting is okay. - Skip validate_mm() in do_vmi_align_munmap() on gather failure as vms_gather_munmap_vmas() already validates. - Added R-b from Lorenzo, Suren, and Kees - Thanks! Liam R. Howlett (21): mm/mmap: Correctly position vma_iterator in __split_vma() mm/mmap: Introduce abort_munmap_vmas() mm/mmap: Introduce vmi_complete_munmap_vmas() mm/mmap: Extract the gathering of vmas from do_vmi_align_munmap() mm/mmap: Introduce vma_munmap_struct for use in munmap operations mm/mmap: Change munmap to use vma_munmap_struct() for accounting and surrounding vmas mm/mmap: Extract validate_mm() from vma_complete() mm/mmap: Inline munmap operation in mmap_region() mm/mmap: Expand mmap_region() munmap call mm/mmap: Support vma == NULL in init_vma_munmap() mm/mmap: Reposition vma iterator in mmap_region() mm/mmap: Track start and end of munmap in vma_munmap_struct mm/mmap: Clean up unmap_region() argument list mm/mmap: Avoid zeroing vma tree in mmap_region() mm/mmap: Use PHYS_PFN in mmap_region() mm/mmap: Use vms accounted pages in mmap_region() mm/mmap: Drop arch_unmap() call from all archs mm/mmap: Move can_modify_mm() check down the stack ipc/shm, mm: Drop do_vma_munmap() mm/mmap: Move may_expand_vm() check in mmap_region() mm/mmap: Drop incorrect comment from vms_gather_munmap_vmas() arch/powerpc/include/asm/mmu_context.h | 9 - arch/x86/include/asm/mmu_context.h | 5 - include/asm-generic/mm_hooks.h | 11 +- include/linux/mm.h | 6 +- ipc/shm.c | 8 +- mm/internal.h | 25 ++ mm/mmap.c | 545 ++++++++++++++----------- 7 files changed, 345 insertions(+), 264 deletions(-)