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 0F23AC4345F for ; Thu, 2 May 2024 01:27:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 718856B0085; Wed, 1 May 2024 21:27:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6C8536B0087; Wed, 1 May 2024 21:27:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 51CA16B0088; Wed, 1 May 2024 21:27:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 33CA96B0085 for ; Wed, 1 May 2024 21:27:37 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E06E1A17AF for ; Thu, 2 May 2024 01:27:36 +0000 (UTC) X-FDA: 82071718512.17.C2DA0F9 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2047.outbound.protection.outlook.com [40.107.223.47]) by imf10.hostedemail.com (Postfix) with ESMTP id 30083C000A for ; Thu, 2 May 2024 01:27:34 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=WL0XkNGr; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf10.hostedemail.com: domain of ziy@nvidia.com designates 40.107.223.47 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=1714613254; 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=Yg7ibwM48FmNV4ZOs4OxbUoOv4uxcNol0PNS2TOR5W4=; b=JIoSW7iPDJp6jwXXmUp9Td6j1glBIoP2+S1ypD09bFGtm8rnCUEzzHq1YYlfnDsdBTUzq4 eJD/joRdTs/6PA3bbMk8y8BK+AlHnwbEuE/ShdJVE+mQt3hf2/O4LWGWYT5z12VnUp+4rE b0EEYGb8oq8WMNTxOncUWLEyIh0EhtA= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1714613254; a=rsa-sha256; cv=pass; b=m/je2B54/0+1LVMhh6kTFhbIj6mlEjhZmBkb6g4+DMCWkmATXBMi5/u5IKJcAYmO0cHsY1 7kQflihKau+KZ/r4jNibj9/dBQRiNC5AOEUJCTATFbmpYr2BVhvkwWdUoROhxOmBCXlOCL 28TUL8l1JodLy1mt0XDg88+VkkJeoe8= ARC-Authentication-Results: i=2; imf10.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=WL0XkNGr; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf10.hostedemail.com: domain of ziy@nvidia.com designates 40.107.223.47 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BLBRT0dmO1ZlPd3lE7lHIkOdBQVTvgq9BeQsDpD0idHstRBWGv/N0Xgo723o6QZY0DCUL5AZ42Ikwncv32xNNkZMt5ReJxUik71uyOcmzdWrhhZNTnj6Tq0+Zlzsvc0zgynsy+PmsctwtwJMLCPdloxuMmV/eLVdkhvpUQXracRtk2PB1ZBFkNEzexzlhTFHjBEU0Dt46ZHZHW5X77jWFsnJ5Ve7bVq2fTYwbeG5eQxqZmQqOfnmDCyjZg+GsyIons/1s6BkTk5gMKn1op2G2Rz52kuOJhKfdud6H+eAND/v4KNkFnp9rNg7XH/06SQ5EwkE6+j1ckeUfNKQYZOc0Q== 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=Yg7ibwM48FmNV4ZOs4OxbUoOv4uxcNol0PNS2TOR5W4=; b=ZzoDtonv9at3Csk6lPt6aLtqzDvPH54aDcDFLThPZFkIKU3VZULrwi++5OldHqFCiv4MPeKx9EKiRI4hThmE46DDYeKUQxoa4IXko/1gmUfar/XexDE9nMmC3l5fvezvLlV78HAp6F1MIlipJbml2HTiQrWkz82CNdD3HczeGQrSR7tBtY/2Yvw5ZKPr77j+NBCcyS4Dv5R8I9hBgVhBynYrWBZI0Se+y5CzAGRPUh55JIzefGYRH8dn353UPq20P5rWL6VBfpt+O+w9uUjFOU7bKA8kPlIjoRHUB7Oys4K28UpqTjkotGsFoLPk6f/bj3ypFX5cK2ONRO/xavMG1g== 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=Yg7ibwM48FmNV4ZOs4OxbUoOv4uxcNol0PNS2TOR5W4=; b=WL0XkNGrqF/lEiMHVnZiddIlOEeGRh87tPWGFeu4AZQh1snL0w+oYwYC/UZbifJpvRp3yz7BKDgmRNOFe519+/7ze9bK1ERfG/V4KFF7Oh6Wzx/SBzJGWvPMQhV7lMVYLsxKBUebd5IdYpp6jDwPj6h8uuJ1buYMF4WgQHRUYaijQ5iuLd6gRNYp3n8DRtnpOX+BkpFDpg3KPEx1AIaPC4b3yjJwaL0yZhhG9NVPqaFIQEgIKILXHusp2SAC92rM3CDt1aXwmW6pPi6S1SBWTt8ZDgQEsKy/1AvnJ60ieJjiBaEk1HSsX03/Rgt2VTjvFAxwBbb5ZMUCkq89lSoL5A== Received: from DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) by CY5PR12MB6432.namprd12.prod.outlook.com (2603:10b6:930:38::8) 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 01:27:29 +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 01:27:29 +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: Wed, 01 May 2024 21:27:26 -0400 X-Mailer: MailMate (1.14r6030) Message-ID: <4992C22D-D7B7-4B6F-8A50-E084163BEF42@nvidia.com> In-Reply-To: <20240501143310.1381675-1-ryan.roberts@arm.com> References: <20240501143310.1381675-1-ryan.roberts@arm.com> Content-Type: multipart/signed; boundary="=_MailMate_8785460F-D7C1-49E2-A915-6322DAE5CB54_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-ClientProxiedBy: BLAPR03CA0165.namprd03.prod.outlook.com (2603:10b6:208:32f::9) To DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5744:EE_|CY5PR12MB6432:EE_ X-MS-Office365-Filtering-Correlation-Id: 43656432-17d9-46d7-c3c2-08dc6a47081c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|376005|366007|7416005|1800799015; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?eAhqiPFWF9PK9pgmqH1lZwQCqmLYa7QJ+5HGMSCLSn5nV7jnuEqhYj895Hn8?= =?us-ascii?Q?Oa2qAofgL4a8Lz6DK6oXbxyHfUqvo3pd5DbToRaupcb7UVAmR6nmJQJ1+72A?= =?us-ascii?Q?Z/RKVokSnUHYYDcEWDmbjZaORks4m56EpnVBH5QU7NdH2kxHGJwS7/w8m8H3?= =?us-ascii?Q?Qsk7FW42E3IN10umv8EKP0i9GSdHbJMKt2lzs73cipkwspNF9m2PA0EafUSG?= =?us-ascii?Q?YCNpZbhSf5OIDVCR2MKkfP9McoMbs9tH9Ajo133jCCocqRqn6aivIVFCnEVQ?= =?us-ascii?Q?pIPm7Cj2CIcLSqaNNLgNTcI49RAQJAk1Z8LamE+ZhoG+CXOVyIPXJ/rxs8PA?= =?us-ascii?Q?PypZnkI0f/lEC5jv8JR1sfbqOhwMHxS0eVy6ZEFI22ZHdezk3+xPYSNJVVDi?= =?us-ascii?Q?b2hdz4++cTs44aJaW/AqawzojE/iqX5Pi+l0EOz2xzxIRepYDRq4u0Ba+9y5?= =?us-ascii?Q?Fz4Ko0HApPszPVbHRv7Ct7jEuwFmuX5ZrRvPsAjvcmEbJqarNpVbcLZaduDB?= =?us-ascii?Q?VYYRXOZk2UjcvjtuaFPJd1wHZzYWoSUighkso5OCpm3X5RVsF7mug54r1w+q?= =?us-ascii?Q?0cY6QxJv6C8Z3p1h6FYsIKi5vV3BDGu12vRymzA2qTGJHMg2Vvt4fBBw7xya?= =?us-ascii?Q?eNxLOXhB28pADr9poqGx47Fzay6NGkgCg1tEwbN6S6g4QSUjum0Wny/cAA2I?= =?us-ascii?Q?rzCHwntWE9BOgPkhroGBO3Hs9FvQwWyfXq3mKxmkDlQZT/4H4vLojoh7ZWsi?= =?us-ascii?Q?sRgKtIfXynM18gGnzNz+sU/I798l8g84JggZhHuuREIcjNDy24kvQwro1By9?= =?us-ascii?Q?PEKVA6Iv8B/CRftX3bDmujUnZBhFxyl07vp6ivIXVvSWTPgx2+XNKXneL7fa?= =?us-ascii?Q?ilKvLoo4TifTuMJ60BylWqJvB9IIbKqDWCpk3T552RHlT3BrQyAz2Ngm31zF?= =?us-ascii?Q?RO+ZdogFkR0fJnS589ZOSIaEjNi3hwEBWugehvinxzIpwuhH/yJEDaq8Ogv+?= =?us-ascii?Q?i/5o2GWUa3sBftG1rIUaa417MRo/mKMTVPi80ZhZxePbc0T7KOMBQDnXEy3+?= =?us-ascii?Q?PkySxsTOmwm9Ixgi66b5w8+Tod84L76Y+op5IVGN6mdcSXpTSnYBFnPUzXKG?= =?us-ascii?Q?JNs6EKWg/P6vuk9jxSR6E781uGsshlmFoR5oYN+uZvAhFX/zyDD30jQEo2kx?= =?us-ascii?Q?/gL78oCDIjXXhT5tBMM9pznaewN5xjhRcMXs0EHt5fG0B5LJVIfEvHppqm7H?= =?us-ascii?Q?cKjtRCrsg3E3xrR+lYIqHIc76IZ4CZF+Mm7KNEUSvg=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)(366007)(7416005)(1800799015);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gsQdxMwJo2aPEavqOv77d0uSBSxl0rzkPFoIUNHVGcRfEz/qg1e8pJITUp4p?= =?us-ascii?Q?afpY7i9qt3faJ0pQkE8p616cJ++BmP9Ij+542V9OXUgS7M7ikvC4FpZ3PSUA?= =?us-ascii?Q?iw3t9KALb17FwlbaW7cmfXn2hgIBqbqSIB9OM1I0urYeq41d8T69BwHUTZhr?= =?us-ascii?Q?Q3omUcUMsrvXlj7mtS6SOxo/dImYZ+aFlR9J9DpHwOvvB6fktxmivGwmxQ7r?= =?us-ascii?Q?HfQI8foq43UrruQk1p0BEapawb0JwL9oeVaidfs9MaGzOBApGaRuchIeImc8?= =?us-ascii?Q?Gypl2gLz/8NafSkIUtcmk8JQJ2mklOEQCZWVDw93Srpd/RKkiSZor3a7iuMb?= =?us-ascii?Q?uYcgZfTAi3yy0FzH8RwUVri7GDdwmUQ7LFjPJNyRAXh0H/nU7MFNjtP+HRto?= =?us-ascii?Q?xx0u6VLjgQb8Acj26txax30ZFanF3IvJLjECllq+9nRJcWjYNyNboQGr9y/g?= =?us-ascii?Q?nWbFcg9YupfWTwgEt4AvPRW7jJm4GCXx2Kv17BUQBmkxgDZTN+2DDM0v3cO4?= =?us-ascii?Q?uvikw4E+yTwYFOoZb749MoGeCTq5D/DIoMRSgPoOgu1kIuHSIMXr03Jl2/0Q?= =?us-ascii?Q?bRJ40TGPa+MuyUNYJY3mhL9xfBOUqGukeOghCQabXNYfKVMPqcMjl+nVZNsL?= =?us-ascii?Q?zYzRLR74slR+9MjumF26ZbziW/ZAXMH8z8rF0C4X+hUsZ3InkOuq43lHDQHK?= =?us-ascii?Q?vJwxRp05TQl9GOrUL2wLnDYABZL54fc5VjdGGxqlPWK3lQn5qw0KKAgRsQ9k?= =?us-ascii?Q?j2p8cixp3oxk/eP8OME1A7EQcdlXClIkdLyXXqYKQh6V4v6xlga+mLrNxKMn?= =?us-ascii?Q?AygmMgnN9+9cfxVWFaUDvwLUiUO2UV06fgdmmchbFs+vwpIfMSZg2ooXiVWs?= =?us-ascii?Q?sdt0nbaMZ+CgGwjYs0fpRC9xEI8fHNBHrJgzxL9RHlC1sE2PnBVqqP/jHcUD?= =?us-ascii?Q?ahXv50Bixf+p8+cNIYQRGAkj7oMaoSQO2GADS01nflsZR2YAtPYt2IKbQZv7?= =?us-ascii?Q?J5OinNL1bZqJ28+i/Q/A9DsVIuTRCI+KcJ2KZ6Nzr9GC16bdDp3cTDzaUw2u?= =?us-ascii?Q?8Cs0z9jgTmNE512idvu9lCsWXXVZ99gtK6+DxLcTLN6uttSvtV69RN82N2lw?= =?us-ascii?Q?i9NUjB37dUZKQO4oWbu0/wPPA6ouVCkrdTf8rCA1mwvLF738THCdhAdf/W4v?= =?us-ascii?Q?orYwd2bbRNRROHqHNXYhsUhH2CJdFtjrDM+oEHQp551nGbRodyZaHgZSR+iQ?= =?us-ascii?Q?PAhMWkTpO7HdtfoqTaGaTiEAQDoXinJqJzeh1xH4AB4DWQu2IiejeyfZmnXh?= =?us-ascii?Q?ytaS4KHE/K0vur30xjdPJ+BuUIRUl3vzyx6UAKR5WHplB+MyabvgBIz/H4fQ?= =?us-ascii?Q?DjIIvd62KZ83lK6XtiCTp8Y/LN3slH372npQJyXZlVju7zvza1eBsGKyDRWa?= =?us-ascii?Q?QqrlNEQWP2SXMiaUFCH6TDDCPNsRWbOWavqyYctFih7Wv+0ZfeLcYpyVl+a0?= =?us-ascii?Q?+ylsmM788+xRv0JvtXAPPBFGrb0U2cmIIkf6WR8kgQ8a9LK8duyqaeVTLB6t?= =?us-ascii?Q?VT8OmIaQ/AJZyRBS8ySJLgMcBbifo9zTmJmovezJ?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43656432-17d9-46d7-c3c2-08dc6a47081c X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5744.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2024 01:27:29.2441 (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: GDXbk5hmjjSzPXlnbGSSAzpyLE/fck8kwj/2QpIJda7LZJly/OS+9E+507lJCfv9 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6432 X-Rspamd-Queue-Id: 30083C000A X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: md4iixhomndquaenw6hnfcyozhctzdt5 X-HE-Tag: 1714613254-338699 X-HE-Meta: U2FsdGVkX1/H+r46FOsOvXRP3VNjCgyXAYIqsHlFv4rzzakG2Now8bXmuVltGweXINAIp6/lZ0medGcTymDyuTqiVNCodgsWthGDY5+M5CcmSt+AqnY9Ebc5CJBw8exw8UwET1wCTMqUkd+yvc67Lbvce0/xxnLn4fF08gKgKW1y02sXcRvbYsfuKBPh5F9uHE7hsqekpWy4mdIX3koLZmqpsQDOcPhUoOnL6klbqEe0/W2yUGwe87LoooI4ycWqxYqmdWT7YGlLo4kNiEOeVZF6pHUhJjAFXb7W04oo0glxZP38ev/7DW2O8Kgs8ZI/wWzWpN3FEtbl+bsG7m9nx92hpsXH1gg7ERq0xxQTLt4jzxN0muqwE0sBpuGKW81Kgm8oetaqSclLN5KGPKlu7xCfAJIRbOiNLMneGU5CfJRfgOcmGkWpQZ3Zuo6e663JDU8da8xV7ajMQGwTfzIDsuavR/mMegff6eLSc4MEVL+JgIwxDmqjOxcJaGB0PUKWaEfFR68nOgnDOW8+J5oUgjneL/tKoYZD9s8wn4CsIoMJ/0H6UqCJ22okfYzpzuND9dqja06vFsW0O6Yb8el3a7VTF+CRe5AxC2F0YA5h/5K1W0yydRumJ7RpFW0ngNxM8v4h2hWANdqqzZL0LPISmG2wr/33ewqXuXIKZnOiIxVHcRuE+kLVPHfQeFn9O0t2yw6dW1QgGXttYJTjfQIAv2jPtE9z3u0Y/DoGVFsfJ1Zw9vk6DJAPh2cNL3bKgPSmDKfDANDus37zESx7MUfazvWKZ1X4T4WzfZJPdvxlX73InLBv4PD7LKs7WdwvBfwgpcelDIYDYkLgOEOL4z+1Xj++yY7DLX626pUpnHVCwOJYNn6mgz3yNQrFd9C8g14y2Sw0VTg8CQIBs7aBiOjoE+hStP+QzgDohFkbBMEZmVuLrG34rw3/Cs5iqds6WnbKMgPCwZ9cnoSEYKFCufg qIF3R5a7 CcBxTY0eE8OebhG2Cvb3EpPJtNCT25zJU/NBombdJiX2Vbj9XRkN4PQIwciI/MR5Rd4CjIKzXEH1ldU4JcbjV78u9aUK5mH3ZF2/4OclT08quGewTwbdwmTcsU3rlQTxvehbGQ5Lb7JQDmDV7B1nP946PEORqtUhTBJmvc2GDtZAwGm/gH/X6oRmD/oijA/4GMGKH6Qew8C6IGXOvpWh+Ewa1KC+hnApsU0uz9HjsLLYCl3kY0wmFqGt50Vrppg7gTP/9Wz7rQYfirnKgC26uCkcxwfi8EQlKVstuwAI+WWNgn0R35fC9Jmve66rDNS+8/6HbVmAPrOVaT9KCqiit0VvqVdQVh/AQEIB8vYRHOA8T96psp33EoRZUy1ufbDicbjvyX+WJcPGi6fs5c/GSO9xaKWFFD6g8qiBg4QQ6xL/g0pqRlxyduCtUDPjm1DL/TYf2ydyQsGG+dWtpFuh812xHO/JdA4lPIEqhjakVvqqy8uSai4NcNqFtqFwCzj3m/hcCS0UhW9azc88sCj1wpYggKw== 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_8785460F-D7C1-49E2-A915-6322DAE5CB54_= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable 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 not= > based on the returned old pmd. This is a problem for the migration entr= y > case because pmd_mkinvalid(), called by pmdp_invalidate() must only be > 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 state= > and start interpretting the fields as if it were present, leading to > BadThings (TM). GUP-fast appears to be one such lockless pgtable walker= =2E > > x86 does not suffer the above problem, but instead pmd_mkinvalid() will= > corrupt the offset field of the swap entry within the swap pte. See lin= k > below for discussion of that problem. > > Fix all of this by only calling pmdp_invalidate() for a present pmd. An= d > 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-43c98e6af22b@= arm.com/ > Fixes: 84c3fc4e9c56 ("mm: thp: check pmd migration entry in common path= ") > Signed-off-by: Ryan Roberts > --- > > Right v3; this goes back to the original approach in v1 to fix core-mm = rather > than push the fix into arm64, since we discovered that x86 can't handle= > pmd_mkinvalid() being called for non-present pmds either. > > I'm pulling in more arch maintainers because this version adds some war= nings in > arch code to help spot incorrect usage. > > Although Catalin had already accepted v2 (fixing arm64) [2] into for-ne= xt/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 calle= d for > present pmd (per JohnH, Zi Yan) > - Added warnings to arch overrides of pmdp_invalidate[_ad]() (per Zi = Yan) > - Moved comment next to new location of pmpd_invalidate() (per Zi Yan= ) > > > [1] https://lore.kernel.org/linux-mm/20240425170704.3379492-1-ryan.robe= rts@arm.com/ > [2] https://lore.kernel.org/all/20240430133138.732088-1-ryan.roberts@ar= m.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 I wonder if making Documentation/mm and mm/* changes in a separate patch would be better, since you will not need acks from arch maintainers and get the patch in quicker. -- Best Regards, Yan, Zi --=_MailMate_8785460F-D7C1-49E2-A915-6322DAE5CB54_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEE6rR4j8RuQ2XmaZol4n+egRQHKFQFAmYy6/8PHHppeUBudmlk aWEuY29tAAoJEOJ/noEUByhUj24QAJ7zbilMbFHAiSNHI58wYRAes6x3XF1qpHv/ 7XFJdwPikMP2pjg+YZ8XDWU/1sLliGusA5fcOqIrVHwrgvQO82KB6bRN8+3hEiNZ VqQ6u+jtHzWlskIQCW0v0JFJ2k2b19uaLzKV/IxA03WfwByrJzvDnELu1tpGg75R wGmdNvBJda0urGIaSr0prpMmnrvozSaXDvnq/dscNLqHdoEMtvRXFJ3z9lUPXbqC 2GnxruaWHSl/Jq0jRU+Mf5UGmMnoXTQ9Fa7Xbv2qGMmN/bIVqAwIsNMF8r8S95s4 bOeUa97BOqTRyVUUFX/3lGhnm4l7u64tIpX/7TfSJtwspPA6XGneERWGFIyaBwP1 7ItaFpUxJUaUiNYrZjoMo2GKqbEr4sUDaShGMW2Heqdhzr28kWDJfZ9LoQ4yBchH bEGCvF2yb2MsWkGICmfZgOJ35prUdxxz2VwcSBWJj3nTlvs+CnkSmYwu0Iifowah cUTEpqMK39ItYpbfgZfTD2A3OO8XbradD/q3NFbj2/d0g+ybJozIxZ3nqytaQBHr 7Rj6C7LeatfMd+59vmV0L8gTHn4ilQstLMENyFizE1Ysx8iDSM9Cnd8NkjacYZcD P+XTK7wYbj8pjvaAjKyUdDh6TknQu77QCMS6vGAy1U7fEnBt6uiTvMdjUQR3u4jx 5re3JIIp =ZG64 -----END PGP SIGNATURE----- --=_MailMate_8785460F-D7C1-49E2-A915-6322DAE5CB54_=--