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 B7C33C77B7C for ; Tue, 24 Jun 2025 01:16:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 41FBE6B00C8; Mon, 23 Jun 2025 21:16:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3F6B06B00CA; Mon, 23 Jun 2025 21:16:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 30CD76B00CB; Mon, 23 Jun 2025 21:16:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 218E46B00C8 for ; Mon, 23 Jun 2025 21:16:52 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E5D94105937 for ; Tue, 24 Jun 2025 01:16:51 +0000 (UTC) X-FDA: 83588529822.12.348FF59 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2082.outbound.protection.outlook.com [40.107.92.82]) by imf05.hostedemail.com (Postfix) with ESMTP id E836610000E for ; Tue, 24 Jun 2025 01:16:47 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=AnEK3K0n; spf=pass (imf05.hostedemail.com: domain of apopple@nvidia.com designates 40.107.92.82 as permitted sender) smtp.mailfrom=apopple@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750727809; 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=VkgWOrwcKajsmItDAl2UZozV1/PvnYZb+T7BSuq7GKo=; b=OVhJKOb4YojKt47ceTXNEiFYkpFg19Zt6NbuuZ9WKCdYbDEHpULS3Tv+1x3q7CZtdDI8Ru LNvRQ/rVxe+zHzd/FNy5UdjHV55n6ixYoIxwAz/74HvEx8KmavNRYgAQH3VImf0ejntB09 9Eq6PKtnD/l9xSJfKN6ioIbszSyx5bg= ARC-Authentication-Results: i=2; imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=AnEK3K0n; spf=pass (imf05.hostedemail.com: domain of apopple@nvidia.com designates 40.107.92.82 as permitted sender) smtp.mailfrom=apopple@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1750727809; a=rsa-sha256; cv=pass; b=yT8SqNmlemamLjhqd32G7NYB3Di8FzPnoMql66hS0o9biEW+nhUWWX2UQFydoNJluDOI28 HY9qPvbZ0liOup5p836yVUV2WrPjSAReJ3aU+ZqMiG1L7Z0TRzIla4RK4chQn2kXJo6NAA 7pCZCeaOg264GmGa2tLBSUwWIMMfV94= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GEXoLPBKLD9iMi3Taqq/XikwM6ykSavWGXablZYMhVMjLPJ7ACCMDn2KQAFGlKA2zeoznefvDGGn/eEGirCflRE/xvDqU0N1FZDEQ5xY/zfa5GKlK4evOrVO926gIrwSAhOugO9qGqdxz1xoIZjnlW5oLjw/tNSQ/gxgIEtehOcre6bMKN2ejb8DxTWn+5Gcy08dG4E2uhE+jDzcIx8XG6f6skXdbvudZdgyRCmzLxOCGdwTXxy9VcEHfDT68ts3/xDl6ERz61JNmPCSyNH3U2mlEQwCSvAwnGj3PW0LJBJYyW+lW0UHa/+VQzUIFuVwRpzri0xAVo6dQEd4l/Jnew== 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=VkgWOrwcKajsmItDAl2UZozV1/PvnYZb+T7BSuq7GKo=; b=ychUjq4/tF4XD2h+U43EndhaIXqJkA8l4l3wAqj3aBZtTcP0L3ywov+09Ez2P9YyQjP0mM3K3pQSBZHi0EnXDjDB4LVCE5wuBDUm6Qxf9zOUB8BjbGM0/zLGHuT6HINn7QVKpxFUh9CGe1Zpq5mRi0D+D+GNK/hto0Oe9ia38nTzPP/tnMOW+5kUPMbiuhAq203309hxAi2mNiCuJHLdPMKeiP5oKM9dchPWUFeSbIigG0/HwXyQzXOyL3wDYRhwDHPOrwMY9Joj02k+tFsXYIrINgKqbj1OUy1jAd2Z/exUsrTnbNrQPLEWuRgdcJ0tKt5+KJ0UsFWE9l1GSwpQ2w== 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=VkgWOrwcKajsmItDAl2UZozV1/PvnYZb+T7BSuq7GKo=; b=AnEK3K0nC0BsZBV5LeuAo16MWoCEfKxrUQHG+aLuGCeeIOv2jXcuAmcxPRP/fKwS7lajTjjRNUeOZacb6bzn7TF3pmYW1aDenFmW51NQuF2ydw5XtCdgSjxir5xkG/Qlbhdtq8i980ImGGKtzJnDTnyYlQxQyZHC+3XJlor2+TBDZCBW2FyAKFVFMC7y7GTkUg3RK+FSTcRaUScXe4kveffV+witsyI2S+wn1/D8UiZErTMOxzgLQzIo0ijnSt3U0V+6AP4GuT+juCphZcTGe09MeHCAvgVMwH16b3FAbHDRw+8sZIFsYOGBB1LwLfe/1K3YTcHG+DKgQKDWA/YYEA== Received: from CY8PR12MB7705.namprd12.prod.outlook.com (2603:10b6:930:84::9) by MW4PR12MB7360.namprd12.prod.outlook.com (2603:10b6:303:21a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.20; Tue, 24 Jun 2025 01:16:44 +0000 Received: from CY8PR12MB7705.namprd12.prod.outlook.com ([fe80::4457:c7f7:6ed2:3dcf]) by CY8PR12MB7705.namprd12.prod.outlook.com ([fe80::4457:c7f7:6ed2:3dcf%7]) with mapi id 15.20.8857.022; Tue, 24 Jun 2025 01:16:44 +0000 Date: Tue, 24 Jun 2025 11:16:38 +1000 From: Alistair Popple To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, nvdimm@lists.linux.dev, Andrew Morton , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Dan Williams , Matthew Wilcox , Jan Kara , Alexander Viro , Christian Brauner , Zi Yan , Baolin Wang , Lorenzo Stoakes , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Jann Horn , Pedro Falcato Subject: Re: [PATCH RFC 07/14] fs/dax: use vmf_insert_folio_pmd() to insert the huge zero folio Message-ID: References: <20250617154345.2494405-1-david@redhat.com> <20250617154345.2494405-8-david@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250617154345.2494405-8-david@redhat.com> X-ClientProxiedBy: SYBPR01CA0091.ausprd01.prod.outlook.com (2603:10c6:10:3::31) To CY8PR12MB7705.namprd12.prod.outlook.com (2603:10b6:930:84::9) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY8PR12MB7705:EE_|MW4PR12MB7360:EE_ X-MS-Office365-Filtering-Correlation-Id: 29106d87-fe44-4d54-a123-08ddb2bcc7fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?SBsi3Onb/yPW9qEv0BkI913QxivHCu7eDcb4rmr2lsHoVJ3R9QtcKHJonpdF?= =?us-ascii?Q?aWlSN4bmQpy5kuNIOl6mT5IuNsTYfHYpscWHgxf2h5nLbe8JZM8ViqhGaNqS?= =?us-ascii?Q?iMh3mHHVN465bTYbCshBnK+J0nThMExjrq9ZQVpwC5klMpsk4o5l9ZZQwEHr?= =?us-ascii?Q?emEAMibF9HXZtQ7ucuJLS799LF2j0QgPFNeegrjXgTig+H0xC2NXVbo7BW+7?= =?us-ascii?Q?7kzVmKyOa2H1t13IAghugwpIRujL3RmDJ1SVbI1R5SUL4U5F47yzPJY2yvfQ?= =?us-ascii?Q?bsj+/kNELdNhYvno492X+Ed4NGfIJ/6sQoG7Fmr+uFjIPEbP4cEdaXEPOT15?= =?us-ascii?Q?GJ1Squz0wHzTvUouYMP0hVs1Kg/lWhY/2vFdhu3LqqsbqEOYuFR9wZ5+24WZ?= =?us-ascii?Q?ha2gEpKRSjDUBh4M9dak4WzeUlr+rDyUXAhItgtnv48R9XH9y36mTz+jsgyZ?= =?us-ascii?Q?PyMyQC1Cc0GguzVrllYl1GSnaNz4tRbcThph53IrYeP5tA4nPdjDXp5z7FVt?= =?us-ascii?Q?ez9l7lLI7aHBq6tRtozLFPHZJxew2YDjMurzzrTJAHEGiUcdh62VHDlRU1mJ?= =?us-ascii?Q?Owo1E/h/YXGdyyEAOcSxbBOBJ20wrzU3UrSTU4cRrwZDpima08wx9UXfu0MH?= =?us-ascii?Q?AuXgPPV3LUnAWH39DB2zlc/2F06ZLQML8gF0qCw6dDODhEPDB99oOvSe1sC1?= =?us-ascii?Q?Q6/Y8JPXdetfnV//WPseapSYz10f5wr8PH7ehd8ZZAKaMi/xAoh3YJrSKAaL?= =?us-ascii?Q?Z1kZlXm4Pebwfb98zXvQFV+A4QyxaGGHKJEO7j21pS64fY2MKjQzr6/v92Z7?= =?us-ascii?Q?fj8RDbNGyOp0uemoVdvWj56CObi9/R9W7k384h0DilL/qigw4mIVSB8ZBJjX?= =?us-ascii?Q?vAwwECtrCEXFy5LObEIQct48kJPWjiQVlKcByjMMyEHwnnXJMPdXCV+VTwiE?= =?us-ascii?Q?UVhUD7Qplg7c5oIkHBMG3XTfYOMiPSWDh3TtL+XJDkAOXQnx9uRIky9V5vO+?= =?us-ascii?Q?RBAb+U6mG8P1M1ysrFpRf9c/QnALDbeReK61CvVrqJMeuJPygYRWfwqoHvPt?= =?us-ascii?Q?sCw0uqJr0me2uxEtirFWGET9JLTilKl1hcgrUalqx2SRILcvX9DLoGkkrj0W?= =?us-ascii?Q?rehli47t79n5YuEkMcclTc2ls1g7kvMlJ0DeNr3bWQwIbouIeaVEW6lN4qvS?= =?us-ascii?Q?RV/x5+7ljjCRTMTPPKcKtUuLWuSHtKQZ8yshIELhfBzpsjX65gUWIcQYws0J?= =?us-ascii?Q?xMZps6uOk7HZBERA5iWqVPKZbMQgdYSDUL9I0oGNjSVrNd3Rm6nldeqqDCAy?= =?us-ascii?Q?aGpbVHbTEDXKPdKOo6ykOYCWWrg3emw1xca31pziekISNCPPmHA8gRrSFE7J?= =?us-ascii?Q?OyDOI0Pxf/ymf7SVTjhTVneycwUqb5k85rohdKtF7MoaWM/bsyJADfi6lNmM?= =?us-ascii?Q?JQWXsmwgyXs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR12MB7705.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lNtyZpYjYpOo3YOyyJkWy9LJ30ISxkDgc8ZJmqUaRyRAVR/4GRt0EzEZjemp?= =?us-ascii?Q?nvBOpe6hyOKcQccuQ1uQqlbJM3GC3QWtM3SqEJt0ydL6jpUy03Ml7vZTcZXc?= =?us-ascii?Q?Kb8hVv5M3yTqBUZltS4wgIVLhShgPR73axUya6SgiO/6vGq6N1uq+GXu/jGr?= =?us-ascii?Q?ere1YAgtVq+3Smi7PV1O4cMFf/nwoJaJYCYL6/CgXrbXyTTwA5l5iXpV7EnC?= =?us-ascii?Q?HCzRNv6PHM2K3qSq/SRbFMDVIrCkx48Xu+mPTwrXcdMaql/pvxZ2kBn5OiJa?= =?us-ascii?Q?+Du95rXFEZjfw+2ZtXoz8Ovo6+/oYDseNr1UoDfXy0oz70UkLzCQZFXEyZNA?= =?us-ascii?Q?CIHTdIVoTMlosGxMQbpH3y6oZWTC9qTyLa6eQLawlvKHIrxUKT5xLdwkPgve?= =?us-ascii?Q?FJaGHPlXbb+ZNlEbkILOIxVmP96tt5YmvVchR+yYqpOnGM8QIjQ07iYETyLt?= =?us-ascii?Q?tg86c8iR8AoTFZC506NDXZuuGEhYXtPasb87VVn/66q8+Z/oPYycpjDcxSY2?= =?us-ascii?Q?0qThwu6AdeZzfSgzzcsYHg56W4k4h3lkF6dCO7giO/K6z16ze0p33uEZM7rp?= =?us-ascii?Q?dyShl1ZuK8/ttpOS0IUxozbh162bo1OFTUXxTQ2xuOUwYlTz61XrB9+KTCo+?= =?us-ascii?Q?CbJLOcFzOXHmqktvPspO8yZrMotz4zbnw2p6rPzNpFj74wp8ugS87sJeLPNr?= =?us-ascii?Q?aIv3MrhWfWIbrAYUiCpddcb80ayNX5W8sjrce0gfZD2CBz/QtgWBLVkWwSpH?= =?us-ascii?Q?0LM1y07kJFtsBpAykF5CVE5PmseLQT0P0AXaKRYu+SaFt5RUaLZJ7MxCK+bT?= =?us-ascii?Q?8NzrsSqcHOFfEtUJW1/78dVDTQoDIdZ8An99Cl4aOa53It/1n7b1FvfgW1Tn?= =?us-ascii?Q?IRT9OiirwCv1b7fcu/lmO0gphTdde+R62n0NwFgDj6cZd2PnVg7c/vY+rQJb?= =?us-ascii?Q?ZZOW0E9gyyfJdll9dMXDBRnta3KNBt0Uy45XuLPn7xfuCvcQz4xAHDhrxaK7?= =?us-ascii?Q?84AT+E/GT9jpiX/z5CFjTaaSQk0Qx5Bql7gMsWyPfESUJiIFxVaKj/WUzPx+?= =?us-ascii?Q?5RK7ggWcjrlXXDEqnb6XC9OmmlcOymQiD62OQLyqxzUsjR1XxgLUrAHBe+Cy?= =?us-ascii?Q?KMsuzVBQhSAamF02zceiUc2hgfF69uyL2x5Jp0XBpyxX968/0kUg5Y13GUdl?= =?us-ascii?Q?72VgTHvykb8dOY5zeF/78gZ7yNLYP4IUu8X1rw7jn/cFXTYTTZx/zoD9MU3e?= =?us-ascii?Q?SQ1dxxFDetXyCPgCHpHMIS6W3jbphQvAoqMb2vO7m8RpMdAjAG833WsIJqKZ?= =?us-ascii?Q?4wiO76g49ewF2al94AUqtBQFw7/JPYx7/oiMaKAXdodPfv7F9tL7/wD/X9OX?= =?us-ascii?Q?0GwdnXUCHZjZzwFPKqardRM/Cw3FA9zgiw5CbUHyQVMJXecTVwVsZXCq0SXq?= =?us-ascii?Q?q5y9Dg4uH3wa80kYJ1unmTZcpdOiFV8KKC2QWnFwS9PCSEu92mLXMU+mctph?= =?us-ascii?Q?Fvq0v7dDACZ0VsTcsfyp5sHEkdmrz7sMivxhNMw1eppoMq8FIFZErptPgAy5?= =?us-ascii?Q?RAAUJhQbo2E/Vt6FPs9cTVCXyAvp1S3NutRVaH0E?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 29106d87-fe44-4d54-a123-08ddb2bcc7fe X-MS-Exchange-CrossTenant-AuthSource: CY8PR12MB7705.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jun 2025 01:16:43.9036 (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: cgkZWTaKFKSys0KPQUnH8g1dqJoGQwZpWsLPvQgk3YCRsj3BsofPPjGI0WcsgWQgy8+Xx+FBwBmSaGPpSGHOPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB7360 X-Rspamd-Server: rspam11 X-Rspam-User: X-Rspamd-Queue-Id: E836610000E X-Stat-Signature: ax9zsg3egkax4cj4461c5g9s1j4co3o1 X-HE-Tag: 1750727807-224250 X-HE-Meta: U2FsdGVkX19ZBepF6njARM+0nM6ei+r6RyaU5agmCq7INR35YXfEoQl23/a/+yvXfhG7hHLompLDkggjCl6XbyDGtm16ZmoG78dR081X9ZCfnLb8h1TJuCFfOsYVkHYd5aV54ruWL4peee9bY74fkJUtJjsadIugPZvJUjamGWj1SqFnfbHG495PUHMPkbJ9JtNl8cfeaL1GOxo8XzKJ4gdN+lPl6ypNjza2N9WaD2Dgf/dSbRCtvN7fdQS/tZHLkA5Ta46Eie0hIKAkIuM7qtabAtkaEsf+TEvsJ2nNO+VeiHRHJArBQ0+F+hKskvEH7zUVglkweTbeS1dfqukGXMi7X1TOieLh535ybZI/Ehs/Jn8aiEK8ztAYURPgQxVixt01vWBqiDOTOZr0fTdncKrOTA/6yl5fSgiu8hDSQq/ZpONMeS1FfDg0gfPLyCE8Acxk7eGHdUhc9CnTYizzrfJctfIPU/jV21lGbEQ9Ff4SjgD/2pAnKELqhxjx8EdvHYhkg0oCKscl7nEcojlt7JAOflUH3aUjQ/vCBw9ZxVY2acOqc5lsDoUGH/HblkhOJJjCarigaMlTSb7Ls/sWy9dqxHcAD8fD7raCeTDiL58Iv7PnKjbrQPHWEB5qJi0HyytNiPeailPWG5b8FqrOaIQa3AdIcM3LHSZg7wiC7RVEgAEcoBSjbghcTkvVKN0xbRuoTJwAxEeNconwPlPGY85Oc/Cstu/YJF+1oSRDSzH01nSn21wIMsMzay0jOF7RE59B4n8MhNh+9NeKJ/x9N1fGaAE/W0IzXiDBGBEjgMT5AH5Cc+W7NNmoCmIrbuIeZBNpuFZyT/4pRtNiN+VTKhz3v83DnR/OgYihkWXigt84/oRj7t+A1sbJ9qVGR/b+1xdWOeeIqsW1O0OyRkZ1248uJDWarXLBXQMMBlCqSZvIuv1rmKdoNr4KQSRERqNt/rIdPqNbLdB5jnEClwK akwpIRAm pR+fF0fgAPDeU2EekuZCu17jrdpShIafoNe9jZi181+f+2uMzMbDp6OX25r3TQ974Ls/Z78iwsk3GQfiCHZbKvAHb7OQSK8Sy2IcKKRSn4jrjJXFtrP791BmcT3PmFfDzvzss/FOAmEFcHIG+gWpWRgsAJA0frJmrznepa9eOvDsxGDlnYK4KrcEwTDuxHH17DJjuSSMN+kdvUSk0gd8FR/SyjxFPE/r8QijXXYl64TVfssnO0nXBrHkkBrz2XDg21mY/0Ki74y7UMn0Bxw7wAitnhppcEJ6x+WAC2OjaUl6KaaJld/OqiT8tdvi66At/UBdmOhzE1hEnpgwMIHKnrJcFI43LQxlYvNtqewF3+DpDDeM1ffaV1x7BX7uZNlOleX/ntCBJvf3uZ303UPEtmUSq9KsKtVpY+BqXDUN4UICaA8z3Jx0XN0WSKT3+A6SMz2Fp3X0mKL2YIl4iYZX2Gx4uPE+dti1pL9Wzgy/6WbQq/f4McyKvj8VzaXAqk7XSxh2UTpagEUoYiIM= 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: On Tue, Jun 17, 2025 at 05:43:38PM +0200, David Hildenbrand wrote: > Let's convert to vmf_insert_folio_pmd(). > > In the unlikely case there is already something mapped, we'll now still > call trace_dax_pmd_load_hole() and return VM_FAULT_NOPAGE. > > That should probably be fine, no need to add special cases for that. I'm not sure about that. Consider dax_iomap_pmd_fault() -> dax_fault_iter() -> dax_pmd_load_hole(). It calls split_huge_pmd() in response to VM_FAULT_FALLBACK which will no longer happen, what makes that ok? > Signed-off-by: David Hildenbrand > --- > fs/dax.c | 47 ++++++++++------------------------------------- > 1 file changed, 10 insertions(+), 37 deletions(-) > > diff --git a/fs/dax.c b/fs/dax.c > index 4229513806bea..ae90706674a3f 100644 > --- a/fs/dax.c > +++ b/fs/dax.c > @@ -1375,51 +1375,24 @@ static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf, > const struct iomap_iter *iter, void **entry) > { > struct address_space *mapping = vmf->vma->vm_file->f_mapping; > - unsigned long pmd_addr = vmf->address & PMD_MASK; > - struct vm_area_struct *vma = vmf->vma; > struct inode *inode = mapping->host; > - pgtable_t pgtable = NULL; > struct folio *zero_folio; > - spinlock_t *ptl; > - pmd_t pmd_entry; > - unsigned long pfn; > + vm_fault_t ret; > > zero_folio = mm_get_huge_zero_folio(vmf->vma->vm_mm); > > - if (unlikely(!zero_folio)) > - goto fallback; > - > - pfn = page_to_pfn(&zero_folio->page); > - *entry = dax_insert_entry(xas, vmf, iter, *entry, pfn, > - DAX_PMD | DAX_ZERO_PAGE); > - > - if (arch_needs_pgtable_deposit()) { > - pgtable = pte_alloc_one(vma->vm_mm); > - if (!pgtable) > - return VM_FAULT_OOM; > - } > - > - ptl = pmd_lock(vmf->vma->vm_mm, vmf->pmd); > - if (!pmd_none(*(vmf->pmd))) { > - spin_unlock(ptl); > - goto fallback; > + if (unlikely(!zero_folio)) { > + trace_dax_pmd_load_hole_fallback(inode, vmf, zero_folio, *entry); > + return VM_FAULT_FALLBACK; > } > > - if (pgtable) { > - pgtable_trans_huge_deposit(vma->vm_mm, vmf->pmd, pgtable); > - mm_inc_nr_ptes(vma->vm_mm); > - } > - pmd_entry = folio_mk_pmd(zero_folio, vmf->vma->vm_page_prot); > - set_pmd_at(vmf->vma->vm_mm, pmd_addr, vmf->pmd, pmd_entry); > - spin_unlock(ptl); > - trace_dax_pmd_load_hole(inode, vmf, zero_folio, *entry); > - return VM_FAULT_NOPAGE; > + *entry = dax_insert_entry(xas, vmf, iter, *entry, folio_pfn(zero_folio), > + DAX_PMD | DAX_ZERO_PAGE); > > -fallback: > - if (pgtable) > - pte_free(vma->vm_mm, pgtable); > - trace_dax_pmd_load_hole_fallback(inode, vmf, zero_folio, *entry); > - return VM_FAULT_FALLBACK; > + ret = vmf_insert_folio_pmd(vmf, zero_folio, false); > + if (ret == VM_FAULT_NOPAGE) > + trace_dax_pmd_load_hole(inode, vmf, zero_folio, *entry); > + return ret; > } > #else > static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf, > -- > 2.49.0 >