From mboxrd@z Thu Jan 1 00:00:00 1970 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 6C6E3C04FFE for ; Thu, 2 May 2024 13:17:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F3ED86B008A; Thu, 2 May 2024 09:17:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EEDBA6B008C; Thu, 2 May 2024 09:17:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D67216B0092; Thu, 2 May 2024 09:17:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id B4AB86B008A for ; Thu, 2 May 2024 09:17:06 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 2F18CA0BBE for ; Thu, 2 May 2024 13:17:06 +0000 (UTC) X-FDA: 82073506452.12.F1AD8B8 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2078.outbound.protection.outlook.com [40.107.223.78]) by imf30.hostedemail.com (Postfix) with ESMTP id 4BCAA80016 for ; Thu, 2 May 2024 13:17:02 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=ORIxpvwD; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf30.hostedemail.com: domain of ziy@nvidia.com designates 40.107.223.78 as permitted sender) smtp.mailfrom=ziy@nvidia.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=1714655822; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cJ6qchn+J6rknL7xt7vz8yYYXd/dYbFmd2U9InCDF2A=; b=frGK7od7eJtuYjj5gqrQLRi7FTqdnXxNmDNxo2OpyGDUO6/6anU0GzvWGy7k7xe/m8pphS FqkbH/uf85eLKG+8z/OeWxiTa+cRxGS9kSqRFW4TKY/CyEIDtumXIoMlRkeadZ4wsFsrUj dul+2Hc65elBYpwYSDwAyPH1yhyn1aU= ARC-Authentication-Results: i=2; imf30.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=ORIxpvwD; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf30.hostedemail.com: domain of ziy@nvidia.com designates 40.107.223.78 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1714655822; a=rsa-sha256; cv=pass; b=srEK1pZ2i7jpDD4IpJlX0vtLuPzPNeXaQOQ2u8QOLGhWbgD0ZSfkmQZ3Wu5g6F7jd9ona6 wmEMtbYQF1E8QP8jthdDjChnaXyiBiZaxnjcVLEeQyb6fucCvqz+zijwWHJp101s2QSC7U 9RvkiB92JKg/n2WN+JY2Y7qTs3WMK2c= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J7NMvuoA79SHufnPn6V+/JeHJIABbbxCbcMiH8FvMomgh7qxxaUdNVHjr3KLpt/4q92AbhP8dnHwYPbPngCyQpMj4knGGySAUu/4NwkaUXmPOZ2Iv42PakOOICs13SFlXYQI0a8sPq2vAdZHoZA+0iSM94A1gmmsShGwGdlkgVzWKXJEsVGP/syXY6MPoC9Fu3ODwDr6RtZ3Ad2ioLlSSbhMsnVMsJuAmQSiQZkQ0Y4IWaCzBiOGD7wkChK8xQNaA1M3OR2/Z/GdiLiENgI6OF3BS5uvbofxifSeseEbdfGctFZK0lSS6Z7GNl499jH6zx7vjWdulwpYqHU0Xxq85w== 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=cJ6qchn+J6rknL7xt7vz8yYYXd/dYbFmd2U9InCDF2A=; b=bKdW2XYyLbhBnJV3fFz+PLHWjEij5C4W6vD1OZoOam2QtOpi1eC1mJdjbBrPhK/xhBDLMuU9svFpR+a1Mqn/mgJ85hniPjjDQID+O8GVBfj7VxlrcVVmZs86+UwRiQdKFs3Bfg1AJ3eenp+EG5PztatFKjJPRbJkMOZ3UpVK8uFwhT1B6PBG5d7SpV9l9vNGsxh3fQDErbIoyZSxzZ1wu9KjQPaL6+WH/hPi2ilL81GC7ZigqLtIuqhkmEaD7t5EJoeFAwL5E2ZeHMTW9FoPUfD50rITh4hlNmYR7+TYzo6ZuCnbT+MVurRPPQx+6AFmKWwYKdSZliDwBqalAdGamg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cJ6qchn+J6rknL7xt7vz8yYYXd/dYbFmd2U9InCDF2A=; b=ORIxpvwD1RgP8hijV9bCIMPNHxUOzd9BDBhOMBIbxg8qmV50g9CPDqjQNXvX3/H7ABzZxqa83z9xH9yPQR9keTQJQFwdLYTr3wbfLZkbx3nboh/l1WREg+lJBrVRlvMpDfWrvZgfQ12i33CTN0YNwynskwTTYonwH/8R66GKVs1i+k5YQWYT5Hd+Hu33kyEdJnBPE2VF8OthPhECf02H/iB1WUJVNBWojnzUJA/LzGqQixFubfppzw1DQ553rpiozZ1tQ7YxG7zZtD4VG+43DP7/cispZIsEL5+x/y+/kWwYb9wlMuII5uWAmZinSqj8AkUcJngIrk8wSyDdPIgUGg== Received: from DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) by MW6PR12MB8957.namprd12.prod.outlook.com (2603:10b6:303:23a::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.29; Thu, 2 May 2024 13:16:58 +0000 Received: from DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::f018:13a9:e165:6b7e]) by DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::f018:13a9:e165:6b7e%3]) with mapi id 15.20.7544.023; Thu, 2 May 2024 13:16:58 +0000 From: Zi Yan To: Ryan Roberts Cc: Andrew Morton , Catalin Marinas , Will Deacon , Mark Rutland , Anshuman Khandual , "Aneesh Kumar K.V" , Jonathan Corbet , Nicholas Piggin , Christophe Leroy , "Naveen N. Rao" , Christian Borntraeger , Sven Schnelle , "David S. Miller" , Andreas Larsson , Dave Hansen , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , Ingo Molnar , Borislav Petkov , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, stable@vger.kernel.org Subject: Re: [PATCH v3] mm: Fix race between __split_huge_pmd_locked() and GUP-fast Date: Thu, 02 May 2024 09:16:55 -0400 X-Mailer: MailMate (1.14r6030) Message-ID: In-Reply-To: <2f95dac3-51cc-474d-8ef0-7af9dd09784b@arm.com> References: <20240501143310.1381675-1-ryan.roberts@arm.com> <4992C22D-D7B7-4B6F-8A50-E084163BEF42@nvidia.com> <2f95dac3-51cc-474d-8ef0-7af9dd09784b@arm.com> Content-Type: multipart/signed; boundary="=_MailMate_38CF2DC2-489D-4DC1-96F8-0F3A23297376_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-ClientProxiedBy: MN2PR15CA0028.namprd15.prod.outlook.com (2603:10b6:208:1b4::41) To DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5744:EE_|MW6PR12MB8957:EE_ X-MS-Office365-Filtering-Correlation-Id: fc32d2c4-9c45-445f-ef87-08dc6aaa251c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|376005|7416005|1800799015|366007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6aZcdPuMJgaNCzh7eqdhZSm+50pX5XA8XGrGLSt89gvlCiVESrhClMePAMxH?= =?us-ascii?Q?pdxk4hdkhOxf+yvkTYDk0vSQoHW6X5A70yXlb6726tv6dInUBXsc6bfqfBYO?= =?us-ascii?Q?JP7d1U7sxjta+EWtZ3ZnyXNDvH/4lWm2DV7pdYyHFhiemXRg7h7JYKHgqy2+?= =?us-ascii?Q?CluVA8iGpSgaZz8otz5y+cfhG3TS0qR+gawN27pmoP4tZdjO0a/mUkgaxY+i?= =?us-ascii?Q?X80jw6M7EFQVwt+3lPT2KBTl1CSRerZUcnfksG+bmok3f+n/Gb+ufpztdCOY?= =?us-ascii?Q?xBBXLPPzmCA3/aUwQn6Ptw3/oss+ZlWvZW83YLfZ+bnBnig5rOD8dX920azY?= =?us-ascii?Q?8weiJ+kfiP6lBbhyyKMr92XiIIW1oudZrHu+mDMOypwagbaM1o/OfeTPYXfv?= =?us-ascii?Q?RCTbqDrQ8Rkh6Dt/cveNepiS44sy58P+CjTzRz6U1BHHvygBL4oJhyvGUH/c?= =?us-ascii?Q?dTeyp2fy61l7MVfVlSQiTigxlzmjVW2mySGWI+CUsHFg3scAkDHdAZvhKqPr?= =?us-ascii?Q?g+JJ6sEuEXp2ZoM9V8n4iM04BjrdY8/LI1o8JslCYBmSU8J8/kUU6wwht2G/?= =?us-ascii?Q?/izXU7SbRBHbqxQNKME5bG6LirVSXOVJXMDBy/os2nFgRmH71iPVbiVO4dFw?= =?us-ascii?Q?gQpCf189qyYc+l4T2cS/UcUmDpipIKSUPyKHERafpbkx0xbDEFvV7pqWvOSI?= =?us-ascii?Q?s0Pp/0II2jfHVwk+gJxMZW80Auk6C98K9XpreTecojryBrRyU6N1ZO54mXPr?= =?us-ascii?Q?IJHsCipLy8ggaGyAbNoGLszmSjbzfR7k6rf0uRFQVGLjThWQcLWe+42qiTJH?= =?us-ascii?Q?Gt03I3vJLq/9gWyyZcp37mwQGrhbq5OUT1LFoakB417cjbwQtlxwIsFB6amp?= =?us-ascii?Q?spiVKTVBVoRKcIqRSec9QEhCiJfEO2dV7ApLlsIsyTO/D/DZ2egtQ4VtjRAO?= =?us-ascii?Q?pMBjrGQfUiutkXGJDYBQchRoAXJlnuj/LUwkDsYjiHj3wESzsYkrRb/fAlyD?= =?us-ascii?Q?mVKBSl/cg6ABGvd3KpOjRbChGbRjhzaaSdGhW/gTbLMavhnLt3PbMsmYqTTE?= =?us-ascii?Q?MXS7/CJlVXpW6+HpcgBCNvntT1Yw7EaI+MPa7uZFJliGDkuDlaCKa8xDmipk?= =?us-ascii?Q?2PmXzwCrvAyMjmmgfnlawCFMnmNVGBvetep9TcCfZWD/509GFr6gj7RYGVbE?= =?us-ascii?Q?jDSfF06Vaz9BpvT77vnzZb9ZrM/VQ26UKlFadoOnYaQ5yNS3lMRDxpt/zEYj?= =?us-ascii?Q?up3OhFWYwnqJMPxU09rge2n/h/infG+h6kekB0xTuA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB5744.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(7416005)(1800799015)(366007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bNqdaaEsAZPsYyLTfU2AmmVv7skW+WAU6BMz9LKCxrQtHXT6QfAIlXOZrS1S?= =?us-ascii?Q?5LjNDl58G3IwgFmZOJR9uAEP3yWv9lnGpCfDuAASsjah0ZpRnm22Z0kbf8U+?= =?us-ascii?Q?GCqT7j7DyaENdmjM0mVaco84lc4S33gpDDaHBlDJ8Gi2MRRc+lBHxllcU+Je?= =?us-ascii?Q?RW4iDobn4CrG3PVpz0nzKOpQVnt+JFETZo2aQ+AGpMUmVuHqTg77Zml2NxAw?= =?us-ascii?Q?vhf6QnSiGX4bwZqgrkKdrsuVSVbkJ4knC3C1/b/a7fERIVo4Zxtl0wfN5nug?= =?us-ascii?Q?cI0e7bEyKeQsqvlXtxfXCAaQ1ChshYjSxqa+yrWBa54EuWIO7eJifmj21+GE?= =?us-ascii?Q?WFwoTYeH1rjP3cZR5XePRJNK5ALBKk67+cfcLcodB9x9URJOLBshbKl9Xgjp?= =?us-ascii?Q?iITGDBDDmDei6xnRDvGoR4isPnAg0pcenIcpq/qLBx/tn+hZVB58l7tvOLYO?= =?us-ascii?Q?EuHbQOn3Ru2f8yF2mISJMN5d9e0Ea6wRXvTW1qmMM3hVNAnLKkKmMRRj7gkr?= =?us-ascii?Q?CCIlzxBRNnk6VOsw2PcO3ZFg0sw+m5Lg/1xefJHsvm+/dBfMYgkE6ysWQcJO?= =?us-ascii?Q?frskiw5c1fFcZEnYQSVkJyBF2ZEy8gSEWrBAyNZlDN+2qbFDCqbzPD3nnUUE?= =?us-ascii?Q?N2OJdor0CXcoT0bnl3ZXOBtORQ+c4H2RzeOreCrWGHTFfQD/trTaN2F/vUCd?= =?us-ascii?Q?lWpqZpRl8Hnf3OjZTEZIXbMLGvPT7TzPa0atR4+Oo+CWidhNKdlE8ufq3IPs?= =?us-ascii?Q?Ft1ILflN/JcX8YpBCcNW7iXrLUUcvQlOLnjJBYOHWLsIspRK6/gAq0krvhe+?= =?us-ascii?Q?4awrsoXAu9OO52gt/iGLQuxIvlQe7q8/e8xZj36yUWnlUzNEzgiy5Vjyv7bB?= =?us-ascii?Q?yut67j7gebrw108U3iGxH3X6U3LZlF1erPqG+kQWOEeHBpnYixkLoVdPBlJh?= =?us-ascii?Q?xynvVrd/uHiulhglbbM+k1ai2Nn3LtxAfE9LXC5NHIfKev8YRdP0L8Y8uBZI?= =?us-ascii?Q?1v6BsHZ7TBv746wb9uizz9zVNe810GULjy+ehLpoS2LR3IfEztKpnNu/bR3m?= =?us-ascii?Q?CXYBF+z954rMwg6lEzW59G1hCvBUoGYk680+FTArtf2PtzfkqHPUBWCpPJ96?= =?us-ascii?Q?ilzB3U2tkgl3+s6Rzuot44847zXfyC1jXzq0EvHNc1AVOTTClDBCwS/9Honn?= =?us-ascii?Q?wDr3lnl+6+4ITYz8J38Ig0wi5DLxupt6KEOagRJWJ6R4CI4w3433r4JBuhD2?= =?us-ascii?Q?KAY1Smoj3kzrRhB85LXZO/ZsAdVX4rc8LQGWkkJ3QY5TIuBZgZHeXkptRkBm?= =?us-ascii?Q?jAagQH201kjCzUmM4SyoYCihDVHYSZvaVZn4pFDQiZwVnwNy/WWC7trf5TO4?= =?us-ascii?Q?6jUfHZAe9hmoGu5YxOpnGcqz28BsqGf6WZQSMp0j3t5euUm9FELXfwgILYIN?= =?us-ascii?Q?4AjUHdLvY/Gphab3mcvo/KoVuPUwZXMHG01fBEqii4kvYkh7E8zGPLufTt6D?= =?us-ascii?Q?8LJx0pvpORQePTh1e7XNLzUG/JKE3hGc6M40KxzBHp25x7rnzUvavqEe5KB8?= =?us-ascii?Q?QLUly56VynVXPfMsFgyf8Do4RkQ3Thyvp4otPK5l?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc32d2c4-9c45-445f-ef87-08dc6aaa251c X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5744.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2024 13:16:58.0598 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: FOAuerlTg1nMdRtdj2rSuUVPWtWYhkqEm9DuuuN3ZdcZFd1vF1523/D9CSETmIvZ X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8957 X-Stat-Signature: d6y55u6hdg9sujamgdz13wi8kcsbs7ha X-Rspamd-Queue-Id: 4BCAA80016 X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1714655822-61876 X-HE-Meta: U2FsdGVkX19eaiYhFK03D7P3cxRBMpKDD2Q6Mku/w/H+6tsQIaAvsRixlAmvWYwjHkrxy5iYWGm5ft2EfC+nM4s0UVOov+BmOMCxJnR+fo1lWgnZVqvvujsPUJUeTKd4MqllbEAxLwjKZAAjkf0b1cJqYfphuCp+VY0+C1w6e0q9YWAVnIxpEez/mrZ58QfSMshKiJPFjuKdOFJprSkaRnQO0OPTK3GuDO4e9de3WRPMryj9wPp0l7wKleV2mUUKZcP6C8LvrrhKGJy9tp1FmLlTCWCvigafkzt5mK6KvIOiEIMdW+RHzx7IuBrLs3GqupdfA0aWkNzJkbX0EM8KZoX8ZDZbXmkikFwmUI0OQnFn6ZpuRXJd93Mn14HFOUiasOQCkDgJTGCRb5qfjPeJU8LHnG85YocJOaqo+Gy5goqDlpxWp1p3mBPYWQ8lhKx4eKlHyPi0z3Dkj4Ll5du65mDaiM+Q1rBtvbuDiV+qNwEy0GN7N44zaosd+guu0Bt2IOyv7FWyzH4XHfLe/q7caFChrydy+mLXEQPSJYZojcnpcyPtvtMvLaTlp9VtCg1ClZaNwB7FgDNru4E0TlX1ZrJdH0E+uJBUeAvctiYOTRr4J5DQ5ITXZRUQl6ASyQH4KyWgKfbRuM3Kt7CQAk49R86aInnIc43LU4fIBmqapaIMVTSLDDWs7mbl0UK7+qugJPya0N5OhkG175D4goY7BRb4R65cpcaQV+sVrH5bHN5lftV1rHdJhdMwGr2x2wEwU9g1SpgFLMeQqaXkDnR2dEf3SVr8Q4nO1EEIXXWKg+B2ANEms30YgxSP7R/rZLe8y30Y5sbMZwwsg3+qdC7Qx0K23lw7LVEUnl/6CF9/svwMZY/efHmC1dHS4cD/d1II2I4ZphpiuU3G/LalIb2guGKEaHOFpZedukS3Z7zMmMnSXkggsI7lYkrX/b5O+RW5L1uzVFP5XLBDCLhtIYH 8kglteBs iCJOYavj6LXQekGrx7psQifMA1SwelZB2X0qGCdrh1jfUtvsoiRJI7P17xdcHZFfwZ60f//rnuxRvzJ9IBUd80iZStg0NmTItLGwKP0oQ2zB/+CJcsiB+tdP169M0Ax+I7eLF6qq1/mfGUpYLwJUQoERt4EF41HlqXCUSEDIvIrryPdrk7j/c+iu9SP0X1BzyWvKx1AVDW2O8saAqBGp8QPL9YdzsVsJ6JvdLdzYCa9zj7ds1gztmP8cRvyfc1NTi8udcz5bU97DHrqh0Vkys4pn2X6jQyNC0F8yGHX9GCT0d7rAgDHFLGF40/MGsqVp+VmILqItvO3hhNZGPU7haUHUuAYFjo10xtVvd9HxQs+kemjLLuazEFh4bpG0dhkploPs4U9nKvuC2mi1UMM8SZ2IOoCj45oEF3G/QLBeailDVkzvXNmuqdpgof69LR4Mh4yF+yaEWCP2rKGEClJU0D4icoaJT/O+0PV0SRmjVguNoVOb+HlWNPUeIhD+rGzF3ehcYfGV5BXR+qjxGvLQAIgNDjw== 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: --=_MailMate_38CF2DC2-489D-4DC1-96F8-0F3A23297376_= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 2 May 2024, at 3:33, Ryan Roberts wrote: > On 02/05/2024 02:27, Zi Yan wrote: >> On 1 May 2024, at 10:33, Ryan Roberts wrote: >> >>> __split_huge_pmd_locked() can be called for a present THP, devmap or >>> (non-present) migration entry. It calls pmdp_invalidate() >>> unconditionally on the pmdp and only determines if it is present or n= ot >>> based on the returned old pmd. This is a problem for the migration en= try >>> case because pmd_mkinvalid(), called by pmdp_invalidate() must only b= e >>> called for a present pmd. >>> >>> On arm64 at least, pmd_mkinvalid() will mark the pmd such that any >>> future call to pmd_present() will return true. And therefore any >>> lockless pgtable walker could see the migration entry pmd in this sta= te >>> and start interpretting the fields as if it were present, leading to >>> BadThings (TM). GUP-fast appears to be one such lockless pgtable walk= er. >>> >>> x86 does not suffer the above problem, but instead pmd_mkinvalid() wi= ll >>> corrupt the offset field of the swap entry within the swap pte. See l= ink >>> below for discussion of that problem. >>> >>> Fix all of this by only calling pmdp_invalidate() for a present pmd. = And >>> for good measure let's add a warning to all implementations of >>> pmdp_invalidate[_ad](). I've manually reviewed all other >>> pmdp_invalidate[_ad]() call sites and believe all others to be >>> conformant. >>> >>> This is a theoretical bug found during code review. I don't have any >>> test case to trigger it in practice. >>> >>> Cc: stable@vger.kernel.org >>> Link: https://lore.kernel.org/all/0dd7827a-6334-439a-8fd0-43c98e6af22= b@arm.com/ >>> Fixes: 84c3fc4e9c56 ("mm: thp: check pmd migration entry in common pa= th") >>> Signed-off-by: Ryan Roberts >>> --- >>> >>> Right v3; this goes back to the original approach in v1 to fix core-m= m rather >>> than push the fix into arm64, since we discovered that x86 can't hand= le >>> pmd_mkinvalid() being called for non-present pmds either. >>> >>> I'm pulling in more arch maintainers because this version adds some w= arnings in >>> arch code to help spot incorrect usage. >>> >>> Although Catalin had already accepted v2 (fixing arm64) [2] into for-= next/fixes, >>> he's agreed to either remove or revert it. >>> >>> >>> Changes since v1 [1] >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> >>> - Improve pmdp_mkinvalid() docs to make it clear it can only be cal= led for >>> present pmd (per JohnH, Zi Yan) >>> - Added warnings to arch overrides of pmdp_invalidate[_ad]() (per Z= i Yan) >>> - Moved comment next to new location of pmpd_invalidate() (per Zi Y= an) >>> >>> >>> [1] https://lore.kernel.org/linux-mm/20240425170704.3379492-1-ryan.ro= berts@arm.com/ >>> [2] https://lore.kernel.org/all/20240430133138.732088-1-ryan.roberts@= arm.com/ >>> >>> Thanks, >>> Ryan >>> >>> >>> Documentation/mm/arch_pgtable_helpers.rst | 6 ++- >>> arch/powerpc/mm/book3s64/pgtable.c | 1 + >>> arch/s390/include/asm/pgtable.h | 4 +- >>> arch/sparc/mm/tlb.c | 1 + >>> arch/x86/mm/pgtable.c | 2 + >>> mm/huge_memory.c | 49 ++++++++++++---------= -- >>> mm/pgtable-generic.c | 2 + >>> 7 files changed, 39 insertions(+), 26 deletions(-) >> >> The changes in Documentation/mm and mm/* look good to me. Thanks. >> Reviewed-by: Zi Yan > > Thanks! > >> >> I wonder if making Documentation/mm and mm/* changes in a separate pat= ch >> would be better, since you will not need acks from arch maintainers an= d >> get the patch in quicker. > > Yeah maybe - I considered that, but then decided I'm literally just add= ing a > debug warning to the arch code so it shouldn't be too controversial. Pe= rhaps > wait a few days for acks and if nothing turns up then I'll re-post with= it split? Sure, sounds good to me. Thanks. -- Best Regards, Yan, Zi --=_MailMate_38CF2DC2-489D-4DC1-96F8-0F3A23297376_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEE6rR4j8RuQ2XmaZol4n+egRQHKFQFAmYzkkcPHHppeUBudmlk aWEuY29tAAoJEOJ/noEUByhUvMcQAKJrLAR7F//CCGv8JJrUq4GMdZKP2ksQMqzc /sjrwG53foQQubulasS04PHXGLoZWJt671SyLKUw7bvtmRalOxM6PuA84KY0Y8IS FPwATA598nak9S/+WaDSybomtPIVZDTWgNYigTi8Wq9NR3x/Z1nBLJ2WPXNm/LiN Q4ZQh0DjBrGKTrq7KDTGRdXgkFkAoc7XLBBQSb9VtKU1+2DisZsJw95SO5osTM3S V9uVtlpYJdTbMuX96ZrQZNNVd7RvwWfOljGf7iTFXdQUMlZg9aX2B8/BLWxIji96 98hGBA1Tk9BnBHwYkJd4Et/O1D0gsfLuT+f1eoQvwuPEfGaEgXpT4LeqP3twmm+3 /jXjP+idt4cfvrKoM87D09iMTFTZrH7H2HCRcjhWbImyoa68F3OiA7vyI2wox0MX Gpm58KmVUqgbFe5pe/HvN9aldqjhzGGOjnxrBzeDJZ+OmtMG8KSaFC8s5vDM3a6Z QGkacX0dxt5Yg5VWvb5Ab+htkI1WXEVo+GavjZYFjHowi6p++Ka1jmhSWk4rxYBm jCZ+3s1WJgKhBET3UrZE3aFXTqkpNodTjPcZh02dyDdOi0PoTRb1shfau+eLKcdT 3bOqy7U68zJHYY+PuDgq0fS5ZwEEkvXpo/0/Cn5eMZ2v1r1eatGdFnTiyzyaOC9R +ae2bhll =egvu -----END PGP SIGNATURE----- --=_MailMate_38CF2DC2-489D-4DC1-96F8-0F3A23297376_=--