From nobody Sat Feb 7 05:57:30 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3AEAD3EDADA for ; Wed, 21 Jan 2026 16:51:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014296; cv=fail; b=nqkcrrVdyM1OOGAbPxnQupy2zd+YT4TWyrvdjzzIsyKtWGjtJWCd0QkAN5sw8WbRa2DSpiQw5erEB3ihNqmgVIm33rxGuku/O+XTQd+YS/zF6vZWEnFN/vcQNIHpaycb6sXSAaltpPbuCSNpKZ+GKlKHd9/ZEWIbCMYvmzz6D/I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014296; c=relaxed/simple; bh=C70bvG0cBIaIaQQQYFygqmFD0ib7Fq7DfHzthuhY1Lc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WXjpKuHFAcS/lv4xACmaSsj+NqOXOL809wyvdUjQDxSc7CsGwyxeH7z4uNQnHpSlTvFVa/Q9ttZJeX/SFPjIpa02B88n0WglL4poXo7npGgWwW5SG61T9rkY4jbID6P534Wn06obZ8UTiYI/2LCbWtN6X6uIGPGMrAUq5AzVxk0= 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=OHMT2OWX; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=HtWNEIgZ; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="OHMT2OWX"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="HtWNEIgZ" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60L7ElmN421477; Wed, 21 Jan 2026 16:51:04 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=3CqWyD9TKVVKxP/V/+dlFHfqqQO+hsB0l/wolyEkX68=; b= OHMT2OWXcJjBTOvKazMklUxYBEm2IP0YIlkIA5m5K4qRYHmuuU2Ec6U0MiNLM5UE 3MM/W9KfG2dOj4eUloK14tLjIl3F98XIimcfianHHqvNd2Igz8vShhqiP7QR5iuz 9fh0ZtHhnx0nsW/FAs/K2Mv6HQhjAb4Ikb5wPDFsM9Tb7DvXsJf/8X3WXD5bBRRn ozsEbmVSlq3Uj/LyjfENR5ur88EjwAwRIcHdfErPRuAJlhgEtICpiokciuHxZpwm EN21odQcKVu7Ir2aXcpjp1bT9DkuW3EPxyXACDRmbXXAtdjisDFM3iYTxBmoy39G geagRyAvGZOAhglk2YaU8Q== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4btagctt01-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:51:04 +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 60LFwZbA018907; Wed, 21 Jan 2026 16:51:03 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010001.outbound.protection.outlook.com [52.101.46.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bsyrsbndr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:51:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=J+I3XPbOP+DIU7u/eveDfm4F7+gMTQ8j6L8g20qxvEfwfhAymf96toKX1ZPtJrfE+UNGFWEUzr6nQQY08tdb3o1+HBBLsakQO0teR3wagxYfOg7QQQf6IRwE1sPyUz8K92aUfZ2ySHt624cQcKLdsIBnT2Xg5pwQ8dKD8vf+uLmirJq850x0CLg4aQmfWJtGtZvJOP395z7MAUzzPxzaQGDvKUQIvdjLZf/CLiD1cuhBwhAMEBtST7hlPEhwQcO2+A0cfRk5U1tBTNCXJ/BBHztz9uypUzLcD6TW5qm9VRJJKctppih2iTq1rQyaJKNuLiXj5m/h2Wp41pKokrh9Mw== 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=3CqWyD9TKVVKxP/V/+dlFHfqqQO+hsB0l/wolyEkX68=; b=wtdFwb2cKSHgEhhxJSN2HgWnble9Hezfrqc6rERKVKd1FqOc3ea/NbRgHQmXGdoC7F5UUEZNiSmhHl/JZN4wLtDp45lNR3Wuk1Y32qlnJs8EnOxs5JEfnP1/DKhJ0Q3pgMa2YANw3qbgeVIx6eW9wu4heFV55+1lzjMjd4Nac0IYVTF35fg9sdWsm7Pn4Su8gGItuAwis5QHjokxI/TCIESvMCDbyAJzg2NaJhSICB2wzICcURZlXIVR98ScjIZMHvNKFs5Jhe480xWShDvgz/NI2LNEX6U1/Xu/2W8+iYP0m1ChbR4HDiWps/ESCja9eoGtoDRKi1jpn04on4N1fA== 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=3CqWyD9TKVVKxP/V/+dlFHfqqQO+hsB0l/wolyEkX68=; b=HtWNEIgZkS1luIZmNzALvFxMsesY9+u43G/4Gb4BonOxpGcvUQq7gjksaw5eND0M1dJfMQ7mbLL/TovNxioJbzj9vLdbpaJqk50QSDkBbY+uKegua5xHr5DuwlYOrWGH9lcY9OguUpbrDUa/YJj7mrKedwL0lV+u2DuNEpb8+Qg= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by MN2PR10MB4255.namprd10.prod.outlook.com (2603:10b6:208:1d2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.10; Wed, 21 Jan 2026 16:51:00 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9542.008; Wed, 21 Jan 2026 16:50:59 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Lorenzo Stoakes , Pedro Falcato , David Hildenbrand , Vlastimil Babka , Michal Hocko , Jann Horn , shikemeng@huaweicloud.com, kasong@tencent.com, nphamcs@gmail.com, bhe@redhat.com, baohua@kernel.org, chrisl@kernel.org, Matthew Wilcox , "Liam R. Howlett" Subject: [PATCH v3 07/11] mm: Change dup_mmap() recovery Date: Wed, 21 Jan 2026 11:49:42 -0500 Message-ID: <20260121164946.2093480-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164946.2093480-1-Liam.Howlett@oracle.com> References: <20260121164946.2093480-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0140.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::8) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::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: PH0PR10MB5777:EE_|MN2PR10MB4255:EE_ X-MS-Office365-Filtering-Correlation-Id: 03e42b6f-caee-490c-de98-08de590d4119 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?A9GiwrwMMoLDvpV9LC45F9tp6OWltZTL/f906aH9I719BXfSQ+iO7srTpH8i?= =?us-ascii?Q?FH1HkDiz8ruq2uhfq6NaAI4I+mnK587oHaAwr6dB4gs5/D6ojOtcR+9zGFqZ?= =?us-ascii?Q?Ir6Ziwlg345LoTSIDPW1j+ufsJAvWK4kvP73OVhcjacahJYCNjzD1oLGtDWe?= =?us-ascii?Q?Yd/Mq/IG9Oq+va21V5SqglemjqvMBM9i47xcp4fQxc5NCrLJodudfmS2uuaU?= =?us-ascii?Q?wAN2mglDIGUyOta1cekVFyS+FeNobGj4EVcqvo7Zn4leXIIRx0mPORhhq4Ax?= =?us-ascii?Q?lgIAhGVs+walE/Bb5XnKnWucv5BLYsPbQeRQn31xwfUzm/G4NY0FBdoCuZyn?= =?us-ascii?Q?4gpwZCYO9lEkTWIx5iB1yblZlW0djL5Fz6DQ2aVvxmXyipfIRi9XUqWDE6c3?= =?us-ascii?Q?bcpaYwHIq/uOw9fdtFAdhGotUBpR/ZIxLfRxH9b7R5Drd47LjFewEuHMskdI?= =?us-ascii?Q?+HBPdg7h0yiO/k7dFtmyirykVnLCbfPow+KmYkW4Xd9c3LBYjuNq5863dlGW?= =?us-ascii?Q?iE7pjlc7ReogcXTeLW18iu2hpMTxEqHHxJFRT6Z0SdptU4S+Gn+RdbUR4Aty?= =?us-ascii?Q?zun04St9CfiDDEKbnl3YjBSYkYb5vgXIClfikjG6l8daqGio/PiDL+NxXft2?= =?us-ascii?Q?cs6ukqrkwQHp99Nf+6CSJfvN5QFt2Gda/d1g6u1Og6zCXOYcZB2Ku28Rzgp+?= =?us-ascii?Q?H41jkVyRic4/dkEbHVjJ7IujsXpce9u5aHY/N44dXhyhw4eUGV1lJFnkcHmH?= =?us-ascii?Q?xsAq3FOa7h7rIv9J1u5vPUkjelGSW6hUmDXmD0IzKmPA0leUD0iWu2S1aBn+?= =?us-ascii?Q?QQnUT/U7uFPEF/C7HXd0uJj6nDYRNmqm8oZJhko81ZpB17TidoIOzs4Z7wcL?= =?us-ascii?Q?UAefvO7U9a9+Q3OhE/Vq59rLw6n7m/z/ES8absU7HbusdOiWeR1wJUsurmOE?= =?us-ascii?Q?Fpn60wNZ779R7zWbsWPohizqDdaLzCG0veHtPSYBMDj7yscEtJqCZ/SsDEg1?= =?us-ascii?Q?DSY69Y85y3QBS+7ldEZEkFdjy5ANzHnyGU4EVr8rK7zSZ8fHkmAdEOsjnrlm?= =?us-ascii?Q?s/8kvPynXCgPZ/Pk3yh8FBzOUuL3T6dbEUCYAAv2z1EXNo/UDwIl8kBuYiw9?= =?us-ascii?Q?NzoS8vvzCbtEkUY4I54d3esNWhr5MswZ48WN2QR+p/NMI+FU88l0O3EA2O1O?= =?us-ascii?Q?5+MmaZJwW/KT1aU6i+Hg9TosKNUpZtZtfsgLLXlWpbVtpJ3uvr3HH0ZiIRCp?= =?us-ascii?Q?cVZ6Q7Rv4sKbLt1eB5QbxkuyToTp5RkgG52zjPQxfEgjgxnbJBaAxeAiM5kC?= =?us-ascii?Q?lPJBmk2RaMp9kZAEumROENs8G46r2YFdWhZ3M/tdc8XSxC8C7wQcs9uAUy7Q?= =?us-ascii?Q?NfSioH4Ntho78R6G38qrDz2RMkEFlG5T0jrN5rR5zpwuEtwVW+lYa2b3hunz?= =?us-ascii?Q?dI1AoCyzA3qT15ykQYmKjm9tgI5R4oelT7tfV67jv+OefcaZ7iKimEXpNsVW?= =?us-ascii?Q?DJ4aMaieXWB3oa+UVjB4phtrDA3S8aWUxkiW9IUsNq97JOiJmFf9CeVVymzZ?= =?us-ascii?Q?PnAeeWl1Qe1zNnRRxZI=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?l4/Fpy6UUlpOLh0BeV5KpPD3haBJOsrXanz8E3DbOQsYdqT4hfwhJYRQsKKq?= =?us-ascii?Q?szWTziecucK7zgJH9XPYE05RVTMOwX9FoA0P+Eiza+YZkFCgOx6fCEex8EUr?= =?us-ascii?Q?kNjU5otBumPYBnEN0B/2910FXW2vR8aFI/WPT7Clx/Bo3BkgkpFJWwIGK2lM?= =?us-ascii?Q?wSn9eqdoJgQrrFtfBA33wG1PSMxJdk4qxA94g5nZ7ZU53t2O2akKptiTImfB?= =?us-ascii?Q?pqpPWwV6nJ4pYKIX8YE32jaGAUWDCQLH/g+f9EIB7jHbJhcRmccjn3thhO0X?= =?us-ascii?Q?piXnG0teNiXfD4OfThgEZK0d7K7f1k7TH0BTpyePWHy3u2i5rzXb5gTxwTDE?= =?us-ascii?Q?B+1Sc9QeJa7liMH5NtRswRdwmH3xYl+AMPHCBFFlPXL4Cx+8sblczifPqw6l?= =?us-ascii?Q?zQWb4xXMW277UbTWNtxGLH+E1E2M6xqaqBs4giCv4hdemKj9Kk56DhR3qMej?= =?us-ascii?Q?PERgo/tdoNmncCtwh12KAVONhTmjm2/ltoQVuuZAhjNzcZV0XCfwGwP2k7cQ?= =?us-ascii?Q?bKqm0kgl+FxDOxByxHzU37CqKzQkmUp3lDMnFAp2dwxdthNOVY6crRaX8tlX?= =?us-ascii?Q?wPDmNuK0zO+S6PbydnHveuFdVLTXePWP20/3wKfp+KGvETiULt0mlLmqia08?= =?us-ascii?Q?ub9jdHJFOr2AbclrdwubH/m3cTfTlMmGOCKr5oGtk87rSB4OyxbLqOgFJXYr?= =?us-ascii?Q?yR2SvLnnxtQ/2DhN2XAxnkLktOGghlw1dF/+rA8uzmLZET6hVwgKsKUo10ax?= =?us-ascii?Q?gZyMFrQK7N0jkaaAPUag540TIeIyuDPK7IJ+NnGfl1vzEodfkSwcgQ6hMLrY?= =?us-ascii?Q?AOA62psT7idQWpAxLLxyoPIEPhqDPuBg68+bc9Y51uCQAsiTlVRo/kP3qrhh?= =?us-ascii?Q?/TV0h4tVvwlVp2UXGKmBuXx4yD6e0GHELVgSDX5kQThpvdRe+mYQQeRSJ33+?= =?us-ascii?Q?T4hxh0NG/1aBv4Zp10rpI7HompBIOyGz/OsD/wQu8UAS8oR9r4m56jLBfR9Y?= =?us-ascii?Q?1YeADD63j9Iihq9Z8zaUD3SK1sojJ/mMOqfdJfihkC0u7VJjh8lK78m8/WO3?= =?us-ascii?Q?Env+FdJJXizCmtHiRhM+A5TAYyCQ/nO0G3LHJJOTDx1RkK9OcekNJutiH98u?= =?us-ascii?Q?D00ODkQnziMZsmQKinkluK2RFBbIzkr3/5/VPYJAos0psBEPCoarc7874Jej?= =?us-ascii?Q?vDruDjeMwXayMDdDISGSwGWYMloCedFOS3gndIrYsMkw/9oZsVuEHSa1PJUA?= =?us-ascii?Q?R3cZyF1JDtdy9LpCY1ClrtKcOkUG6iwSCco8NZP6xNxfl7Yb8bJRq9GKzFt3?= =?us-ascii?Q?APTH6mTL/VEcT3S0hBymj2Wq7rVIoUJTTTPbpHUzfv2YIwnsfb1koI94PrbB?= =?us-ascii?Q?nKYsndWl5DF5DIDHHpE1QsSFInksKhllmLPfro3PzkiaSqdyOhaJG2lcsw+N?= =?us-ascii?Q?UyudUzSMNb66wCCDsnMvufdqfM6oKPR2el0DSIrpeXfrFfMGswRZfo+qidcg?= =?us-ascii?Q?A9WhBvXlgzfyMsvlf8Vgw2ltOWA3SorudCjsI9Wzwc2oAjF8B0kNmhM457OJ?= =?us-ascii?Q?DG3+i9U4RCXCY3ua80fbPKAXRg9ryD+fsglB6Z9SKWbjk0M6/RG03D4Dmqc6?= =?us-ascii?Q?TQ/0ORQ9rxf4F5w2YY1UycqTVQHJoWdwZoxos8vhqb5F0E2woRkSr9DFpdAK?= =?us-ascii?Q?sMaixrReU3/FMSDEVW4GZSNdEe79mhNbT+zEeivE5DyAOqVd7eP9fXHL+ZTa?= =?us-ascii?Q?9XI567q2lQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: hJdp39EB3DjABx9g3QzCxKQ6N9725CpVZH2fI2mo3Tu9Z8lZycpJD+Q7XHEdHRbvJalCFipgaCFhz9/k7RWD2wfV1VHQT5IqDLFfNUuVXg/MZ+FFLiikdPh1YeKM96J2xaEaDTURGTl/YudBegbwWtNqc1J7aJxxJB+yf13MOoMhpy3ObagHwSM/e78utyIWScihsSpHuehidTb6DRPlQ+F1zg9k3Yl2r8sjppr/4lTvNB56byuRba20M8f3aS3/ANhejt+gy7Ox1jt5vRC2qcciDfr7SQ73MjVcc9vwBvyM/0xa99enyU6/6NWsqOtZExnKsn5JMacnQSbts5SFPan/APEi6N4wLFDngDrV9+gJJZOtxs2Wg4T+8Hp405l0Ut6MEz/PG0m4P5zk89D+2lirBD9Xc3Rvk0dxSFoPHQTzu93xsuC1UZXm8TbxfV9U1tMdd6OJQ+sqsM0kQ34AhxGMnmQh5K0Y51olG/SDTIpFe3RXUfhNuzwpS5DJJIjsaoz3pQNq1Hx6R4saL4tTsXoN8qHzyjXGyudAdfzhj7MuHXSDkGLpVWYzKY4L8adDUQAsRqMeQC8/FX1Fg+4FXAA/tkEm5OriX5X1C1hl14c= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03e42b6f-caee-490c-de98-08de590d4119 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:50:59.5888 (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: +Eylg1mRvTaIiDRuYLvOMnzA31VCFwomFP05PXtkkIjOAP7saC9zhLABQMx52HTklSqFyFH5QjgeNRWh3owXdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB4255 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-ORIG-GUID: mtj_2YH2lHZ9FgLj6eu-vXfcAQaU6Blk X-Authority-Analysis: v=2.4 cv=IsYTsb/g c=1 sm=1 tr=0 ts=697103f8 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=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=1XWaLZrsAAAA:8 a=-ybE2mxfzGY9hGNCwgsA:9 cc=ntf awl=host:12104 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MiBTYWx0ZWRfX9O/CUy1mzCJU /85KiuksQLR7PSUsEbuY+7VK5tbFaB2k3dtNCN8v40A2TpNLGpE7LT315KqqfzRtN35lduAnztL 0zxvL8ElmQuTQydFi4owTTDefN5aTjSBbKiKZ5e7jJ03xUtmos1xiutcKUY5TKMD8zB2KB37ESh tkV9T8R92TZ/MueJnMx9y7R0il+rALpE2MiQ9EJxHBW8gLdefU6+1H7EsWC6qs2M6AEOzzCsqTE B8gxZitVu5cluZ2cxIY7eLZhnmiYymFouu4na7HUEt3dp6l5w0INtVoutNcT1ltwRcVzqZQuriT vCUsnxHtLclI290xoUGHUjIWOxdU8mk/p85KY+23pr0rWDV0rExGqU3wNBk8ZBirqRaDueE4oiy ROSOEWbE0rroBph7UpD6uGbxb0y+zYMob+Cv3da8jhayzPCLbBo6l2+Tj1Y7dVlr3vnVOP857C/ 8EzKyP3t7mE3aZk5zZioVrSi39ByiEHRHrI46aVA= X-Proofpoint-GUID: mtj_2YH2lHZ9FgLj6eu-vXfcAQaU6Blk Content-Type: text/plain; charset="utf-8" When the dup_mmap() fails during the vma duplication or setup, don't write the XA_ZERO entry in the vma tree. Instead, destroy the tree and free the new resources, leaving an empty vma tree. Using XA_ZERO introduced races where the vma could be found between dup_mmap() dropping all locks and exit_mmap() taking the locks. The race can occur because the mm can be reached through the other trees via successfully copied vmas and other methods such as the swapoff code. XA_ZERO was marking the location to stop vma removal and pagetable freeing. The newly created arguments to the unmap_vmas() and free_pgtables() serve this function. Replacing the XA_ZERO entry use with the new argument list also means the checks for xa_is_zero() are no longer necessary so these are also removed. Note that dup_mmap() now cleans up when ALL vmas are successfully copied, but the dup_mmap() fails to completely set up some other aspect of the duplication. Reviewed-by: Lorenzo Stoakes Reviewed-by: Pedro Falcato Reviewed-by: Suren Baghdasaryan Signed-off-by: Liam R. Howlett --- mm/memory.c | 6 +----- mm/mmap.c | 42 +++++++++++++++++++++++++++++++----------- 2 files changed, 32 insertions(+), 16 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index 9043cfda65b94..4331a6abe3e4c 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -411,8 +411,6 @@ void free_pgtables(struct mmu_gather *tlb, struct ma_st= ate *mas, struct vm_area_struct *next; =20 next =3D mas_find(mas, vma_end - 1); - if (unlikely(xa_is_zero(next))) - next =3D NULL; =20 /* * Hide vma from rmap and truncate_pagecache before freeing @@ -431,8 +429,6 @@ void free_pgtables(struct mmu_gather *tlb, struct ma_st= ate *mas, while (next && next->vm_start <=3D vma->vm_end + PMD_SIZE) { vma =3D next; next =3D mas_find(mas, vma_end - 1); - if (unlikely(xa_is_zero(next))) - next =3D NULL; if (mm_wr_locked) vma_start_write(vma); unlink_anon_vmas(vma); @@ -2125,7 +2121,7 @@ void unmap_vmas(struct mmu_gather *tlb, struct ma_sta= te *mas, unmap_single_vma(tlb, vma, start, end, &details); hugetlb_zap_end(vma, &details); vma =3D mas_find(mas, tree_end - 1); - } while (vma && likely(!xa_is_zero(vma))); + } while (vma); mmu_notifier_invalidate_range_end(&range); } =20 diff --git a/mm/mmap.c b/mm/mmap.c index 827a64cdcc681..48dae3d48e46f 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1285,7 +1285,7 @@ void exit_mmap(struct mm_struct *mm) arch_exit_mmap(mm); =20 vma =3D vma_next(&vmi); - if (!vma || unlikely(xa_is_zero(vma))) { + if (!vma) { /* Can happen if dup_mmap() received an OOM */ mmap_read_unlock(mm); mmap_write_lock(mm); @@ -1851,20 +1851,40 @@ __latent_entropy int dup_mmap(struct mm_struct *mm,= struct mm_struct *oldmm) ksm_fork(mm, oldmm); khugepaged_fork(mm, oldmm); } else { + unsigned long end; =20 /* - * The entire maple tree has already been duplicated. If the - * mmap duplication fails, mark the failure point with - * XA_ZERO_ENTRY. In exit_mmap(), if this marker is encountered, - * stop releasing VMAs that have not been duplicated after this - * point. + * The entire maple tree has already been duplicated, but + * replacing the vmas failed at mpnt (which could be NULL if + * all were allocated but the last vma was not fully set up). + * Use the start address of the failure point to clean up the + * partially initialized tree. */ - if (mpnt) { - mas_set_range(&vmi.mas, mpnt->vm_start, mpnt->vm_end - 1); - mas_store(&vmi.mas, XA_ZERO_ENTRY); - /* Avoid OOM iterating a broken tree */ - mm_flags_set(MMF_OOM_SKIP, mm); + if (!mm->map_count) { + /* zero vmas were written to the new tree. */ + end =3D 0; + } else if (mpnt) { + /* partial tree failure */ + end =3D mpnt->vm_start; + } else { + /* All vmas were written to the new tree */ + end =3D ULONG_MAX; } + + /* Hide mm from oom killer because the memory is being freed */ + mm_flags_set(MMF_OOM_SKIP, mm); + if (end) { + vma_iter_set(&vmi, 0); + tmp =3D vma_next(&vmi); + flush_cache_mm(mm); + unmap_region(&vmi.mas, /* vma =3D */ tmp, + /* vma_start =3D */ 0, /* vma_end =3D */ end, + /* pg_end =3D */ end, /* prev =3D */ NULL, + /* next =3D */ NULL); + charge =3D tear_down_vmas(mm, &vmi, tmp, end); + vm_unacct_memory(charge); + } + __mt_destroy(&mm->mm_mt); /* * The mm_struct is going to exit, but the locks will be dropped * first. Set the mm_struct as unstable is advisable as it is --=20 2.47.3