From nobody Mon Jun 15 20:33:02 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013055.outbound.protection.outlook.com [40.107.201.55]) (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 0EE2D304BB3; Fri, 24 Apr 2026 02:52:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999147; cv=fail; b=t9yLh5mpPJnfjdzZrEYy0L2kKY0GIl5WZcRaiZa90rGZoZHhmgvhKciAlugQ+MVKC8X6VUwJwWlXwBYOGjE4A958KefE2cczc3O7e4Bw4zN9LW20TlDrD/CtOCnOUuNPaHsBzKTxCDbfJo7YOzQDMon2a++eJ9Gsz69I17OJBJc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999147; c=relaxed/simple; bh=oAKpqr2x37ZtjOc5sKMHy/Xd7zMn8LbePVFg+WVYWPI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=IOHymCAb+R/TjAQtlKXHlzhH84it1Kt9O2Eev99DqMTHMwpHMwWjbKfpxjoRWmw2vYPSRvZ2Ayl0KpNlrhGwbIezHVluLarlFifhLNXCq536/cdjngLgBCHvxgzUXQIrUOfM27rVKkxxZU2BjToGsCH2TlfEceDuSQQQjXf6Kzo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=OS8CIuM7; arc=fail smtp.client-ip=40.107.201.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="OS8CIuM7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Wwnaiu3hKks4cLQrdTgsuFoDyGWD2+FkOihNu8dkL9vUGnjtJrdCajEqsbvkGdgOp9emWEGpRFgtS5gj1okjxB+j17j2pANhH49lrpZ7LKiCQpC4pGb+mFXuWkmufSGPk8sqMBwFDd9Z1KB00tHXu6uiVzO1PZpdfBFgWnNdG7wl4CYziiF83+A0p05H54gzfBvZj4fPgMyuyFV6TgYOdwK2kBwRVqE1O4FcC3+TSpITcmST409CvGGuLR0q0+yG1T+GJLUj52EQroxlLjTdbhd/TbgNX4NIkpKEfxucaKrp4Pp/VpYIwO9ZD2ZXGSQNvWY9lyGyeDljgDFNyfzIDQ== 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=VM38sIiJ+95s8TB0Xa1MicOktvPKZBg8+L1E50XHlRk=; b=J4Utj9UeKsR4qerFhlzBQj+F1V/ZRXlhEjlfilNhUTR0R+9mBpgYxrugE9GaY67IPmBJW9Zrq1OI6WI1WF6mqa7sauFn+lrxIsHb9dqk5zm19Me/BHUOKqJdy/NZAyWvwD9eymc48L6HPuEE7wvWlH1PbOFBy+1Anoe53vyfGNj9+cDSDFySdx2K4FqxNvOKHpVAAYtBk0Ip28iPC9ai3Tg4W1cHkS8vJBEztXsDNTi1oMsJBoBunuQtOUcq1MXlVL47r1cvwUaZcwTxkulu+Xs+Y3vklwY5DMXSGhIGABFAwDZmA+OgLMFXnl9sPzTcw+C0Ph2GWLp+G5vfI3BvEw== 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=VM38sIiJ+95s8TB0Xa1MicOktvPKZBg8+L1E50XHlRk=; b=OS8CIuM7sznXcPmCkDYnJqkOKfJvCq7/t4+wyyY15jMwH5h1jhj+aQEIZx9LKW0gwsAnV26hhJNmdiM613A7nllyYb/T7Ggt/53eG+IHcT0uctWEyHNmYpzfH3/UoYcd1WvwDjXfzdtUZvFjhFKV/bjRu/dLgmUK2964S5983xZy6drVeLpEreBD337wi8ZkRpl9BsHJhE61n5OFPT6JAudx3XVxDG4IsuLdT8/kkjcWimxMeuanXVcyisASHV/gMWbR1zYXZikLKWCI1NLza8kzR4QpjG1/eMxoOY3rF8s263sfKyZLxd6RdJdUPZgKVXR/6wx5nObST9XM6l29gQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:10 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:10 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 01/12] mm/khugepaged: remove READ_ONLY_THP_FOR_FS check Date: Thu, 23 Apr 2026 22:49:04 -0400 Message-ID: <20260424024915.28758-2-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YQBPR01CA0157.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:7e::26) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: 03940080-34d7-44c1-6dd3-08dea1ac7b21 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: J99AAubYhXHOpN+6eEUTscwDRg/rRmd22X64rvUWRIY7eMNCKg3tgViUjPLIq++qI/xmNWILAiP9ZyY6MPPMz5D8mlltv6EEKIj7eri3WKuiHUGGa7CoRbLSqL3IKTtUQTPbzFJcG9EHlCObry/XUpSHiR8s3l8l3KqxrYM9jlzU1TZcqYdsdAoHtEas1nH/kiEaFL+6m+atQxxub36VvvE32zbtl48XwZFh1pUehwuMyWl2kvfneVmWWs/5AxSz1fsFIJd+E2KslyRd5HiENm13eGQQcRuom6M8iKzCPFTLGihivtTzIlWnaEemcoZhB4z8Xd+U7K9vAr+PKcUJIZ00AK9JhSIOztzCcKWLdJqxET4dwN5oq1JZHGCZvl232zu/d03AO4+TvW4LaeR+nU+bYRn/g0hHv+w2PC7eFergPky6FJM1wn9T7gYFqZ4c3L+b0qxRskLPFRGybAbTQl1nw/QnvD1yVivD4hTeyvqGC5o3etFsMV33z9gz99Q5DPYkxyLY5USDJlK+LhjY1d/jhanAV0lrQXu8Yu8wsGscBgfEtqIjTxB5PLausVbPzR600PDzTUqR0+JqbhMLf2cmhmBXoPO79Od+Af4qFMK4mxRe96MRT2Fp9ISjgCmnzaD2c2eHKmRWbbvdsUT7tp9OSQPEpo8O3RC3TVgV9FzRpkjvyPD15Gi0uX0udSjqhY6MY0XZpzyh9oy79oazZe4SVWFmoWWIZrwxIZACSCs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kWILnIspuzN+wDGpXWUqCE7hUzhEg4mMiWS/TCdubcZ3OJp5cClGTd/DyQpI?= =?us-ascii?Q?/xijBmiwZVDgmoMQPAL9foOA8QLAD9gtxLyjlLcxjTEEfNwQ2guA8slOdBJ6?= =?us-ascii?Q?EJf9obxRaJ/5NZec6gzYYCXBs8MhJFzsREbWhc5dUMKi1gOayjCa3b4wzZzD?= =?us-ascii?Q?P8vBc9NtF4ZzFAQSBbFy0FRdlJqPSslffABWE3sMrB+IbAeBSUl14xAAmiVW?= =?us-ascii?Q?QZUNnPV9JqnOk1/5mPL5yylVIRSpm7OQaFx6yhRmnwvNRT25oGFulPFVZYQK?= =?us-ascii?Q?S0ccoZT9smAjxe3adj5FgwHWuKg+YT/IjhbQAQzrz/NhOm+A11BIje2mHDBP?= =?us-ascii?Q?srGoSxQxXnEWsqyYQdny7JDwH8Hif/RoClY9fgIVIj+/uQnDyJa9/xDhv3PT?= =?us-ascii?Q?9ZUbd9dlouWh6uts2l9MAt7yDJf/86Cb4dHLHI+/5T8NOjlAAewvaIQUWQvM?= =?us-ascii?Q?VDllL4HZt8iw95jO/TmEfpE0RUSO0TPC762nWUnZ6Tnhdue3zGNEuCMw8EVW?= =?us-ascii?Q?Y8HqFcvpnjZDTpqV7wYJ1VPwVUeJCfFeT25pWf6GXXkLOmY4/0i2PmPsugbh?= =?us-ascii?Q?+uUfgq5h+Js9TFH7tGwQ30uTGjH62yZJ/TQEDET645LpZCSe8XFMr3YhuAU8?= =?us-ascii?Q?k31iNpLm3FzTLD+jgstc4QxdFQY+DLrqLMyBZwZsqBGZVPI6nCFA/i49jQ49?= =?us-ascii?Q?DoZPfjP7gLm9iW7jui88wigv2/pvsQOFGIRZKuIPd9Ppdw5HKa9geMjhw4ei?= =?us-ascii?Q?3yJ/RXOJlM0NmEhTQTJkpFu9QtBajoB/VGGUwKBFb2JJdGTlk/SgFl9Hl1ti?= =?us-ascii?Q?7ajM6zB8S3eslAcv36ewaRuUcmdeMim8/K+FtzZwBtt28ZHjNa6argaojo+3?= =?us-ascii?Q?54gw417PcedjdMtfcgTV/Qcbo70a2ISWXJ3dbrcFueoo9ZX5eNzz0DShZyxo?= =?us-ascii?Q?V21h2o6L3pKQozQM1Fn3JFrCZY8IslctHfX3ZLTWrHpL7Mg+ad98rY8h1bCm?= =?us-ascii?Q?xLr5NSsi2P2l9ENTS4xYYTtUIwFsq5xYH10vfCeqNyS4tZc+fW4emHVWoavc?= =?us-ascii?Q?+dLWeCsgwTMW5Ej/UY0eeuhJG8DeT8kbVjja09eKhY0zIGMSK/TF69s0nNqN?= =?us-ascii?Q?QaAB3/KZ/kC+TMwx6Ng9Z/dc0BQ3pxdXM9f2mtspuSFprVCX39iBRGBFwoGE?= =?us-ascii?Q?st4KSXl8E9TfjXgvA+b5amoup/njsVwpnOzDyoOUt6/W/YmlFM8W+2/0gwKn?= =?us-ascii?Q?ECzlOGX0MNJd/4N2Q57FyjLb702nhysN1TkBjgDbT/OpcOcjZYxwxp6gFw7u?= =?us-ascii?Q?NuMwx7p7DCGY1/ncQBP5PxJHuGUbwOlMERiQ7BegUqtnQ5wL6z11c+hR0kzh?= =?us-ascii?Q?ohrmPJii2aziwHHmsvQ+TjALW6Gbg6tDo2zIarLh3s9TGUYfyI7+yWNf5Mxf?= =?us-ascii?Q?YWzda9vqdK9mxXA16+JPPvk4mowb65JKXMSSkjb/U+woFUJQlTcHazoIq3+3?= =?us-ascii?Q?2UvxEJ/TTem0CEvgoo6Rk9xrGTyoiKe3gUIIBqz2mGMd4HrU0AOC9ub60MEk?= =?us-ascii?Q?K/hbnwxgwO2yZA5vVbNjAwKy5ZfQfwSQtwa0Osc43494tKoNR6uJRJZl2rCv?= =?us-ascii?Q?V59Tk9CNGsAALoYtUT9iDu3iFDQm/UnX8aM+6irSda81JSSHITE4h5DChyLH?= =?us-ascii?Q?2FgsxtpNNojgsWbrR4HaRWE5Hdl7GaciN2ZFn6xLanE6qDSM?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03940080-34d7-44c1-6dd3-08dea1ac7b21 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:10.6245 (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: MuQ44fedzJWLZbYLCajhHwG/zpHgbgdIjwJ0uwTwSkF1dxQpngs3l3Fzs3W13ChD X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" collapse_file() requires FSes supporting large folio with at least PMD_ORDER, so replace the READ_ONLY_THP_FOR_FS check with that. MADV_COLLAPSE ignores shmem huge config, so exclude the check for shmem. While at it, replace VM_BUG_ON with VM_WARN_ON_ONCE. Add a helper function mapping_pmd_thp_support() for FSes supporting large folio with at least PMD_ORDER. Signed-off-by: Zi Yan Reviewed-by: Lance Yang Reviewed-by: Baolin Wang --- include/linux/pagemap.h | 9 +++++++++ mm/khugepaged.c | 10 ++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 31a848485ad9..5b4313d91137 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -513,6 +513,15 @@ static inline bool mapping_large_folio_support(const s= truct address_space *mappi return mapping_max_folio_order(mapping) > 0; } =20 +static inline bool mapping_pmd_thp_support(const struct address_space *map= ping) +{ + /* AS_FOLIO_ORDER is only reasonable for pagecache folios */ + VM_WARN_ON_ONCE((unsigned long)mapping & FOLIO_MAPPING_ANON); + + return mapping_max_folio_order(mapping) >=3D PMD_ORDER; +} + + /* Return the maximum folio size for this pagecache mapping, in bytes. */ static inline size_t mapping_max_folio_size(const struct address_space *ma= pping) { diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 7d48d4fbd5f3..79f051eb6195 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -2235,8 +2235,14 @@ static enum scan_result collapse_file(struct mm_stru= ct *mm, unsigned long addr, int nr_none =3D 0; bool is_shmem =3D shmem_file(file); =20 - VM_BUG_ON(!IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && !is_shmem); - VM_BUG_ON(start & (HPAGE_PMD_NR - 1)); + /* + * MADV_COLLAPSE ignores shmem huge config, so do not check shmem + * + * TODO: once shmem always calls mapping_set_large_folios() on its + * mapping, the shmem check can be removed. + */ + VM_WARN_ON_ONCE(!is_shmem && !mapping_pmd_thp_support(mapping)); + VM_WARN_ON_ONCE(start & (HPAGE_PMD_NR - 1)); =20 result =3D alloc_charge_folio(&new_folio, mm, cc, HPAGE_PMD_ORDER); if (result !=3D SCAN_SUCCEED) --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013055.outbound.protection.outlook.com [40.107.201.55]) (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 259393093DF; Fri, 24 Apr 2026 02:52:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999156; cv=fail; b=uDski8vWyXWLR7NL4SeNO2yBe6jxmY0E9UwnTldXiIEpEZUYnXNFvwvMSKQlAkKXkX4LXvl7J9b8b/gxVRRiD87OB3paP+SpNj79po4tUpUkbSIMuQ97uLYFuMwLbPmMoFDM9xOra14nPZBHVFBE4/F96+pN2U28mN3wxO/mAqs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999156; c=relaxed/simple; bh=sl2dPOada260eWoDCKt+v1t/IKV/tS1BWPx34w/Mffc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=hESVCKWCBzkxvPopjIs3KMCtpaftubGftH7FpGj3i70FYmMmRxOW7jclUEm4qOxhGentT2bMtWtvJ4xCMvh3WMKMcId3dIOG/IRF04h8Wdjz1X0/DkhSxoZqdpCzDs5BE+E1n6MML4cU05XwUI/rACLqCooa3l0J69O7SfvIa1M= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=kODBmqoW; arc=fail smtp.client-ip=40.107.201.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="kODBmqoW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gCh04s86dV+X29Ya2zR7zL99O9sy7pbPnSHFILhlU5gLN7ifigXS79oEEUuiXKgSaPCn0QiEc4jI3v0+e855sQeoVz0cddmWyCifv4dybHKnzPQbdQitqb2Mjf3Fzp062TdNRyqegaUQKsIV+47cSIPCxLrezSA6ogYNN9VrolU4JnpQKa6+yIjCmPTmbi3idpaORvUyeynGSv9x6AAYXE+dm+VmFBOTnOOWy6a8MI0h9t4qsXo+/MEC2dLdlm478c5IuaOQagq3IMuEPq8pDZXUvo8Kcm/wPXoxCyK4VC8aP6fE9C+hK9tFGTyqxjmjZlTfA5v6PK4lGULM3CzLZA== 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=TIEPCNKonCOG8nUNo9yAkwGSFW+QQq43rlPc/tgzw8c=; b=p6mt/ekGCXt32LY0O34Vf7DWrkytPpny8L2+48QCI+ZM1zW01Rxq17jbyKpRd0kVwtqDQdqJNTtuYgju7Xa1jhzI2d5BD3aagayC8n+gY7FyddzZSD9ja4nTtyi3A7LXvU0POTb6UKVESc/MWoWxB3Ue6bVkHe6JhX3xPacQrpPKIiG932IIhMbSxeBmXjGCBhH6XNrFfVrJcyHvThi36jBm+IEf6074KJRBjZ9+UVoXzi+BpelL7aak+c2OC/LVjNU1hmsjwJQ0dSWOJahT1rnex0RO84p6/Y5sv9bh8hfO0JSVyrxlBED27gbzlPThrwGUVb5f7P7Y8UKZChuUEQ== 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=TIEPCNKonCOG8nUNo9yAkwGSFW+QQq43rlPc/tgzw8c=; b=kODBmqoWJQZ61c9Rv19Zx2ZDRJXlNL+ZGOoG3cDGgH5PsLjGZIxF07PyUtSdnfscLEGf8URTEXCUftS08qxymi+pPM1ls18x/xjWc0OEde6rYgm2vLY/JEp39TB2xytP7BJHzGZpUaFbfWa0yxTJorQpEY8z/ssnMXsYuvbp93k2m0SpNhZui9JTopPkDRVOeTCHGk3V/ylzAx27NyBEtvMRmg+iV7DiXFvoybM77fJR054h5B1MY3HXWMfJIwMrLyfgNM2NN+jpKbCOXordZi12lnpe0wjUvFIhBBE+jIaK6LjsdGZt7oCRZAgLPzlsS+cSmFimv9pAFVfDwJJcoQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:12 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:12 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 02/12] mm/khugepaged: add folio dirty check after try_to_unmap() Date: Thu, 23 Apr 2026 22:49:05 -0400 Message-ID: <20260424024915.28758-3-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YQZPR01CA0150.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:8c::9) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: c196b559-551d-4bb7-ee2a-08dea1ac7c09 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: rb+C4ZhXo9BCc6wbBD9jJk4zBd5mHr/JAkXhfyyaESgAI/7X1ybGadOgoqAI5SBMjxCiU1xzGnW0ZKTnljPxzEvMWaohFWEiEoEi9Cqerm5wFwrg01SnoZp8Pj1/tZ6GMF++OdiBv/lzQZklFr6icyTyM347u8hCOCvBXJIWWgqfiYmNDUYHOTBElFgQa3Wbym8Tsf7rMWDD7m/X7BNcK0ZP7HfZU6/qXe+cofgV5vgSDv6g/5mBgCIPRSVBraC8333zoOGyXY/AQ9UxXInrj6OvLpMdP5dCHDJz8bc8asrBkOF4em9/B83QGVizgYtdEm5W/l72o1WiWMTDuxlcm1exQGkQ41SbmDe9Uhyscj3RyZ13bCtTVm4zTPegrcaauNnsO6YbOoyBr4UfphCEsNaLy1ujKC/I7OZFrS+g+1Sn/LtglzeGzP3p2DiBRL8XJHUvqDMsxboY1z1hcWExOQiE8qAqvUKQez5492Kg6UU6bPrp8/TYfn2ivzovq9Iw7hslczy4qlwj+i0HsK1XR6OZlJz07+zd7hVwN/dK4xzrEau1k5vgq2lN9hvGMSgrsuRmOY1zIhIoTiejvVVAohFICFXsXX4HgidthKWZpXHKo5jruEKIWKdve2F6/A3LMf+/oEzeBpC1cxqeszyDlmpdBNZmhd1/Q81RAIA/tLNCB3SsBrFVxHbmdSFEU+gY/dcu3xc5ZVR1ETVCkB+h05uuIUtgkMSivdnJCIr3Wig= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?OA3x0tp/I1jRd4zkdxERGqf+g32ASzwi1IqUpiNevMD6gJbBiAe+KwfgSzbz?= =?us-ascii?Q?o21lBXIlxvSO1BZtdbL0XQPfcstp6ubvFAPS9iKk+eTUIM7S61KWC8wmBt8n?= =?us-ascii?Q?KVAZ6znQJ1q/shgCkhPogwFyi33B8MdtXV4FHUv8YAnvDcj4LAh2AindUZwC?= =?us-ascii?Q?fh9VCIIoZb/9WUpOhdoDooZzxlBD/Ml3ifGIfwStuqIvmt83dpEoJVRn6hcm?= =?us-ascii?Q?3DkfId8MvmgWMKqDyfi3VRsTkdPdYQrFq0zfsa1vd+BpWsfzuGyrg7d8sDme?= =?us-ascii?Q?cRSr0iMf+Kog1JJJ1Qp2Ft1y4uRJupUjaH40BbNiPAXmJWuo+gt7NZ0P4QVz?= =?us-ascii?Q?Cg9E7Jw3jpC0B+AJJBoUs15YDAzvZqyPl/taWE3hJJv7yxuHZbHETIuRy9RX?= =?us-ascii?Q?9/SIo0he//+GENqDLnzv0FWIHGGrpvQXJqDoYDQo/m/PWx9Tc9slT4j1uJzw?= =?us-ascii?Q?LgxJaTo/eRDMh4l+HMnvra1yah2OX+bHd1KzcXkeCbO1oDtw3RpSWX9tWqPy?= =?us-ascii?Q?78K1FkHqj8KdT3/3I3AN9cUPmxSuFM2od3MO9saXu9NLQK75jpt1yrKXqIa7?= =?us-ascii?Q?1KhZqdv2q+3MPxOLWs8G7vHvmKDIMBZ9YoCR8ZbMig8pIXQuTXmPmq2Q589J?= =?us-ascii?Q?NiE7V9EgTgpvLrdExtOxDpLNFRKhMzQ5XmvHK+OQ7dDa7RU895xeG0q4fquv?= =?us-ascii?Q?S3s58wH8AQ9sOtBiaVZlBY6sF7LmPrZOUbqzazBGgqnSZXCLocGe62SqGxKk?= =?us-ascii?Q?JmmlwQRhI0OyazIH9hZ2wZO8kAe1/5+tOUpiFN4s6j342ouR9KVZTHmEKcRy?= =?us-ascii?Q?LSuCxQNbGcGPGI7c8zQx1pS8Yhp+ulAkYgXhKAyqtJ3AeVNSfWunbKRhJ1fQ?= =?us-ascii?Q?R60sgpMnTfrS1FTGxjbYzcBLWqxDIe0ZNxQXnWZgMMWhNNbOm4z3GwjN4rIm?= =?us-ascii?Q?g/L1NtLt99HcJfQMOoBrcuOOQ4jJPdK7n5z0zxQnfBgj8GrBc9FfyOSM3+29?= =?us-ascii?Q?nMFQsR4l5hPCc/lFT/PvgLZqvDQQKIkqsLk7nutOcE1to+tc0GtnK2BriP7Q?= =?us-ascii?Q?N3juspfR46LH65gQ/etlGa03ZcvcvFl/hx08O5Q17iU6t/1ClsE+8FbVQNks?= =?us-ascii?Q?GYrpH9SD5BdAgeG6sMOxLXYy9BxylBUZifXdLmllUTqCI2YA8E3qhgxY6C+o?= =?us-ascii?Q?SXv4vxVlAV2Ic4fmfGdy1K7srl/WhRTRM25DYRt+3FKRZTSgmeqybVZR8dv1?= =?us-ascii?Q?4zAcOcMptUoXSsZV37XrqTgRu7I132E9mAbsQEVTgS45iMToQ4CP65oNddEA?= =?us-ascii?Q?h+dAjLXrjB+wgCiNz9c51ePSeLl9bpIcxRI7UNAaSt0A4u7ZC8JOiv/268Ro?= =?us-ascii?Q?FgmAZotUCyPkAqmR1yjqhs6FIkLSVyZdoj0Kcowj4JcosDi8P2TOSgafSPsx?= =?us-ascii?Q?0M+Tpyk6v+1oWJ0UUEEVvFRpD8bEhfd1Id3Al4TPLYxLL1lfg5fvCAZDOXKG?= =?us-ascii?Q?FahpkBOGPqKusNZkXYaUBmh4+urI9lVlH0lpQQfh1LRMTe5eSz36a8glz9ub?= =?us-ascii?Q?TvzPt+lB5j2Q28L+Cs4FKZKYIIByVzFlG+RXWQF9V/wjWIKoKmXjMf+jxMn0?= =?us-ascii?Q?+mRf3bwMt0ku571tu5Wk81uu0yqWGgJajhdZz9E9udx5awhrBCuu4tK6YOfJ?= =?us-ascii?Q?nHniOKqQT+A85zpRS5v/4dZHHs0SCApDRxOxYyG2GcKiyzlX?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c196b559-551d-4bb7-ee2a-08dea1ac7c09 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:12.1576 (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: 2MFycldFOVGDprKWro80qKA5q0MKVdIrexSjyXZ2jvxI3HtKhTR7iyGGAzHhxDDC X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" This check ensures the correctness of collapse read-only THPs for FSes after READ_ONLY_THP_FOR_FS is enabled by default for all FSes supporting PMD THP pagecache. READ_ONLY_THP_FOR_FS only supports read-only fd and uses mapping->nr_thps and inode->i_writecount to prevent any write to read-only to-be-collapsed folios. In upcoming commits, READ_ONLY_THP_FOR_FS will be removed and the aforementioned mechanism will go away too. To ensure khugepaged functions as expected after the changes, skip if any folio is dirty after try_to_unmap(), since a dirty folio means this read-only folio got some writes via mmap can happen between try_to_unmap() and try_to_unmap_flush() via cached TLB entries and khugepaged does not support writable pagecache folio collapse yet. Signed-off-by: Zi Yan Acked-by: David Hildenbrand (Arm) Reviewed-by: Baolin Wang --- mm/khugepaged.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 79f051eb6195..726f8ace01af 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -2327,8 +2327,7 @@ static enum scan_result collapse_file(struct mm_struc= t *mm, unsigned long addr, } } else if (folio_test_dirty(folio)) { /* - * khugepaged only works on read-only fd, - * so this page is dirty because it hasn't + * This page is dirty because it hasn't * been flushed since first write. There * won't be new dirty pages. * @@ -2386,8 +2385,8 @@ static enum scan_result collapse_file(struct mm_struc= t *mm, unsigned long addr, if (!is_shmem && (folio_test_dirty(folio) || folio_test_writeback(folio))) { /* - * khugepaged only works on read-only fd, so this - * folio is dirty because it hasn't been flushed + * khugepaged only works on clean file-backed folios, + * so this folio is dirty because it hasn't been flushed * since first write. */ result =3D SCAN_PAGE_DIRTY_OR_WRITEBACK; @@ -2431,6 +2430,27 @@ static enum scan_result collapse_file(struct mm_stru= ct *mm, unsigned long addr, goto out_unlock; } =20 + /* + * At this point, the folio is locked and unmapped. If the PTE + * was dirty, try_to_unmap() has transferred the dirty bit to + * the folio and we must not collapse it into a clean + * file-backed folio. + * + * If the folio is clean here, no one can write it until we + * drop the folio lock. A write through a stale TLB entry came + * from a clean PTE and must fault because the PTE has been + * cleared; the fault path has to take the folio lock before + * installing a writable mapping. Buffered write paths also + * have to take the folio lock before modifying file contents + * without a mapping, typically via write_begin_get_folio(). + */ + if (!is_shmem && folio_test_dirty(folio)) { + result =3D SCAN_PAGE_DIRTY_OR_WRITEBACK; + xas_unlock_irq(&xas); + folio_putback_lru(folio); + goto out_unlock; + } + /* * Accumulate the folios that are being collapsed. */ --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012019.outbound.protection.outlook.com [40.107.209.19]) (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 CCAF22FDC38; Fri, 24 Apr 2026 02:52:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999163; cv=fail; b=Tkqcfs8S+Kw1EaT5soVzU/M9yDTRNdFa2lbx7fejivpfafstKLljfx+GYK45YxVN0GrcnQp+MY2a3mnOaPQBjzle4h5/SKR2WL0wIONnB+z/vpqoKAi+js38HQzNmryrd6tkTHX08Vkx3FBXqE/KW6YO2qlWtU5Emx5R5iobrdA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999163; c=relaxed/simple; bh=Apvf6RUNCsJYqOaD5QjZO0Eh5r4My2ROkehxhtfv3Qg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qL8MHuChhxEB5RDtWpRCtN+5EagtaHblRTRN/Ch1hfADA2VnpFHYhmpgVTrPMaAHyzQeHJnsp6vLnSsTJoUrAQ3z6/FmzuSZkncW7afYvRvUNCFJF+PUfFVgHF69OcvXJg3Fb67xXYHPclqHBO5lPEV51mkCPmcHsG7zhWS/jYM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=GTlTN81a; arc=fail smtp.client-ip=40.107.209.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="GTlTN81a" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e4+bqIa/G+fXf6y/nhZKvsJIorbA/l1Hi8/0QA9p7e1EJsC3ZZ5K4yzD+iTp7/9P+z4ju5Cxqoe9M287Yv2R2dpXDrYIMlJC+jIqdyCv2XIBenZopA+yfvDtuQCzk7QMVqLwBfoftG0U0vEsN6zaTu9uoEWZzT2SGssC6bNi7GPvlxnNPro0nq1ub9/pvozIax0SJ03CB7ApFW+EL/3PykPeqjpBMOVgTcSevPoTV4NTuf+KXo6fBrY9dib9+VxnrFEh68pO6QUOems+CIytdouvf+S3yHp9AQDBSI2ktArDfL2omHUc9UW09B6LE9Tw3BUGlV4dnXHq5G9wLs0dPA== 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=JFntIgk9uj3iXP7kiSDYhEA9wFOSYyCiLjWj2zSH/JA=; b=s5xYDdoKEKY7WpVazswcJs6DR7myQ1hjC7A/Q2QTQGk07RH0RKSbvigxl+t/Va4L2PmPJfcA3Z408YUm7HyMbJXYXldAjw7rfrUyZwph5R7cC5NpcXUPHLmiNBnHUXM2Lj3p9ZPrrK+1WdwPwgAEd1ohUU1OPPWTNNdybXycW/aPtUPjSjzxM1Nk1uj/BMfmTqvXbzRypG6uWSJibMWeUrMIQQBTT4TLsxictND0+oMOvqq8+Gf1UOoolEt+D8cw12Y1f4XnZ2rf73ENdBGcMss6+6GBeBbGIwskPoGi7IGOMte8vOQM2YNXK2VI74LVH2adCAQTxaz/B9MEX9eSPg== 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=JFntIgk9uj3iXP7kiSDYhEA9wFOSYyCiLjWj2zSH/JA=; b=GTlTN81a99Bn5xxqmE4jkJVMyIayLO65hApgcO4miCsfgbvX2aa6MPFD/SPJ5CErKG1zhfn5QZWU0vvPq9FRzyqLDR1q8yTXfYOHsOzwN/++g1tr911cuH+b58e2DWjy3kUBur/gJAkLQoZko5z7S8rsWHSFLXw1gmnWnF/BIXCxs2Vj4Z7qDNjOFFQiV9Uj4swroQDJUTa7gbwm84JRccv/UqEgAbbAP0htK6sKm1fWORLpqoT3j8L8fSlV67JcIfgXwfAQ+2/Q8wCKAdX/sQxYjJhaN1SiPYf3l7Eg4kNVLkuM1ixTRVIZBM8qAV5662l2Get0WFupbnJ0J0lA/g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:13 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:13 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 03/12] mm/huge_memory: remove READ_ONLY_THP_FOR_FS from file_thp_enabled() Date: Thu, 23 Apr 2026 22:49:06 -0400 Message-ID: <20260424024915.28758-4-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: IA1P220CA0022.NAMP220.PROD.OUTLOOK.COM (2603:10b6:208:464::11) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: 2d0ea972-8211-49e4-47fb-08dea1ac7cb7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Sm6GOF1wNHGh7ef+6rtIywDrqJ4ly/+X3Sw+hJgG00D3e2YNFhLdhMD6i4c9AuExGwMtHVgsntgHe8s5PN5dcSdbijbmvw4a9wG2xQq19fqC7N4zRKbhOrvJmdN/FQJ4qNeWt8BUttUOfj9VTV3YT07me9w5GsLuIjyx+iXPpz/9cjOdkVTwjplKuNh3T5SR2eECgaKaHrYCoob0Y/sjuijbpVo4V6A2+9W5XRxBoULmb3EF7VbtOWhW9BTZVr+WH2msBeYg34q0P8mjck2NqS0uqU3vWvcpj5HqxltOpdtBBg19NTGB2MwXUTWlKHVjlZCBYQ6T7SuOKSbLnp9CD3FWW3ZiqgH5T6vc5XaTaK7XoICVgTTVL1BdBDLJuK0wcIJxv78rNOLLRW0CPqBRwvg6OdS/lslRuTla23H7LI4SN/uE/YfioPw1DrqOxGAD2MNJFTNFacaPyRgh7o5h6ha/cfwm0jKIE+WOCfRp50m/GqqvcXS4HZAavVCc8CiKEsVw9Hz3n/om3R/LoJpd9v9oGhwPlAnO29lcYxDQDbe0k4hCZ0msMvpozYviL6adPYIgvaUsNTdqskJM4xA/t6/PfMXmykxt6vvGLxarZ/V35lnmyL2NB5O9208jt1Q6bYRkay1Z5ztxx2HwVwGUnTo8HGRa6KwI74TxFyoyNJhLuGb7ODhRGR5p0AuFDFBuOj8hqCX3LYo2+m2BuUSQC4gXPY11rkk83gM1fwTSd/0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?a/FnK/EQtyn185dJjsW4yAbwZ/CXrjuQSXJx0M+qWRFuuRwdTuZ1Vdb7lkwJ?= =?us-ascii?Q?CmHF8DAbnxIRviK/xZNx23lwRlxobxfUr4bzrEJxs2QVO1+YrguCA8c2KZB7?= =?us-ascii?Q?OFrD+paHnaTWg21N2bSBLWAhPHOtv7FRZFoUJp17GkjOAa4XL0mAIb5Tw9m8?= =?us-ascii?Q?PC2JMARFVEaAnWDcpkD6bReG6UA7ScSB71rZk2O5apyKCy5gwtOvfJIueePy?= =?us-ascii?Q?LaepQ9aYecOrVxEx3+hzWO34TYllQcTz5tbcbPGRGLjjg9Jf51W08o05IYso?= =?us-ascii?Q?Tfn0pNicfpFvZt6qyj64jCS2UodtVkmy8SZAy1S7l+3GShbxrHTT7On+/2/s?= =?us-ascii?Q?77BeY0pUB9IkwrS0XZ3AHlTXCvumIPJOpkwfQ2HF31DXWfDTdDa+8AKgQ4hK?= =?us-ascii?Q?rr4q6uyZc66kh/oTjkoGr/R09/W49FdvHIVAjFRYiMaVw0q3O1B0Dz0NQZ5F?= =?us-ascii?Q?AEyimTJ++sopteXtnFlrCYtliQ2Hm365taRoAxOQIiyomaM7wdSvczMgkSbM?= =?us-ascii?Q?V4711l8YU0WdOkN8W3tK9+UunE7Ip3BJCYJbtf6EPx0PEifykWetlggFVYv/?= =?us-ascii?Q?ErhZIY6yGfMOMQ+C5q8OvjhowjOpvvN+uVPeDOvK4+OMyjVRoDxAzfXLPGTW?= =?us-ascii?Q?gov11O1sSR+PvdzOsn9SkevQlCmPzxdGo1XOzMU546nxjc7iVtmSfpQWR0ot?= =?us-ascii?Q?fq6sOzbS/6JIkRDJ9zVrEusyLR24m6Mi5oey1ckLAy5YVYzUA4aVF+sJidqB?= =?us-ascii?Q?YAdQt8ovPdEB0hDxy16okX+i/13YKgA+gzz9Ax4/Epf+g5if6eubNB7UPd9p?= =?us-ascii?Q?9qHIRIks1Fp6QAqDWbRnxgHbQK+o5lj7DzfEmS2p9gOQ5Qq61ynBAjvTfcCU?= =?us-ascii?Q?h9WK81W0ueMiDY34VXlgkvh5hwcrwZYgELqx6PMD7gOTjgTOB2Lc2aYpy+HW?= =?us-ascii?Q?Fv6RZpNcxS3pbVazPdaMWw+u5gFp+QI2m7UIsktMhQOdh/hqwdeZjEQ+TAU7?= =?us-ascii?Q?knRKdVAtktDQz0/JgOLA2iIW95bpBYnuvRxvOUZa0W5M5GT4Rjo94A+wIIWp?= =?us-ascii?Q?vHf5LqQadZwfKzxjdpATd94pR+/Iz1d7mCAJS0aQ353kwoJQw8HzrMtca4i8?= =?us-ascii?Q?fVMJk4WlkaTa9wYsv8Es63BA7CGCOX6tJurYWNpejkksGAuolV56ac7Sl7U6?= =?us-ascii?Q?b/OrB6ZbjV11Q4RfGNfOckfdgGz/7DNthOG+cmpoYR8b6SRezykVEfj0xUXv?= =?us-ascii?Q?fGXLUucCalNzr+ac7KVLGUNYUs9WxjzCKUZeAooSTbBrfiBPjWcg7J4VrZ+c?= =?us-ascii?Q?wTlycEqaC6sVRP8e7TqPHxN9ToLKpYSOe3EeL8LRHjHICpCKPcTQd4gk8rIj?= =?us-ascii?Q?ssGB8IhCumULgt17YaR8WjXiyb0MssaF9GEN1WvSEitm/teLap++7MtRfzb3?= =?us-ascii?Q?g3Tagirj0x+V4/7DE0/OLyw4nry+YCNwiJ3rjbmKtYywwajV8/8QqiuJM2Cl?= =?us-ascii?Q?0dUGlQqFUACriFFNw+S4Osx9HnB1C2DvqfoxYl7NGxpT5TZmMl+yeAFL7Q9Y?= =?us-ascii?Q?tWaUPCffEeifNMQzqC268fO+kBqJAIa/BjUtI2zPq4G+AwdVxpwOdOmlxLkO?= =?us-ascii?Q?3J8UWU/f8cpvzkUoN0BYFwSQWdRUDMcQUZvLDXcQB+WzNp8mStRl4uOWwn4S?= =?us-ascii?Q?vmPnxDmxEtEqY8I61nQ8FDX+pVhUn0t75gdbcAFSSWRlPhAu?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2d0ea972-8211-49e4-47fb-08dea1ac7cb7 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:13.2806 (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: mCZgH5JhZWO4Wd6lySJD1dsnT+HFipnblSWG9Ovcp3pJ/HhJ9sxDaoY+bMLhioZq X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" Replace it with a check on the max folio order of the file's address space mapping, making sure PMD THP is supported. Also remove the read-only fd check, since collapse_file() now makes sure all to-be-collapsed folios are clean and the created PMD file THP can be handled by FSes properly. Signed-off-by: Zi Yan Reviewed-by: Baolin Wang Acked-by: David Hildenbrand (Arm) --- mm/huge_memory.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 1f0d0b780943..f0db1390a18f 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -86,9 +86,6 @@ static inline bool file_thp_enabled(struct vm_area_struct= *vma) { struct inode *inode; =20 - if (!IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS)) - return false; - if (!vma->vm_file) return false; =20 @@ -97,7 +94,10 @@ static inline bool file_thp_enabled(struct vm_area_struc= t *vma) if (IS_ANON_FILE(inode)) return false; =20 - return !inode_is_open_for_write(inode) && S_ISREG(inode->i_mode); + if (!mapping_pmd_thp_support(inode->i_mapping)) + return false; + + return S_ISREG(inode->i_mode); } =20 /* If returns true, we are unable to access the VMA's folios. */ --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013055.outbound.protection.outlook.com [40.107.201.55]) (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 E33082F619D; Fri, 24 Apr 2026 02:52:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999168; cv=fail; b=TBo+GKNozlnbM+wKMJs31yDSdj1+NbH8rMihKB8JyttEk5NdzvXNllqcUv3BV6RDtPnJUlfzQK/QPK442pzpr41LbzSEtnQO46SZ9wSp7GePN8GFDN/zMd15TTgkXPabYFfWPdM6priGXAdfxbrYpUIiUqMMOiac5a2v3pi9+O0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999168; c=relaxed/simple; bh=1QmAvmF9iUG9z2OeYeW87y65rwy5B8p/x8H9y5u0lZ4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=RF9mXVDq0osyPw1cE0D32Rb9Lp2e4wdtTeBED17YYTjrC7GVbSfmmUu1i79i3WcpcUkKaOo8Ox1oxBRaVJrKe99vVoFJiQUTgCsGypXO5M11/Y9NfwK1WNojsn1KIeUSURtA1tzqLVhZp6CaFwi0Wal3zqaAn+jYQQc+MOSsqPA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=SGUnzxjo; arc=fail smtp.client-ip=40.107.201.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="SGUnzxjo" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KmWoLPz+KX2kZ/7P+RBdpH9iFlDgcf1PeDWsUxCq+MCF7KqLcW+hcgalnRraJlenDcvnw1ni8yNnNon/Yau9+DvRZb1Shx87JyvEnAAWq0YmuUaKR3yFDdvM3gNNCJ1lxoKvezr69XDnZMzk85pGBX/5S4WUAWr8XGLqxMWea6hcEuq5tIBXuJ9caW4EkUbBpH4QAfkiNuSSXSZ0ArIzUc9dCN3wUmEi2ZTBTHnSyhhH17yRlVYT2byJk5RU4jDN9BjYNZss98Urm1V6Rh2+OqKT0dKxefvg32ukU+VhLdY2XN85vJUCT1doU1cM+HCqo35ESlcJLR7a4wZ0g0ddig== 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=3ZqMhoOMKkITRxl/cPiLbG/DuTr/NAalxDFMiTPh1MY=; b=kDAM+yfKeMSDmQw5czd+qBEHMxozmQt1hVFxooLg35ZviXuHngFBy0q4yKQz4J5mBPfC3B+b0TbXazxCCsexCy9AX2BKHuLoX65G5Agd9x/0dZ6cx6rGVLktS7AJMO7U6/NuMi6rkbPCW+EXpnpfgEJeE69lYaow764hgNUCCYgo7LOA9z66XW1y8vvtTCvI1X9L54BGcTnfputHUPb2fpW0w7Yg/PqGep5ID+QEKCMqzRIGbYVnfOx2ndmiTAlVhZ1d6+pm/l3A3+iXtwd2pm8y8kT1dRl+D6dwqoeIUUGrewMNLv69UmnI67msiyrdXRhMqPRNg6MFwjoeG66pMA== 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=3ZqMhoOMKkITRxl/cPiLbG/DuTr/NAalxDFMiTPh1MY=; b=SGUnzxjotrM4jzFyi8bATZZ1fc3ff0HJE16YDIjti1O1E/R0Ucd22Zv82jG5FIOCujW/tse4eOmqAivOYOAuxjAYeR6U63njOmCMCh6aYWLJkQ7/p8L3x2zlTYdLO3DNPTp57oQP4ye/v2axOb5kUo1WeZWQzXSGgNWs4jS9A73h2UCOeIE52nq7rNTivBnGzvUtPVJxTT1KUM/h1mrVzKnK1NsE3jqonTrd9EQBgPN1qROvKwrrZRme61ovnzxm+OLFTDyxCL3R/za0h2MTSp/QynOG6idov2iW+8Br7YoZz4zYmzQ1zJshbmZhIkSwsS8IoU5VJMoSqmTZOFYBwQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:14 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:14 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 04/12] mm/khugepaged: remove READ_ONLY_THP_FOR_FS check in hugepage_enabled() Date: Thu, 23 Apr 2026 22:49:07 -0400 Message-ID: <20260424024915.28758-5-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAPR05CA0035.namprd05.prod.outlook.com (2603:10b6:208:335::16) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: 8eeb80e7-cae4-4ca9-97cc-08dea1ac7d69 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: dWytQDmuNcYOf+nw0/nhLp0gQeapYbke7Ul/sNaToPa4s7u9ywkwtxGn33kA/Q2sO53rKTv4INAZJtV+/H2sgT3f3gQyp52Chhv5TTSuYXZJUAZ5KVu/Jygqet3kyc3zMZBK7tf0/t14ILCoTRN0teFbk2f/5hhyPjOIAvzKosqXEgOvbsa5UOWWGDXjN7500tRAIMztASa6imBZ1GU0L6o5HKjkINoIAkC0wuOnrT1tCQKR1Hni8VB8AP74o38lCT6AkiNMSXewmaztCIGx5JVkWf1MF78NrRM+G9Sx3suKQHN2qJKajejxduTTjQQVYFpsWT+04UCWtYG1v0g3sLBpFQISP+v7NImxraJaZiKJkDYR19hB/Ku2VRm2cFNDJNqTKFT/MGv4FdvFH+v6EYnBHWol/AjBn4p3qG/0cidx55FnWe91+qb/TaY9qtaUvDg1567Jqt2iIxK14LL2PZP49NlOqYW9sxZhrLWKnTjnvtmkVN5lJNuDSLww13sALHJWSI4ZfIlOFQ+dWWGSRYFwEnA4kqTkR699rdo/xC/PtL2sGTJeP2mfCOAHJ1ZMAEgEC3fnQjpgN2cMGswQPRwiWCsCenCxo8hBIuelDHTeZWdGRg8ByGw8hNKYwqhHY3cmDeMh1PYc4qyij6VUqCnvpEgmB4KwPDUJ/8VDqDQHmxD+kF+XwZs8LxVVdSOzbUgb1c10b6vOPyYuQwDG7xFIL5f2tS9FGeVbzZC5gg8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?j79FZLto9D4/uUQNAdM9p2eNJWpwXzQvWyyOlG4TyZLSVA6seDPj961cFwOu?= =?us-ascii?Q?g4X5Eht3tl8fs9x410xcBhP7srOPSVJianBaeS1F043MCTVdLLzxWhnfFQz+?= =?us-ascii?Q?vtOmEsqmVpY3q32Ngm97b06X/E8TVxLosQectC36MFIb20E0QL2eXEFNbNp9?= =?us-ascii?Q?ruPVaaz/iMfStfMeKUrC9RwQjrEYMfmUJg46CPCQ4m9uhAm4k2YblUzyedkH?= =?us-ascii?Q?EuS2X2Nxr0HDI/dJPfhvWN+PECXF3TzvwXwzxik1l68d92dvPBADBrIIXjiC?= =?us-ascii?Q?gbI53+t4AXtL195RT0f9qCd1KINSHJgD++eY09WxlLHCiVdcC7dzGv+JhmdK?= =?us-ascii?Q?cN6DbMPua58GwYalkxX9xz0jgmk82F4dTCz7iQs+9iWMswvR2gYf8ZjDLe/0?= =?us-ascii?Q?AKOMcDtPSGCmt5tON5GPX56MfoCFICsBqlUt3BoQlVrrNDAWQdB793uJcx6Q?= =?us-ascii?Q?HmBz5yQLvMl8/NaupZIrl+lpCXaTzhyCROQMGSB5ma0lkzM1TBywNAm24TSW?= =?us-ascii?Q?LLrKFMdU3NBClcHTpMy13B+iMhkhVPvEbKtRly9m0aPI8Ty2gl8TQg3roA9V?= =?us-ascii?Q?FdS2jsNR5TJwo+PPgGprWmwFMOV5gROWMWuGYphEODJLRgZ6RrSUQ3RcZh/K?= =?us-ascii?Q?q53jvfLID8E77FXjvZgpwqoyKJm1tJddyRQUeV2QgCrh48twO0ynVLGDo8BW?= =?us-ascii?Q?rONBxxD8BTV47jYhwTaxNB8GzTg6MLKsAZ43pwJGgunlNuSzfav/siiETK57?= =?us-ascii?Q?qoGm8KXxDJrhl9DHPvU68L0L57D2swEaoaHSI3Mw4WH4/FMuXhKs6Y2PafPw?= =?us-ascii?Q?kvV2gjC30fIDuifRDBCXtbrKOH3nmdIalk3djFa8/x/KxtewKXMAIUQ2Conh?= =?us-ascii?Q?IXrnf81EPPrs1XRycsQU4upI34MV49O0Iufu9qtcsFTifAGVQo102FcAkFL9?= =?us-ascii?Q?atmJ7bQm1qjUG3uHG2yHtEgWlInGg7tuUpM/IIUOLA5Zz6MS34URDJ0k8Nb8?= =?us-ascii?Q?KWbAt6A3Xwt0Zq6lxNG6XSGJzURF9lOacjHb7uZ0JZ96ylIfFvBr+veMVMb3?= =?us-ascii?Q?w9UZoPhKDtuH/qY4Pg/OJNkUkv/7G6PvQq2hzZfRK6r/NW+o54iCiImVAFrK?= =?us-ascii?Q?ZW5umXu/5PMNygIXYfC4qLL7TBBfvfMEocMw5TtLXbXCtGBB28DPhxx/DIE5?= =?us-ascii?Q?S/i6S+mQbTSeGVGrcTHWFu5ueoztr4sMMfDu9I68uWzedV8WSlFs4wiFPVPe?= =?us-ascii?Q?rZvYX/J8T9XFXqsi2+LqQx6WnAJatcAgeRj+HJDN3bRhVMs00tomFM6sGy/M?= =?us-ascii?Q?hA2xDgtJeO8w/1MvmR7HSH7b21sYzCFhYb6Dt/gEkGwKV8bnOGQUv/KtznC7?= =?us-ascii?Q?i7cgWupa/zHAdGfPW1DhXa1JmEJnnG0xhd4AjkXcl5I0BgS15urhXTVsiTQW?= =?us-ascii?Q?LrGKIS/XnnqpO94d3nfpT3cc4/E+moV+ydR4EfEoPZehHqUjyv/8TEF4xodz?= =?us-ascii?Q?Szg5zGOlq9bKl4FriKpEP7eZcz2E0iYhrSKjqePA+rOvWghaKthUROhb/YqW?= =?us-ascii?Q?/gi5cHrr4WIQ3Ii11WONA2iRnQkkXa/PkTJ0T0CQj8m1WGQI7wYzgOD6/aut?= =?us-ascii?Q?g3Mhdcny6ySpQbvgoK2yj+WQ0p/HYqa2e0aXh/KkmWpBJ7M1Ee2H1wcLR5AT?= =?us-ascii?Q?A175n9QT1GGBlD65DZzdu7fsHlUwq2fCGEIsXqDQm36J+aI/?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8eeb80e7-cae4-4ca9-97cc-08dea1ac7d69 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:14.4552 (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: FaI0XTaJTJSnnY/+hWapZZm84m30eiRBo2P4Z2vs1S6zfI8GtJ4V3N3yvDH+FbiK X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" Remove READ_ONLY_THP_FOR_FS and khugepaged for file-backed pmd-sized hugepages are enabled by the global transparent hugepage control. khugepaged can still be enabled by per-size control for anon and shmem when the global control is off. Add shmem_hpage_pmd_enabled() stub for !CONFIG_SHMEM to remove IS_ENABLED(SHMEM) in hugepage_enabled(). Clean up hugepage_enabled() by moving anon code to anon_hpage_enabled(). Signed-off-by: Zi Yan Reviewed-by: Baolin Wang Acked-by: David Hildenbrand (Arm) --- include/linux/shmem_fs.h | 2 +- mm/khugepaged.c | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h index 93a0ba872ebe..acb8dd961b45 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h @@ -127,7 +127,7 @@ int shmem_writeout(struct folio *folio, struct swap_ioc= b **plug, void shmem_truncate_range(struct inode *inode, loff_t start, uoff_t end); int shmem_unuse(unsigned int type); =20 -#ifdef CONFIG_TRANSPARENT_HUGEPAGE +#if defined(CONFIG_TRANSPARENT_HUGEPAGE) && defined(CONFIG_SHMEM) unsigned long shmem_allowable_huge_orders(struct inode *inode, struct vm_area_struct *vma, pgoff_t index, loff_t write_end, bool shmem_huge_force); diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 726f8ace01af..cdd4b37e4a68 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -524,26 +524,32 @@ static inline int collapse_test_exit_or_disable(struc= t mm_struct *mm) mm_flags_test(MMF_DISABLE_THP_COMPLETELY, mm); } =20 +static inline bool anon_hpage_enabled(void) +{ + if (READ_ONCE(huge_anon_orders_always)) + return true; + if (READ_ONCE(huge_anon_orders_madvise)) + return true; + if (READ_ONCE(huge_anon_orders_inherit) && + hugepage_global_enabled()) + return true; + return false; +} + static bool hugepage_enabled(void) { /* * We cover the anon, shmem and the file-backed case here; file-backed - * hugepages, when configured in, are determined by the global control. + * hugepages are determined by the global control. * Anon hugepages are determined by its per-size mTHP control. * Shmem pmd-sized hugepages are also determined by its pmd-size control, * except when the global shmem_huge is set to SHMEM_HUGE_DENY. */ - if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && - hugepage_global_enabled()) - return true; - if (READ_ONCE(huge_anon_orders_always)) + if (hugepage_global_enabled()) return true; - if (READ_ONCE(huge_anon_orders_madvise)) - return true; - if (READ_ONCE(huge_anon_orders_inherit) && - hugepage_global_enabled()) + if (anon_hpage_enabled()) return true; - if (IS_ENABLED(CONFIG_SHMEM) && shmem_hpage_pmd_enabled()) + if (shmem_hpage_pmd_enabled()) return true; return false; } --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013055.outbound.protection.outlook.com [40.107.201.55]) (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 394E130B50A; Fri, 24 Apr 2026 02:52:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999174; cv=fail; b=n/w/brgehur7SXBgt7nEHffyA+Qx7J8Zg/s+fhiBm0O+VKf/lxZBGS8xCWvbxGv0s5wI31kOqL73eJ1vTsgM5hRhQgw6Im/8D8Ym2NvE+Y9hT6konCO75IsUnpJaFsbdlK4tKt0EN0cqzNFdJ2FCScu8IiMVCnnerleL5yjLPW0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999174; c=relaxed/simple; bh=1ujPBKW+S4NeXRf1S9XBwSyvKQUaPUviua2U14x/fBw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ee/lSAGaNWiTqnd32bf25bWF6WofiRZ3auCp5JLi6PInszLQP/KBxValByfUPKb5YtuagjbZWNc9NcckwXnavmpFhIp7lUf16cJUTgki1RDCgAyk+uhtJYEe/zOfCvoEMNeQ8dLKnUKJTp0uK2eLkhotf8kCtomN0x2pXzHB+Kk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Aih/lYxC; arc=fail smtp.client-ip=40.107.201.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Aih/lYxC" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A9CqaLGTko3s3TFyAmfKFm8D8xsTSr89lElcyKwuEn+XJUqaKccNZM8NIZu1/jl1njqTD1a0FjjGYEi+DBnILeEJfMXMpslld5uukKmdx6fUji4HwdPXGOfYuv4EBemXLrjjVkYc+ddEMSQLBvTzvmQM9FrX1GCbE3WG2h5e4nSNNSBNQ9XMLkaDiin2A+viV7VgCzWwC44MJjMIqAskVXk6ZXQGt0iRssbTzclKh+Pks8NeODxC5Gsr5BZJHpWSgy0cOvdfzNleh1y7eTTPtNclBTFQV8oXtStFDlyyA4a8j+mq1Prf2BoXb9RI/lX5+oiBrtWTX6prcliUAyC4rA== 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=hNxDzUAqaYv7oO0pbheEAqlVGsKkW+ZSFLS+vIIrA9M=; b=Vf8b+S9wxTS5C+y9n0psazaxQoIwNpi/UbevcNoT4huma5E3tZOVeGFu56dKBbUwCJk5knpq6zN+0R06a6jlu6OKLZE8bhPZQYn+3Hs1TAVg+LEl4cRuF5z6eCQ8A2Hj5hf3uzwOhJJYkrc0AbNToWe+ADkGnLCrgjHAzDQBgWIxfImIamovVXcgcLWvE/K2ON443roJd9wMtaB1Sd3NO/GK7bB8vjz88nOipoJUmwhIhppN5B7rhS3ybo6jSk4D/NPA8fI7mV7P2wJZtqMphO/KgrXJf27QQZcQaHQ1QNUNQVLXvHkKPgUJWm1H3G7S3Snb4tEKPnndVuHQYInAEQ== 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=hNxDzUAqaYv7oO0pbheEAqlVGsKkW+ZSFLS+vIIrA9M=; b=Aih/lYxC1ZxcjRJcQ3bVDBuUqqIWzFnimkI99+YrVCtZkU7pKDdTnXbz804FcXcv8L9u3Nl3kqdmuxF0UdOR25DzecVP6av6aQRUoxiBPxoCNdnF7GNiT4A8rUPeTT9lVwUfiefcCvx+zsjRT7wKGXD4WcVJ/zKZZ3moSK31cuF2mUKiwHvj2JbKg9MCZ0Z1l5wKlMwXbEcbpdsRf39tY9pcEQq9AUQnDvT54bNS8F4CZxGqewAXhVRBjgozSCuh6YSo6ayHoVpbOc+Vf7/FeW5NlI3Um7UjoJCB+lmtY3ezqBVNAyTJiloOS+emSmwtEbE5kul1DcSESqAOhNfwaw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:15 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:15 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 05/12] mm: remove READ_ONLY_THP_FOR_FS Kconfig option Date: Thu, 23 Apr 2026 22:49:08 -0400 Message-ID: <20260424024915.28758-6-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAPR05CA0033.namprd05.prod.outlook.com (2603:10b6:208:335::14) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f334f70-de1f-439b-0069-08dea1ac7e1f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Td50qHP6a66IRxyZkLs/hnua6iH/3VKsfgFJDYp6iFIkHRHZ1MsOYVLb6BHfIrZ2LsV/Dnd6U4BG63lrSty1GOMzjnIqBxE6izEzmgLLGlXlmVVIMmU5pjbaogFyCu7hMqz+5KHbFS0lOET80k/ng27goMU5fAEoZ3RH9KnEb99jRM3XXfsbjf1B7iJLYQPPEYWR07iomXotCFeIZQ9W1P4cjN0/08QzM0gGOfaPLT/7nk1yY0+P1Rr+QMIMnKV9eb7jsKjhM/zLaMt+LpzVDDOTp2Rn0BZNKyCDtPIRpR0YhVH+QE/gk+5CJMZMKyEjUeOZ1Wc28oCHFoU87LMCwO3CFpueAeseWmaRNEHoG12ItyXC/7TV3YKAATwAc0xtyKezJiR8a5wze/Xwi1tZCqSp5JiiYhvpIENAUaRZDmm3AcFy4vlptXIKYPBgnY6Nlq5CEFPjdPFoFwcgahcWCqBAeMvgMge6gO6AHZqpLG46jMq3d98Be3ssFAV3n+HVzsbzYewIP+OPLo40LNa2RK8NCqfsx8psbkmLocl9x0bglwaYYGUdfnvWg5FljUyAO9nYsUznf1P0Jnpfqy8Jzjmq1pSmAvokrpHr2argDCjdC/WXLzK9gbss3qdLEoRv7YkTVoAkO4IJaEwPiG4qbHCNruwGIOxSTYW5Mua/kuerxQEwZnDrk0oHVWXNcZDn8+sqSRYS4ClyCpDWVanA+5ktKMJloJZTwvzL5trHVjc= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/QeltMXTEUtam6VGi1pu+rMorLZHMWci1zEDUA8a6rKGxEEntdIORnXIaidS?= =?us-ascii?Q?ZPzWzHShNyy792VbXJjnblfA9FwEZMPUGhClZQybFTP3kQ6o073Iq7afrCJe?= =?us-ascii?Q?tuRZCejYY6UFBdgugK0KB3mLzXbSFX3XIvQyfib++aDpQwCQPrW7Xf3Dy5P4?= =?us-ascii?Q?ESz1YgDgmL4AZycyfsN7d1Ewb+xJCeQU3Op7fXikZG29qhL0SxNjYcoGA5tL?= =?us-ascii?Q?CNJFXQp/WGV29XnVtP/xbtz6NUHxUqOiXSrgaC79JBLGfeLsFv+9aKt683Kv?= =?us-ascii?Q?ZQ7zahi972vqBagPRDxbdAmRZb7sH+P0NTG/bXrzu02++GtN7hz3LmeKbHQx?= =?us-ascii?Q?zUN5BqcxJnu/lQSi6RM/9AMICHsBvzwz4oT5MpO0KYO2OipimTW3IMfk3Dyp?= =?us-ascii?Q?RhR86boIOAwW9kBHM5Rol0lDTPBxjdORr+jjwhyxJev6hqVWrLZh29N/bDEB?= =?us-ascii?Q?CdBnTtxj9AkPq15CM6pwvhR8/2adQZUnP/SJCrSkGav1cj+bW3m4u5nXRH03?= =?us-ascii?Q?ZEOCwxtp1xHgpiRRh8BRjCquO2T93Delda2ENvzXOl9Ii1O5raCiPqe7vR3T?= =?us-ascii?Q?ZzauCryYmYGxKIANKkmkJzUhLJc+1oi+jU5zFfz/i7WCV7y3B/9Dl7mzshY8?= =?us-ascii?Q?adaJO6CzawPb+TPHJEo9g94NVTfW5HEgwUdTdafcF5HstW2j6q8z49srTMpv?= =?us-ascii?Q?/dTZydshi0S528VQllOSr+slIyW/xcdKOqzIcbDbnh2hO9TLBhiPkO5kzd+V?= =?us-ascii?Q?Jdk1YL6T8myhtcrp5hYJRjNxORKQdC7rS+asacNj1+8xBUMTGA9qJTW4V3ik?= =?us-ascii?Q?TDeGpaqWXCiVuld1IvE0wKQyVmJBOYZY/+qzhOK8WVSMSppTjovJa2GTiQ5M?= =?us-ascii?Q?K6qFCImly6U9SMRrhTEGl0cQgh6vIqnOrBx5KewE7skiT91pdWy4LQIrMsBX?= =?us-ascii?Q?VM2n835+zhW24Za2j5IxePrHBNJ6XQcnJq3XjswenbhWuzM/4Om81TkO1Ce4?= =?us-ascii?Q?sxGLqQMTlOcK2KUkeG0zovWN12Fc8TFUoH3h73c1i2nEXWltg3WkIdWK1ENI?= =?us-ascii?Q?EPowMYaenr5S0lrWe4rK0ZlmwFBEnnrYfo6Ss11SW1LPh8GVNN4QtCHRYdUs?= =?us-ascii?Q?vz6WMEGa86+rER2Iae9Z/THzYSWMLCB0kYnAPkzdtqdRVCgQjB9T5hR/iHvZ?= =?us-ascii?Q?1M5wmPvRwcBF0xqRQGG4zlI/HPh/kqLAJgnkNaAiphA8IpFSfYrFLfy+O5gP?= =?us-ascii?Q?Ai0RGyBZQO2jVbsyTiTmHUVMcef61iVGOewS2r/WxjYgoLM316r4HHtFZ1kT?= =?us-ascii?Q?LHxviSc5Qhf30H4Xu12lZ/OS3axoNvwq1Vpw4arONTl9uz/eAHXoxbRi2j2H?= =?us-ascii?Q?frqDd9g8CqJMedkM3uVOZ0m+vtxUkbijyeT8cYU0MFhgvcd6R3V1Lnu1FsRV?= =?us-ascii?Q?YgUp5Xh37EU6nugeQKld7aLLpmLBy8Xt9EMVkPpuuGROcpUmbiw+EeHYO1UN?= =?us-ascii?Q?DBfbpFw/hNnH/++PE3+Orwdh+upgXKNFdv9fEtbFgvutysu4Y4dv0zPrXXFX?= =?us-ascii?Q?voQZleWmexFCfpjeYN53+GrF1lnTF5FExkICYrdaYn/GBX8zeEDVvY9ta4cK?= =?us-ascii?Q?azul0yI/PffudUEiitZlmE0tzGmH+Gs2lOtlmXgULKCny2a4l6nbMA/zupa0?= =?us-ascii?Q?xgEr4EJBfLrrtVEgxs4jtTybPoh6BZqqFNSAkhjDL7OJrjnb?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f334f70-de1f-439b-0069-08dea1ac7e1f X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:15.6755 (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: fbPpcoRkPAhxgRvYiNYUrAgEmYK8+8oZrs4he+8Ui3y7iZBc2cDUx1yTg72v/xV+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" After removing READ_ONLY_THP_FOR_FS check in file_thp_enabled(), khugepaged and MADV_COLLAPSE can run on FSes with PMD THP pagecache support even without READ_ONLY_THP_FOR_FS enabled. Remove the Kconfig first so that no one can use READ_ONLY_THP_FOR_FS as upcoming commits remove mapping->nr_thps, which its safe guard mechanism relies on. Signed-off-by: Zi Yan Reviewed-by: Lorenzo Stoakes (Oracle) Acked-by: David Hildenbrand (Arm) Reviewed-by: Baolin Wang --- mm/Kconfig | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/mm/Kconfig b/mm/Kconfig index 0a43bb80df4f..fcb6ebde7e29 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -938,17 +938,6 @@ config THP_SWAP =20 For selection by architectures with reasonable THP sizes. =20 -config READ_ONLY_THP_FOR_FS - bool "Read-only THP for filesystems (EXPERIMENTAL)" - depends on TRANSPARENT_HUGEPAGE - - help - Allow khugepaged to put read-only file-backed pages in THP. - - This is marked experimental because it is a new feature. Write - support of file THPs will be developed in the next few release - cycles. - config NO_PAGE_MAPCOUNT bool "No per-page mapcount (EXPERIMENTAL)" help --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012019.outbound.protection.outlook.com [40.107.209.19]) (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 9C98E30C630; Fri, 24 Apr 2026 02:52:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999176; cv=fail; b=AlHIL3TW93Lt6qMVfEsDHwrqfs8bUFq6EcjCKmgSmrH9gm5W7QMA8TnjaVJ0Vszkhhk0mC4Fa/646efP+VeVwP/aaYMZaPi/G8zLN85ddpQ5xSGR84ZhlTWZgk9g1i8eN2xikY3ak8/Ej2zjS9uJZ3KghvqnlP1sOuip8KCe1tA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999176; c=relaxed/simple; bh=6u8RsVmTc/zEF2vvd9+GySSeG65hGvmT4hNCsenODw4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BLcXN2UvGms4KIMBlnlt6k+7mIC8sYLuVBHedewBwvSbvLgMcuyAjwvS8hUivV5avi4B0rpc6aH+MsHlj+Jmj80biXul7KPtkJjBITWkHhQ5UC/hPEdRMDgeW6vZb/ax5j+Cbex2+RqIg2/28n97oeNuC3nqF2l08qx9h+T4v/c= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=gV6rChs5; arc=fail smtp.client-ip=40.107.209.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="gV6rChs5" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cnteWQ7oqmyXoFsh8YlNGkW0LIqUauiiDkOZ4ImknOarFtYOc31twkAgPSPLYkOC4W1S0Qh94VXgBMYRsxg5fxxSXDgeEUi4cSyk1u+QDKQLnVFZUEhNTirB9yQoDVsHDSVy+EGqCsQ0pr9Crv4gNKtQKqqp9ioWbNZjY9hX3MI5i+6ZCrgWmVCclU6DFX96cZEa7Q0VkYve10+8rF+NaGbZQmHj8dT1fj7OB1TK4GLhhdAQxN2ijQ6eCCOadsyDW54qnj2mwwOu5s/8+PSo8gKs7sMpVLfrwiwf/gUqFGfjWo+JLFYMcSsrwZiW96wtNuPi3FMQzNprDlVaq3HPSA== 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=XUkQ9VY+MTJt6n4cWazSUfRlH2DOHqT/Skwgr3P/y3Q=; b=wxX4uOW+ZPai4OaQJ/h7LgHOLrA79Jfbp+aSFAXDyvd/nVvPa56qvmLHSYNdxJ/ZQ4bcLtwcvoekRqCBbR/rIQvaY+aNqCsxCevLinr2FXwjiMl7u4RJjAYNWWOguCaPK8UpB+EXEJIyaSYX2AgAM9os9ds6Gtdl0PrjFFcIwJ5V8up1hJ/jkWSvQlfuekKmj+3fibA5wgUsQVG9r9U2qDULhtWh+FgqUE6V3qbzJPXKc+MuCFVa7fw1SnXzC3BcUmvP9IK9VH4ZkVvHLqNhJEOLfHycEdeCcLXEXh1Gomp+77BORwE/f7u9KyaXH6w9JYxZ1b+QGgbhhcZhwFcPgQ== 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=XUkQ9VY+MTJt6n4cWazSUfRlH2DOHqT/Skwgr3P/y3Q=; b=gV6rChs5mQITajpNDk1mT7xIfKqSPvOmOt//3qlZj/NDWeyfzyrY/cEGW4/udJyDduKmZLk4gPEl9bb+eavUQN2kAlv6T+T4aDcE9HlSIIwNFVntKv3Oh7UiJ9lIwWQnrLILmrVgLvhX7Vk6CeXZo3/jrmhTRj6NoRpElV2SrOB7FZpXcwQkIU4fIbp3O2skWKt/t+y31vTAbqd7fS2oISgoe/sjm7XIFUQZNjhbHv5SXPMkPv09qNBGMwRtY2hi3tkePo9oXPcZTMfZ4rUunO0n8gGJenv4FnZlsKYtdkSTQITZWTkloruOWqgxEKMa31z6+dbIa9lzWOtnx3MrBQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:16 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:16 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 06/12] mm: fs: remove filemap_nr_thps*() functions and their users Date: Thu, 23 Apr 2026 22:49:09 -0400 Message-ID: <20260424024915.28758-7-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BLAPR03CA0126.namprd03.prod.outlook.com (2603:10b6:208:32e::11) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: 83480e9b-aef1-420f-4cf9-08dea1ac7ecb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: f/yuDbESHxIL1aWL0JmsYOevyfTm79pTBoi492TAoG9wO5s3CXF/2N7TYqlutpzjnRwlHED/x1uTR7/7eXwI2XdEUG0HrprkpPaL13HxtKddxoLD9+m35UbKhvojcqz5w0YysamRC1gHLKuCoVhbm1LFgmgNVfnT+P4qlKvH9PzJR/6tvdjFJjKzfVOJ7rm7jkF7/O0esJhTSk/kbuwUhDZgg0/jhQpkGp0FECNQFeP65w8J1QD8Mo9QhWGMBuV+uNoW1XdobQC2q4xT6MvOY98t6a/uepCshc/q6u/RNHz7GT1+lJM86XJEvj8cTB4WKqpPDVoHTsSQIPrJLjWNuhAiY3oBzXdetZqXTM0uL5buy4yq1DJQ1nuGiGVwsowrKud5HAB8NlEC5s5Rc+UkndHEmLcyeh/txGvuuy7noqmYHZcJDLLSqSBNXTcgK3+ViFBFHVseOFSSxw2Lz+MQtSPJnu/oxVTXjxaKtt9T2xOALyxN6RS4yiteHE5f+3BVsYDnFyZt/RvpbysPKmW+aH1BPDtajlpAK2V5mfGBKtqxu2D2NdhcK8LoMJNpFyqGMnh4W+nSwQCEPLrM+JRgjvSMcaDi4zlksv/mcYkKUtLfnQIx8r5v9znpIhQKMzMcCmeCotx6spuRtzwmGKJuw5HhA+DlS/Gz+JQCPrv/ZyHQh3BDEO2v03ZyxZx9S8hTOirLdAtriegbU+3B4+h5T/jOpAgzlH9e96/vMDJr6eE= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kxgNAgM5doLonf5SOZg1CTNtLpTfbTCp8kyDp6BULwMSX8ob9iqlvo5q4ZO5?= =?us-ascii?Q?Y6Ep9NP9yIjimDfOHF5zaPXa629NRYIiQuLOqZBDmM3x/rZEyN+EdUGgLUQm?= =?us-ascii?Q?3gnBLaiShIyOsfYOa4u+cvRKTzmJCY6i5Bf23gt0SaiDCIh8gbB2f+TSlvoA?= =?us-ascii?Q?53nga7IAvLxlxJzZMJoIZMGEhmsdQI07KJzgT2d09ACVAv+F2y2WqMobbrvo?= =?us-ascii?Q?kim7Jov7kkHmj166DfppNT8TJtPdhlz7XVHZ2KYRetpcCZu0GYqOoRBfIkrr?= =?us-ascii?Q?CyuBQpOU33gYAvy7l+2lCwSqFrSaZkPWj9xAIYJ8RY7NkZWNgg99qo4TFEf1?= =?us-ascii?Q?wUIR7Uf7hDig1EzZISw5u5oNJew7EpeV+dn+RfqGc3d2cCvYkoOGqhQ2Yx36?= =?us-ascii?Q?zsICDR8kmflKuxNf63wFzern/jABCJdnojKHZcb91IUWot4O3W9JQYSTQ1sZ?= =?us-ascii?Q?aDGeUTlGYVTSw7nmW91952OD87U1wDtd6AvloBsPHm2u6w+K+o71ObwBhejP?= =?us-ascii?Q?sDT+3YqHz5vQdY1xE9IUP5BfA6hcJIg6L/VZllIvHUoGioflYPmox/cx3um5?= =?us-ascii?Q?JX3XxwHrULzSUKP7AoIQNGlZNDa6BMF20uFknpr/dNsDoeUsi6lrEn0COp/j?= =?us-ascii?Q?wQMEz3GHdhcLuUtGEMTNE3H82LYSMNubdKnQpzpvTbNMiTSamMhDnblOBhYH?= =?us-ascii?Q?npW7nHWP0gktpDa8i7lNhBtY0bC7tTNUn+azlAsOEdoiZOJRVxvaZiMaUlh6?= =?us-ascii?Q?+NPMRCTpR5xTOEWxJipv/DanPFhMx03KiCQyq9knjutZPJ8NxjNc473Lq/kn?= =?us-ascii?Q?nFHmxx0NVj1rJ1/fXNYrpflfjZqxmsQ6zcuLoI0d2UJyTyEM2/aU9ZfdFTYj?= =?us-ascii?Q?vOb9sGKjJuoKAzq9fpa3uXwIfUl0gM7O5Q6gEsqbbDZHjvPwP2J5aYPE8QSJ?= =?us-ascii?Q?TLnWnroE3vK2LL0V9LiEWuIyRdw/8SwPJQLZB/11NidYkhL1vv0jLUu2lI1q?= =?us-ascii?Q?NtmyR6rw6dSGQeYeztC61D2TiSewBaz71AOYOQQCJqElmvO5zQfNPlLPWgxn?= =?us-ascii?Q?dAyjyIh0ZtI8Yj06YrE4TwNYuR/qo3FwVXYL2nW6MeLIWBADOhVoSp7Tf6XJ?= =?us-ascii?Q?xiTjDUBcHwdKR2yiPtiGniwswtwzM+5jVB5HDEbUIoIAFAUGu1CeAlU4xEda?= =?us-ascii?Q?fnW7/Aginbmjll0kZKkMiHSlwD4qibAg14dGSsAuRuW+8wmBkIwSWzrvhZzL?= =?us-ascii?Q?/258at8gAGRCMNS13f1Ra3TFdyMN6FiKsIYLTjfO+dmCsDE6p018hfR0367x?= =?us-ascii?Q?nRQeRZ+8ny4VnRxdM7F1NRbNmx69JOGSuXqZXwAWXs8GGU9giJqg6DmWQBmD?= =?us-ascii?Q?rvn3vnyqgosT4AcPfEnZslB45Mcqb+7MEglzvRct8v/SxPrKtsLw8U5vJta1?= =?us-ascii?Q?gldfnzv8r3jI7/TAruQViKL0y6ZjCvMpXRsKnG0YCCHQcnxK4V4GxyYOWX7Q?= =?us-ascii?Q?gYKaTCUD1TuG3k2t5sndHKrQl3H3X59VjrgXxjGhvZ+fp8ZW4q47DgSrDzRh?= =?us-ascii?Q?Hf0q3YAaCg1TVXiAcBxb+ywByOyP3jTMbR80d4zl68swYOnkVF20OYkVHJPQ?= =?us-ascii?Q?5rRbFFHC37JOcjKHEY3HmlBYO/jKi20nTjcES6/sJSL5DojnksY4/CwtX6UX?= =?us-ascii?Q?BarS8oZ6Eo68pu2+lOruLxd+xGdhE7WCHxC/3Cue9BVsnTmz?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83480e9b-aef1-420f-4cf9-08dea1ac7ecb X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:16.8195 (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: yzIJu8jCK1zXbGbWqSYrMkh9feOq1s+mwAuhmXtz6AT7jmGO61dS6oPbybmALyE7 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" They are used by READ_ONLY_THP_FOR_FS to handle writes to FSes without large folio support, so that read-only THPs created in these FSes are not seen by the FSes when the underlying fd becomes writable. Now read-only PMD THPs only appear in a FS with large folio support and the supported orders include PMD_ORDRE. READ_ONLY_THP_FOR_FS was using mapping->nr_thps, inode->i_writecount, and smp_mb() to prevent writes to a read-only THP and collapsing writable folios into a THP. In collapse_file(), mapping->nr_thps is increased, then smp_mb(), and if inode->i_writecount > 0, collapse is stopped, while do_dentry_open() first increases inode->i_writecount, then a full memory fence, and if mapping->nr_thps > 0, all read-only THPs are truncated. Now this mechanism can be removed along with READ_ONLY_THP_FOR_FS code, since a dirty folio check has been added after try_to_unmap() in collapse_file() to make sure no writable folio can be collapsed. Signed-off-by: Zi Yan Reviewed-by: Matthew Wilcox (Oracle) Acked-by: David Hildenbrand (Arm) Reviewed-by: Baolin Wang --- fs/open.c | 27 --------------------------- include/linux/pagemap.h | 29 ----------------------------- mm/filemap.c | 1 - mm/huge_memory.c | 1 - mm/khugepaged.c | 28 ---------------------------- 5 files changed, 86 deletions(-) diff --git a/fs/open.c b/fs/open.c index 681d405bc61e..c321b80027f1 100644 --- a/fs/open.c +++ b/fs/open.c @@ -968,33 +968,6 @@ static int do_dentry_open(struct file *f, if ((f->f_flags & O_DIRECT) && !(f->f_mode & FMODE_CAN_ODIRECT)) return -EINVAL; =20 - /* - * XXX: Huge page cache doesn't support writing yet. Drop all page - * cache for this file before processing writes. - */ - if (f->f_mode & FMODE_WRITE) { - /* - * Depends on full fence from get_write_access() to synchronize - * against collapse_file() regarding i_writecount and nr_thps - * updates. Ensures subsequent insertion of THPs into the page - * cache will fail. - */ - if (filemap_nr_thps(inode->i_mapping)) { - struct address_space *mapping =3D inode->i_mapping; - - filemap_invalidate_lock(inode->i_mapping); - /* - * unmap_mapping_range just need to be called once - * here, because the private pages is not need to be - * unmapped mapping (e.g. data segment of dynamic - * shared libraries here). - */ - unmap_mapping_range(mapping, 0, 0, 0); - truncate_inode_pages(mapping, 0); - filemap_invalidate_unlock(inode->i_mapping); - } - } - return 0; =20 cleanup_all: diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 5b4313d91137..88e58ca79bb5 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -528,35 +528,6 @@ static inline size_t mapping_max_folio_size(const stru= ct address_space *mapping) return PAGE_SIZE << mapping_max_folio_order(mapping); } =20 -static inline int filemap_nr_thps(const struct address_space *mapping) -{ -#ifdef CONFIG_READ_ONLY_THP_FOR_FS - return atomic_read(&mapping->nr_thps); -#else - return 0; -#endif -} - -static inline void filemap_nr_thps_inc(struct address_space *mapping) -{ -#ifdef CONFIG_READ_ONLY_THP_FOR_FS - if (!mapping_large_folio_support(mapping)) - atomic_inc(&mapping->nr_thps); -#else - WARN_ON_ONCE(mapping_large_folio_support(mapping) =3D=3D 0); -#endif -} - -static inline void filemap_nr_thps_dec(struct address_space *mapping) -{ -#ifdef CONFIG_READ_ONLY_THP_FOR_FS - if (!mapping_large_folio_support(mapping)) - atomic_dec(&mapping->nr_thps); -#else - WARN_ON_ONCE(mapping_large_folio_support(mapping) =3D=3D 0); -#endif -} - struct address_space *folio_mapping(const struct folio *folio); =20 /** diff --git a/mm/filemap.c b/mm/filemap.c index 4e636647100c..d3cd4d2f3734 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -189,7 +189,6 @@ static void filemap_unaccount_folio(struct address_spac= e *mapping, lruvec_stat_mod_folio(folio, NR_SHMEM_THPS, -nr); } else if (folio_test_pmd_mappable(folio)) { lruvec_stat_mod_folio(folio, NR_FILE_THPS, -nr); - filemap_nr_thps_dec(mapping); } if (test_bit(AS_KERNEL_FILE, &folio->mapping->flags)) mod_node_page_state(folio_pgdat(folio), diff --git a/mm/huge_memory.c b/mm/huge_memory.c index f0db1390a18f..8b85a3e58b00 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -3937,7 +3937,6 @@ static int __folio_freeze_and_split_unmapped(struct f= olio *folio, unsigned int n } else { lruvec_stat_mod_folio(folio, NR_FILE_THPS, -nr); - filemap_nr_thps_dec(mapping); } } } diff --git a/mm/khugepaged.c b/mm/khugepaged.c index cdd4b37e4a68..4de7e30c4b71 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -2469,21 +2469,6 @@ static enum scan_result collapse_file(struct mm_stru= ct *mm, unsigned long addr, goto xa_unlocked; } =20 - if (!is_shmem) { - filemap_nr_thps_inc(mapping); - /* - * Paired with the fence in do_dentry_open() -> get_write_access() - * to ensure i_writecount is up to date and the update to nr_thps - * is visible. Ensures the page cache will be truncated if the - * file is opened writable. - */ - smp_mb(); - if (inode_is_open_for_write(mapping->host)) { - result =3D SCAN_FAIL; - filemap_nr_thps_dec(mapping); - } - } - xa_locked: xas_unlock_irq(&xas); xa_unlocked: @@ -2661,19 +2646,6 @@ static enum scan_result collapse_file(struct mm_stru= ct *mm, unsigned long addr, folio_putback_lru(folio); folio_put(folio); } - /* - * Undo the updates of filemap_nr_thps_inc for non-SHMEM - * file only. This undo is not needed unless failure is - * due to SCAN_COPY_MC. - */ - if (!is_shmem && result =3D=3D SCAN_COPY_MC) { - filemap_nr_thps_dec(mapping); - /* - * Paired with the fence in do_dentry_open() -> get_write_access() - * to ensure the update to nr_thps is visible. - */ - smp_mb(); - } =20 new_folio->mapping =3D NULL; =20 --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013055.outbound.protection.outlook.com [40.107.201.55]) (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 96FD530F53C; Fri, 24 Apr 2026 02:52:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999182; cv=fail; b=IIIPr8bV4C6W5QpunLdH6rqJgPiZxw3owSMifXTRlmQfQB1fReJ1YzgOEpMub+P79jPJ0yEV/3yAHSZ31Dy7Vha3BY7DHVgmSzB/xXhsDr2Ftns0AOwEPVD0cFXMDFivGpTRyk8pTGaAN1oVp1KKnylRMW+8QHiPSjEGQ+HHc/8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999182; c=relaxed/simple; bh=EE0tfvwa/IY3oUPA3kPdYWSOaLENL76P2PLL/rcEI6A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Ciip+EbFpVAAIBkTESFhdmoSSdf8xL+awMdFKafVeIfx0vf7mnSQNPuLcyFGSbIlRTNdmL3KuVwKrdsxYBlaVCK0dQ/kI4omT3zksHxwIdKivqra00flXPaTL4a/+tDvWwQKo4YX3h2eFfFcYgvm8bIY1Vdl27zekBStwWx8Sec= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=XSzJBZI8; arc=fail smtp.client-ip=40.107.201.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="XSzJBZI8" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y8hykBRWVtl8Fm0A0mf+4UIbKrHrO1Lq/s2OGFfYygkuQpnCLRXcO/nbnPxhNVCB6tgSDhpHhX1xwp3JGJyxg2XfCO4QRqtMNjzMkGfjgkAyRdfAt1iXiyO5AgLsL5toO5/8ja8DxSPPAGlddBmbrDdrhEcQhDm6l9VXKaxPdHSm2V7D0w9Ra5KjA0wosOghFzBMJpJbkZx3uzBAtbE8hfWYSjZsDHw3XJzOfjlauSZa7EpFPUMIrHtQfXz1qBUG5BDwuqYXsOxRljjiEiDkMSk1BWZ+EZZFjH9G1JQnOL5CLKXUm5U6dyufOfGvvAbgprRW3fub/6wOICrqWgbt6Q== 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=+ixtAgzXNpJV/VknDXObdr3L/OBFI6Ve7R+MCpJgoAo=; b=gMSQo1LConB8dFdXfO6+t9On22xdlTMZEwV0a6/G+C3qkdm/j3WfoQBRpFiKTDB7d4Ox3h3Qc3hkDaRyKC8nro1Xno07VMcFiPrjSD1sw3dopeY/WgGwamVkL0qO0dgcvTkkYEDEGAsUj/0AK7hvYCxgaRmWuCez2bhNnHP4K4V6PJBjIDv1cO3HklAs5QA9Ia023k8S5vwvycEZpXuqT8pUVm+5+rVXux6edo4MUYmuY2oshTvqe7zs77F00+G2dSr9pJlJ21GEG+QRLN5bXcgDJrxJnpY8jNxxvuS2RN5v+mg41BQEbBK8RNcFvAtB2oF5PBqr/sD8RFtLus7LYg== 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=+ixtAgzXNpJV/VknDXObdr3L/OBFI6Ve7R+MCpJgoAo=; b=XSzJBZI8Wv0LpGjyRhJd8abYuh/b4lDzNYhyVgLQ6/lIEhAYyzToOaOVbcsBPogB7pJjm2OdvDlnlYbSSoUfxO4YUnCr7StaXgYrYcziD+R5HVLeD0V9erpcVqC0VnGc1WpGVPrQWkIJWYCr1tOynrqyxC6bAxKkTw24Tnv143cOJEB/o9UX0hgaPKO9TtibU6nopQCxFqfxWFvzMem8yWjWaySfQyKhphgMem9hMQ6T0OVVoDoRHtJbw0KNGRlnQ7CmcsNmaYxApdemy2giGiVqxt+Bh/7V9T/ODegoqAoONY/N9NVna6viwOqdjv69HxG2uXpx0bqldkueTgUPcg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:18 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:17 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 07/12] fs: remove nr_thps from struct address_space Date: Thu, 23 Apr 2026 22:49:10 -0400 Message-ID: <20260424024915.28758-8-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0080.namprd13.prod.outlook.com (2603:10b6:208:2b8::25) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: 3f769b62-603b-4fca-1841-08dea1ac7f7c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: s5X21W1kLu8poq0+Zf6aUSMtGuZF85HtBRKOzVTGys43muGY600SO0NBqAkBvw7JSstP4dKpsiBfe30kXX9ezY57CGt0gA1OwKEBQhi1tvcvUa6wiGITeWzmxR1BlgAe2g7yzO+UIgLmrT6Fz0+zwRQ4PpdHEuNi434oxH3EhmGm3TLg1/Z2Czzvq8gfuIr8SUy87a2DQerNLaPNs76YEeTbaXq7XKUy42GjlyoaUbfC5ud67CK88lp3c8tCKPyJqbkqT37QpIFtNa6cRvHPqrrdmF4V+dE5HeJQ/iW/L+E9ABtIIetwjICV7D7csLRGRsiseWfK8V5DFjOYafsE5snoq9jXBgIyE4JHflV7FoCovi4afdT7/3iewcQkXwu4Zdb9J7cddiYykLua18S4jf+yq6oFsoFqtqXm1bLi8LDnJfzu5MySgcJn6DRnsORMWtBcnKf0iOIX9ZVGWsvfWJYjdpEcL624eNOvNLOfIR2Ue4Sf4UZAejk/TDOAmBN+uOQM3g3lOsn2mdlpmiES+A4uF26jZPxGorvTP5QVvGoB7zIk8h5s82HuJ1kuM9NMm09SM5+ZhuVv0BvgMK7UYFTaDkyNshSL7R+DlBB4OoEJzgh6n9/I1HS8t2l9GQIOufz0rIyLB0tVYR51AXpj4uw7S6sz5xGQTdB+Keqa53H1MWv9LmvzqzlIjqo+4l0nOsUUl854uRy94Sm3JEumX51gmsvqW8oz5nqMC9nUqdA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?mzeq/0k2ZOrpF+bjgMlftSgg1RulDgHJ/+qhGd20Ho9EFcb1IIrswzW8Gpvt?= =?us-ascii?Q?nNsV5gm0tE+JqJCseJvvJp5e2C2Hk1Ob6nm2gJbjgxSezZA/NfIXb7AcY6sR?= =?us-ascii?Q?sUHgrp57sYkhRT9QQ4Stw89H2ZEO8ZVevNs7E4gPO4CJrhz9cTPZ0m01YfwS?= =?us-ascii?Q?8QBnKVUkihs12HMLKnjxjloLZtA8UMM5P0CmscfGrg1DVSQqbIdDTOI3v2ZD?= =?us-ascii?Q?zFxRga3xsODn33ZT5ArMY0wS7MiE9L6uzGghMFoBhaws3tsRhOVAmpKMHiGw?= =?us-ascii?Q?gOdWIPKwyyvZHHAkUaJaUXWNwjYMZ/G/PvH2ITIjYOS6hiekSOG/2fsrM1nE?= =?us-ascii?Q?6dHIJnkGKWZohM+tt+bH4x2wAXfFj/AvXHWE3xjdU8VHkMHd7sbkWv2XQird?= =?us-ascii?Q?s76lEbQOLtxdm5CUFKF56HTMd5lOCBV56BAYZfLNZgUDk2yDGLxBJjCcixEN?= =?us-ascii?Q?0VArzc39yu5IssSrWnj2ksjjhdG9WeznCXQzZ9qv7wR52x2Bq90HPZjV8rv3?= =?us-ascii?Q?4mrWE3mdr79lzptVEEL8jVYkoFpJWGCWOhD2a5w/yeqthYqHN6Zx74ujWH3Q?= =?us-ascii?Q?5patK2WB4xNXFkAXq6cWz+9DRu+N5j40xUe3RaOz1/BfA5T9vYZmq6PiRQxW?= =?us-ascii?Q?5AFgb7ATBreVltkyS34wl+vj4BwwBHJrMQ+/1UB94aSGWA53pVchbfgUE0A2?= =?us-ascii?Q?4WC8zF7iMhgJ8TckRRNdDelTmAWq1oxzx0W9nB3Od98wsqselcNVARbz1I1i?= =?us-ascii?Q?ABoDG06ewsIG63K1zMwdNL3K/NcVos8LI1JeObivyEq8nZHKFDPcFOflEKrb?= =?us-ascii?Q?9tMUMk0I+qcCqomV6/0RB7bklzifnUEqidjhW+dYvOvhImVGKGe8YgPDPzxk?= =?us-ascii?Q?jgxKVgfG5yHGt7J09sr21w/6kphx82lWs3CxBKFMLwzpi2C9xmxdFnlTamLD?= =?us-ascii?Q?p9f5awnFPBUfbkPRSOHU+ifD0Nz67qR/iN4018iQPj2teBwo2NI79REglO/1?= =?us-ascii?Q?nbpP0C5lBQQ8xsM+8/qZKvS1DBA+Dr24dWNcKgC7DO5LuJiMqahmpxgKbLjk?= =?us-ascii?Q?f34u9LNFDdrfhaVU0jl28cke5DOU5zkLyRtBapEUS+p1XigTe0XWPSW9BwoY?= =?us-ascii?Q?CeptETv3Rh+dNV96rDYsHddtrY/++F1ZCKw2hanV/P6/PxisL1Tvf4vo/9jT?= =?us-ascii?Q?RqKthBPOYLyjkUxl9CZq1sB9IuX9euZcZtdUZI1JpCzRED5v0Wj8NZK6BQzR?= =?us-ascii?Q?bVUuenHZVh0pNB5vlp3CvCK48Tq6B/xGW+PoZPhFV4JmAGkqD7wE5+XkxQbp?= =?us-ascii?Q?GG6A9krLZzu9NGb+HdMtXbaZJKKQ7XETBNRqff4lXOgSueP46tqnHhKa/GEE?= =?us-ascii?Q?yEJrghhIT9Q+1QbPzoG+Cv5Vbva3H0L9Kx4Qqu3JT4Smb/8DdIvNYTymJUgn?= =?us-ascii?Q?BkxWlxUf7sMRROJXy2IRCMD5YAjBRtNNNl5jsjIwQtIHx2j1VDu/iFIRsWSu?= =?us-ascii?Q?Y6yjQzdDmt7l2v2EzaJQtcAhWZesc7eSiZ7wo65S88Exa9nmDvhfIeEPkiPi?= =?us-ascii?Q?7tH9VKTybasmSwnMdzbJ7/49/BzBgmGswT9aA1HBuh+zQ/QMPw5ib5u/5Ltp?= =?us-ascii?Q?IRLwkqXXNp9NbtQMKvW1FYbOl/U5D7I9nLrlShdInKv4Z5nEvngVzsGeZiCo?= =?us-ascii?Q?if1P/LpVcZ2iXgQaFZVwzFA9/yFXNfm/0ec4tTtFhHPotXO5?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f769b62-603b-4fca-1841-08dea1ac7f7c X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:17.9435 (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: 6B7QaNEHMYUirwpq4BO+p+TVf98FyHGzCqh+twyKwVEVU0uQTffWulNJGRWNxzoS X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" filemap_nr_thps*() are removed, the related field, address_space->nr_thps, is no longer needed. Remove it. This shrinks struct address_space by 8 bytes on 64-bit systems which may increase the number of inodes we can cache. Signed-off-by: Zi Yan Reviewed-by: Lorenzo Stoakes (Oracle) Acked-by: David Hildenbrand (Arm) Reviewed-by: Lance Yang Reviewed-by: Matthew Wilcox (Oracle) Reviewed-by: Baolin Wang --- fs/inode.c | 3 --- include/linux/fs.h | 5 ----- 2 files changed, 8 deletions(-) diff --git a/fs/inode.c b/fs/inode.c index 69e219f0cfcb..35399f60718e 100644 --- a/fs/inode.c +++ b/fs/inode.c @@ -279,9 +279,6 @@ int inode_init_always_gfp(struct super_block *sb, struc= t inode *inode, gfp_t gfp mapping->flags =3D 0; mapping->wb_err =3D 0; atomic_set(&mapping->i_mmap_writable, 0); -#ifdef CONFIG_READ_ONLY_THP_FOR_FS - atomic_set(&mapping->nr_thps, 0); -#endif mapping_set_gfp_mask(mapping, GFP_HIGHUSER_MOVABLE); mapping->writeback_index =3D 0; init_rwsem(&mapping->invalidate_lock); diff --git a/include/linux/fs.h b/include/linux/fs.h index 11559c513dfb..bb9cc4f7207c 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -460,7 +460,6 @@ struct mapping_metadata_bhs { * memory mappings. * @gfp_mask: Memory allocation flags to use for allocating pages. * @i_mmap_writable: Number of VM_SHARED, VM_MAYWRITE mappings. - * @nr_thps: Number of THPs in the pagecache (non-shmem only). * @i_mmap: Tree of private and shared mappings. * @i_mmap_rwsem: Protects @i_mmap and @i_mmap_writable. * @nrpages: Number of page entries, protected by the i_pages lock. @@ -476,10 +475,6 @@ struct address_space { struct rw_semaphore invalidate_lock; gfp_t gfp_mask; atomic_t i_mmap_writable; -#ifdef CONFIG_READ_ONLY_THP_FOR_FS - /* number of thp, only for non-shmem files */ - atomic_t nr_thps; -#endif struct rb_root_cached i_mmap; unsigned long nrpages; pgoff_t writeback_index; --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012019.outbound.protection.outlook.com [40.107.209.19]) (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 74D9F30E0D4; Fri, 24 Apr 2026 02:52:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999184; cv=fail; b=XiiS0uYfezqMSB44iFi/63j8muix8HgYbNdvNXPKv2iCUCMKqqRmnFKS4hrC4bl/nJST+t+wbQUC68eyb4JPLXI9eQrZSmDk0iVYriI5Rv8sLTykfEa5A/C72korEwtyKhNes/bsCQU2cALneWEcpXfz+Ae9J5Dhpgh24ykMbM0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999184; c=relaxed/simple; bh=MV59xL24TRfW0UZLrRD8op/7TkLvS1tEG82UAjZjKnU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=s+JsZpXir5NxNWFAGO/Ijf7gEOktoA8Ng7Ovdrw7GuxAZexRtgpNEaT0Tz4yqB0/tKHi983/tGHo2Znzq0Dafn3LKER8zwgFBgmQPto2A0NWLYahxIsnrr6fpu57XK4xxRT53qho2rttHh/vG4+aCnzdAFrXNL9nxA0lQrNtIsA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Ui97Mla9; arc=fail smtp.client-ip=40.107.209.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Ui97Mla9" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=htun2EzaSwJJXbpBII2Z8UoILRHXWHFmoAM3nT+awWxP0EB1kRzpEmwcGh/vvbfe6lgIHwGh5CeB2g14k5Kpp1Sm4gUfSk4QELdahX1WJqsxo8/jjIIpswsbZBnPZiyQPgQm6xe12ZDIyIsFj/Elzveic3KQGonVbZZBRhDs78nK4m8rGSsFoqL0SUcoeZXTpkvsTe11R4PHS8mTYiE2CAZrq/KNclOswR6ku+eOxPyAEMVV3yUgIG40gr4oscqp0+E74/mdOCiJR1WWNQa8OKt5a2gNtU3NTwl1v69TDHUL/i1nkZvIUO+vH5XfzFc9PNg718k4pS/XMqJggn1YlA== 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=od8P0GmkgYI0ESWXZBNnXFbZ2LfGvFJowPgjDa5gfC8=; b=BQJjA9deraa/j1DxhCMwgzy+hLPTzehEnDZgveYtWu8rVVQZ2r1ZUn8aUK1TL54Tvm3JHrDrDDRGe/ai9QYLFYLF5PL3PPqAEedSlsa/DSMIoE09f6vnnExl8j2VtqCaOmT7HwgB2gsfRN6PsPOQOYL8FyWqaKtjSoyPmcy8A5qM49j04c7jn2KNRF5vcUNY0b5DA89Fg5hMZfZi3xS3UAvs4Ygp/Sz5zggZ4CLe9+Sx9jkkmFziv3ndQaesXMoLQQqM2uLJ0HUCsSpYVx/HTnFunvLIcekxCHwQHO9+Hm50l0FkZdk1sxxOclpaQTsR4KK2Xu3bdDUjTCcSpUU9LA== 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=od8P0GmkgYI0ESWXZBNnXFbZ2LfGvFJowPgjDa5gfC8=; b=Ui97Mla9HrzUQzX/zSgsFNnJtv5Aua/ogosMDyC2GlhfUQa7xcSAyEnMBCsM1phU+M0xmyW3yuyW/rmEwrS0NkMYxxX5+tyMTzDaRmsIxvKNLz6bhY3CepKUMi2y7SzhUit9ye1LJ98M9ZL/9gWfU05JXifhGLND+j1o5V/oiFDWkDtNh3L3t9M31h14KM12dhpbGk7NqVL+jLjM5voZH7FLmNcTYViIjfNXAYPana8ZBs7BzHXbAy9dOkNdMCH5B8Zxu0DU37tyiQ0vfyfHaq0sqTuSLbw6zH5xawPeNpb5aoNwMKiwaKxG+BZmlbh+85NDseB44qdA12ZMHdbT+w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:19 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:19 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 08/12] mm/huge_memory: remove folio split check for READ_ONLY_THP_FOR_FS Date: Thu, 23 Apr 2026 22:49:11 -0400 Message-ID: <20260424024915.28758-9-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR20CA0051.namprd20.prod.outlook.com (2603:10b6:208:235::20) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: be5205de-5350-4f56-f43b-08dea1ac802a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: QsA4AxUR9Ydk80oFmIggMk/xJjhpTfOoMKak21AGWQYYN9s3Qkguz5/kKaUupc1CWMnkBAWjCWVUSScTpMbgtFT6FP0cDHycg2zpvdEZTilZVj3MAw0tu/gt8RsyhSa2/UUYovpFhTYvbPC1/8ykdkNr9szJNV1/KETCmURD+El48aONxx7+51upH2LUJ+4HVrK8gj68S2XrV9QJ5w+PeaYeKJHrfxqkUyb1k9kMa11TiMi+luXSJKVO8kqT3rSwmB3ztu7nlh39cDdSSlg9BYkeTL1QlJy4dhW629GiStM+/qZivs1PvAwNLzPym9xWRsTJF8ThrngZDwxKvbvMoCjWP2545ESqx3fQo8Mjt0WplGMPOwv5fvKi4rvhobLoFnKkb6bV2VMfmidwlexfaY/nFom8/R5VSMUTfu11rZ/B3AtR/UOUbcAAdTmggjr/jIb/pkW28p31ubv6VMTU9Rbyt501CAtNoKbH23afPcetk59YSuMtEm8vEFI8N3PFUCVXpHeFQZh322uHfAbhVngdVtVpqqsyNH7WatbjhQIdq/GMEzg9sddkRzOcH/vR01LJPcmGPrOiNVidBn4SirOtSdBwmHsHbeh5pieWZ24o0SPcd5TV5g12G8i6h++rI8K2FXDL9tDV4APqae72OvoKtQLhRhdSZbIaj8a3jVMdHu8yAAHGIZcfxANZb1kZyblwULtwyy3ZkF/1LVQzimLDWB4tQuBT1eR7YHTwk/k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?S4D90Gchzp/w0aftOWcDBCEZEdo5r3p243NkMsPCu/OlgXGKHEPXK92cQuNn?= =?us-ascii?Q?Ku3TY/tSG86U1hsNxCySA7actWcS3Q4zNCjsFO0dzpyeoDEneIfzygpaACjT?= =?us-ascii?Q?/1KKTov/3s5Z9TxFYbcakhpRx0i/UuPr3stOMN64Yb6o3p33cXK23Yd3QZCG?= =?us-ascii?Q?GqJBJnKYkaeDk4TXnOMiPMf5yDIrFky3uY/znFGU8URYUCCsizg3ea/f+5qS?= =?us-ascii?Q?ewaT0VVjZ0ng0qDsS+MjpsSyS2+63twXqlrYHiQ7gPWbYOvmpr2fTgi6/Jtk?= =?us-ascii?Q?6/TsAP/+If+eC3DdBZgg4L0eQ0sJml3jof5ylVx19HC4UcNAr/5Q4VRCH3lU?= =?us-ascii?Q?/tioAixeXzR5Xwc49OjC1wZpk/b097GDXh+fmMRcAWq/+N84/r0Y7C9JWhcZ?= =?us-ascii?Q?zkyU26B9vA241CFVDt4GJMiNKR0/Fqofq2CW+SS4nepAw8lPNRIdecO37RaH?= =?us-ascii?Q?fw4bQ9v5uPox3gTnJpZgY3BZ1xGsYJxgzQWLdrnuwC7JTMFFYL/i3nHpU/dl?= =?us-ascii?Q?7oKU2FcR4DdCy0lgYlV5Yw42fFkBaCvP/NiV76b/PTLSXt+r6wDbZyR4fNZ6?= =?us-ascii?Q?tKLmw/xwXj3yPZiiKkCdP/W/n3Y2opo86kGDjQMf3M1WbQHDwDW+VhFFKA4V?= =?us-ascii?Q?V2Mlr7Vkjga0023nynvcv525c9jg5T/7kNo+Zj43aurV6LaNShEXwnLuU86B?= =?us-ascii?Q?byGnWuc0W8uTQymMMaAyKCi3SBoZ1aT6zkvPGiwaoNVmE30r6mbMrYE1k96x?= =?us-ascii?Q?9QdYEDokL1bBTYIO3OBgewnniBI60cb+GDQp9lA1JHdTq4/AtvLs31Z8F4pK?= =?us-ascii?Q?rkpur2Hn76Z+5o14nifHN2oIToUgV+b00RsWwwEXFkF+5SO2FMry7G3xeXD8?= =?us-ascii?Q?E6inRyYtFoelWq2VQPsTCQVsg20rxmLkOj4ZrJ6l8guotbAowFvROYw+gdmu?= =?us-ascii?Q?GqdYiVvrsocHGni1vzhJIa0HHuy2M0wwTi1Zh7vw048gb0zujOseSrFkICbs?= =?us-ascii?Q?0NgYDz1EbkuL6HM73xhRQ6cqHva1j3+TJSQ9hcY/MMwptMD3tk4x8pJN/dup?= =?us-ascii?Q?p2w2eOr8Q/QQBOBgwQoya1Fw5IPbfABdNi7reFNfvT+yghGaKRvHTYyj4qpN?= =?us-ascii?Q?SMI7JroJ44gukEmUpdoTkX8MYCwxrPMjASt2PNhx29XLzLFSnC9Dg07oxfWH?= =?us-ascii?Q?u8tAuXQjL821vm/8yna2nnO6H+xEx68rfUv9AAAVjzWNtJz/ES8lEiK/gpAk?= =?us-ascii?Q?Y01jufJ0dhmV4Yx12nLYfUxlOnmvxc5Z9eztAitazLnYbedV7A8xFI6rWsL5?= =?us-ascii?Q?WpwiySFNHYSxlKUvySmqR5EH7lA16e+OqCw4BeiAFnyzEfnDjlW1Y7DlMyKr?= =?us-ascii?Q?KFPcBAsOPJsoR1qhJj6JoM0cMM052ocAqMnXaA1G+ZsiUpjEzo7Z6AyJTKCu?= =?us-ascii?Q?Y3tHZO/oBMDZVV2NRRERZBJKv3dYp5eYQTUiRdLVDQO1/qMhZjJhRDRu1l70?= =?us-ascii?Q?7Fpga10cxTbsMhSxDLdpMLKM91ERDOs4r064tPsa8oeOHHNkk7Vfkb6oEe8U?= =?us-ascii?Q?F1f/02LtAuaWY0PojgmOQ3Q0T7wMLZbCrhGTAsQM05UmHVTAov5+o9aRzmOM?= =?us-ascii?Q?+2lVyRfsf5WsgTdI0o16D8nRAXWLwZ3cUHLkrDzvFWMv0Rfx8cF2NvX8v7TI?= =?us-ascii?Q?1TLLvxT8qVJIvpUuWTNWpeCRJuhsshFWv+rxgmRxyHAcHbpm?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: be5205de-5350-4f56-f43b-08dea1ac802a X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:19.0969 (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: TjNohwnG/g05QsBNdye5G4yWy/H66hXIYVDYqF2R6khsMDZywNLL6kENpSbhLi9M X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" Without READ_ONLY_THP_FOR_FS, large file-backed folios cannot be created by a FS without large folio support. The check is no longer needed. Signed-off-by: Zi Yan Reviewed-by: Lance Yang Reviewed-by: Lorenzo Stoakes (Oracle) Reviewed-by: Baolin Wang Acked-by: David Hildenbrand (Arm) --- mm/huge_memory.c | 30 +++--------------------------- 1 file changed, 3 insertions(+), 27 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 8b85a3e58b00..a76ddc63195a 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -3832,33 +3832,9 @@ int folio_check_splittable(struct folio *folio, unsi= gned int new_order, if (!folio->mapping && !folio_test_anon(folio)) return -EBUSY; =20 - if (folio_test_anon(folio)) { - /* order-1 is not supported for anonymous THP. */ - if (new_order =3D=3D 1) - return -EINVAL; - } else if (split_type =3D=3D SPLIT_TYPE_NON_UNIFORM || new_order) { - if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && - !mapping_large_folio_support(folio->mapping)) { - /* - * We can always split a folio down to a single page - * (new_order =3D=3D 0) uniformly. - * - * For any other scenario - * a) uniform split targeting a large folio - * (new_order > 0) - * b) any non-uniform split - * we must confirm that the file system supports large - * folios. - * - * Note that we might still have THPs in such - * mappings, which is created from khugepaged when - * CONFIG_READ_ONLY_THP_FOR_FS is enabled. But in that - * case, the mapping does not actually support large - * folios properly. - */ - return -EINVAL; - } - } + /* order-1 is not supported for anonymous THP. */ + if (folio_test_anon(folio) && new_order =3D=3D 1) + return -EINVAL; =20 /* * swapcache folio could only be split to order 0 --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013055.outbound.protection.outlook.com [40.107.201.55]) (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 AD37430E0DC; Fri, 24 Apr 2026 02:53:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.55 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999188; cv=fail; b=kZAkhIfOuSFDeXPrZTmTNMmfysAyU5CXs38tpW0wImsWAkYd10Jk2PygAaE6U1UNBuT5lysZRE21peJPVKAFS+tDhY55tOZ5HQH1oG9IpCBL7cvZZlYqVUpfCZNdVBqLyrxix0iFFRZ3MIxcD+QNgbMku+9af8Fd96FRz8M5FEA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999188; c=relaxed/simple; bh=jdzcSNxA0Tr0GjrpqrunORdMigKvW40WWQyJSByRXtY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=J1j60dRschhT31GERiPEnuDepabYJsIiSoYPvVV+ApdoQ0uJhv85+2cbzVnoiS4hpQM6ucAdRBdGvyfwoE4W8bt8v/N1wBagKmobz5riJwODzS3H4KKPSFEIdSprL4F7yRgxHIMbvELtabdF3iGUxhrkknFSYbIUlYfnqXO4xpM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=Q7MMEEPA; arc=fail smtp.client-ip=40.107.201.55 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="Q7MMEEPA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VzMFl+wtuZfKAuPtTNoq3pjLrGw4ePYJjf0E2fAJqv/pdSpvQi1iNz9TO5h4w4y8f71+Evz9jA4DRD8mBcEB84HTMt0l8HwUyV/jh0Hz0oRwtywUa+1r6mp4w451NemYD4yyi4NRpzv1siNHscRV6SPZrzDqglMV+8m+d2HUBdvg2Fk9OC7Z/A47tPo56ymgnkueE6nOVpzAaBxvK1yqzvPDu+YZtVPa0K4YwEjlCFc5cPUGPEjtosJdKlY0MRc9iEaXRTTUIaB1lyJlCvJxB5XQxuRvtLgo80m3Lp+am+4mqqBJmXzvozvS0tJUbi/+NweY5FVURpHqMCbt9DeDBA== 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=n5bvDByMgjl+YuCLWOghI45uyIUL9A9pfHsjeoZR3P8=; b=h9rG1K4uJKruXBd49NH8qTKFG+g31P5aYASXJMyTvoP5dwBpCU2fC9TVC71DLjnPXKODgqGyPy8SHMu1bf2kQqwBG+pZ+FpCCQTXVktMP822YkfA4oPUmyB7z2r6WSG0pmgQM+gbgxz57TOWFqHxQu1G/60ABse7qEGxzMXZlLxCz+TxUt+8h4xAtbfCW7t3t4FS1bTCeUuUvRWI9Ei/+rUGaVHNCueWjhYdPYUv/IKZp6/E0/1BJVkZJgSmtkCA5/QnyjcEGedjMtMzY/d+21d+PNwJyDS4rB2CeXITgBxRcVePZnTvBuMtOl2mKiEYKSaCq0wNtzk0siEScRKSMQ== 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=n5bvDByMgjl+YuCLWOghI45uyIUL9A9pfHsjeoZR3P8=; b=Q7MMEEPAPZDSB82rtxW6tLtFHDF7S1oOt/4jhBTws/FXwCbpBt9eVzyQgeR437SI2C8L5zIOJNlduPdBiHEPKqN1kTulELY5lkOzgQxiOwD43PbDt/hDbSrmoVddm3XyFDX7sHBo6NDSIJYbW1Xncrg3wtH6JWxj8OskuuxiLSyg7zetSTcuYoIKBK4l0sg5jb0+ImP+UN8kawVMnFk6cXgpD853UK3WeC/1QGK61pJpn6ybOY1CFyCKgM9bz2WzDmHT3THOuyuxN8NvC1YUpwh9V+DSuS1mkpNDiUKdEP666XP+g2eYTF7hO06UQ+9cvMzosZhpqfEjEhw9dolmOA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:20 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:20 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 09/12] mm/truncate: use folio_split() in truncate_inode_partial_folio() Date: Thu, 23 Apr 2026 22:49:12 -0400 Message-ID: <20260424024915.28758-10-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN0PR04CA0022.namprd04.prod.outlook.com (2603:10b6:208:52d::21) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: f05796b5-f6e6-48d0-c7ed-08dea1ac80d0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: yskLSkKERtddR8aZKQAh0YmuugUwGea0ubaaIw2QZ8gtPDXFhGBDFvliFZ5K7Hb6d4n9zPFsH290rUS0Rvg2SwrKxzURojmHB3+I0/Xyk9x1dCLvAkP3GcsRLMGKQhq33Q77KBzsT6Oa88G0/QF7dqUz+/giVEgCIRL+ymQ3IRPzaZoMS30Y9X6BhkGjb5+fygEULXCOl+rGysO/9CFqK2Dx6zjJaagdttl5xGuuAGAnMNuE1wpIteDFZogDPnpVgQ05DI94nDxz2OiPhZHQdJsMJsXmZP8PtDO4pnDw/yNHdBcR3LULf6K9t2T00KF/j2HksCanwLnJtaNCmlZvL8PVdHS3HMulMZDfIe0Z9no58kr5nElAXhVbISKNtmUEuDq1zseqOBV093IWt2kP5hP6lGqLnC1KqZLIxNfSci0A+dEoHz9Ouqj5K9yb5HB7t6R7z+TkUygaQ/GJA4f7/Qj6Mo81AnW5/IqVsiWp7NJnW9PuZdzp33ti7OVLd164YHKgyD/WkU9pUlXEyFJeAQllMACI0aXAQy9bNG9JWZbeJ91nFFqWzyJo6HBgZzvgsQpPiT/Fizvx9k3Izi5UOj2+AEyK5U01gYHVCKdYH61FcJgK/r7vBNiYrXOTaVi0RzjqmNKVXg6w8Y0S9vLmM5uHqg3qJqu9YVFOPP7xsRvgyzCkWq16kAVYUP11vB1AxyQ0H1Rebi2A/4GrtxfxaRgcwQOfeUGqbkNO7ngsc7U= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qKnAkwZDIusBdnn+9pnl5c6qN1g3hjIrs4TmySPNf+vRggEeNy/Nz3hywKh8?= =?us-ascii?Q?sFGGWwluRo8xyKeKKcWg8xC3VaumFpKB7CXJABc+nE2OWLPoSigUV4Z0d+bq?= =?us-ascii?Q?GZ8WP+neFTD7MjP91w63Z+V631AW5cG2IGatJ6yUSQi9SjYGup8bfDKU4DeV?= =?us-ascii?Q?9XqQaMHX14e4zTTlm3XMi2WyBMWCiuUPod7Y2RmqcEo6AewRKaYjDTMPjiWw?= =?us-ascii?Q?9XaHNOeY5s//c0ZkFg5krfmqk3PGpBymhQE28ciwHYwAfwMoj0uqA26ZWOq+?= =?us-ascii?Q?rSMwd8tZJgVzD7HlJvhguDQ66pobr+ld9xEUFuhkKOLL4sadIlzrc5qrztE1?= =?us-ascii?Q?qPw1ANncXxsCyHoIFryRfu7cYkOdhYDkQREUI9iItJuK0JrW8foC2HlbbX18?= =?us-ascii?Q?/s9ofkne/t2nClbYIAboaDcIPJvsBOCpP7UxYq9oiJAVcx//LTkBg2aO5l+m?= =?us-ascii?Q?NfBRtoXSL67eTxcb0RfstN69InYVamMQuL53OqAURTcOj/h6lyvHjU4svg0p?= =?us-ascii?Q?ojenP7QxD/USszvt3b8JEmWWscLKdytK9S3T/VaVZXOnVw4hk9Yr4xu+LjNb?= =?us-ascii?Q?cXtrUoYyK0YLntemsJzlK8+5iN6CXaUWofz8hu9KM+7SQSPVcwUVs0rrrLsn?= =?us-ascii?Q?nyqblEco6SUsovcYsYSRLt4gaWak97CeIERpGfyTi/7BG3BmAn98fd6q1pE5?= =?us-ascii?Q?nCT83OYxKOsVBZbTPLcFGBgwKRDQddUwAGXq5rAYVtF9uCbN4eLnDwWKuPkh?= =?us-ascii?Q?jCxrRgiv3gmRRlfiQ75JdGpXWf6IjsVhisvYG+V8IqiSrVmG+aTC2xeFDOx/?= =?us-ascii?Q?Fd/VX1CFEYM6waZ2ct16a05Bo3vswSg6fTcusRODiW34e7aGeXtOdorTp8eH?= =?us-ascii?Q?WfC1oVQ1RayYaO2tbfkkHY8mmxuQBRJ6+6wUtJJQIz1J7vQpJHOIPTI5pHqu?= =?us-ascii?Q?/69YsiA2BEO+sIwswwo4YSBbalTg2ji/ugi99Pb8vjtW/WgUdmdj0cxGoiZA?= =?us-ascii?Q?IPbOOGCH8LTTz9ut5/GbO6/yVwAgQJxIOryFDsPtGlmyrBe5vMbE9iikAxFj?= =?us-ascii?Q?WymmuUUecmNp+399s8g3AeLuJ/mi3+fiFmqgkYQHH8KnHvxvt3Z+TVAZUSvk?= =?us-ascii?Q?HFweVgxs3AoVnBGgWP7Yq+ZAVcTpXt5hkU1pa6+5+yd6qoRCpmMFKAcQqMjP?= =?us-ascii?Q?4DQpCJC9Qh8Oa1yxfCOCuDSHo2twbgWOBwqPDCCqAF0OzC/WqLuztTuODfMo?= =?us-ascii?Q?KydGkk33M9Q5jR+zPgtEWseNh1xYgLuO2Lsa95f1GVmijXwiOdkYsblfHt8h?= =?us-ascii?Q?BagojHGUtG61RG2JbofX1LqvHPqB4OxI1ywM7sAikUDDs1i5ZSoYQeHI5RwK?= =?us-ascii?Q?k0ey90kR1njgGxXFqFsKYwPUSKIl5CBgyTnm5Y8SpcVbsAS12TVkTzwnhEUq?= =?us-ascii?Q?gExZO7nzGiVFkxaVCm5zNPjt9fS6/44L4MfXROcj5f1bobR3qRG264F5w0Eq?= =?us-ascii?Q?b7n45M8LbUB85/FSr/gukTxuoiVvi5XAUVJi3rPGGk4MEGhVdbTX9cq5EF79?= =?us-ascii?Q?74sF810jmYOr+7RrjnTyEqxSvWZiBk4l6LNeVBYwZhRuTNJNJAahAwHpt49r?= =?us-ascii?Q?tHXJ38Yx+DvXFsV0Za6FNo7CtLQeUTVnetsOg9VMucVWEV0y2+5jlwXlxiSb?= =?us-ascii?Q?NnfGdKhVaYBGLsvHOGEeUSSlGuqm8a88/lUUxwO99z4fS2Cr?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f05796b5-f6e6-48d0-c7ed-08dea1ac80d0 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:20.1872 (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: +6bdaLqo7hKdcUHwEch/RpFv5Hr8uGnHZDGcSlctaYOG8iWGrPQtCIcWix3wM8MR X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" After READ_ONLY_THP_FOR_FS is removed, FS either supports large folio or not. folio_split() can be used on a FS with large folio support without worrying about getting a THP on a FS without large folio support. When READ_ONLY_THP_FOR_FS was present, a PMD large pagecache folio can appear in a FS without large folio support after khugepaged or madvise(MADV_COLLAPSE) creates it. During truncate_inode_partial_folio(), such a PMD large pagecache folio is split and if the FS does not support large folio, it needs to be split to order-0 ones and could not be split non uniformly to ones with various orders. try_folio_split_to_order() was added to handle this situation by checking folio_check_splittable(..., SPLIT_TYPE_NON_UNIFORM) to detect if the large folio is created due to READ_ONLY_THP_FOR_FS and the FS does not support large folio. Now READ_ONLY_THP_FOR_FS is removed, all large pagecache folios are created with FSes supporting large folio, this function is no longer needed and all large pagecache folios can be split non uniformly. Signed-off-by: Zi Yan --- include/linux/huge_mm.h | 25 ++----------------------- mm/truncate.c | 8 ++++---- 2 files changed, 6 insertions(+), 27 deletions(-) diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h index 48496f09909b..127f9e1e7604 100644 --- a/include/linux/huge_mm.h +++ b/include/linux/huge_mm.h @@ -394,27 +394,6 @@ static inline int split_huge_page_to_order(struct page= *page, unsigned int new_o return split_huge_page_to_list_to_order(page, NULL, new_order); } =20 -/** - * try_folio_split_to_order() - try to split a @folio at @page to @new_ord= er - * using non uniform split. - * @folio: folio to be split - * @page: split to @new_order at the given page - * @new_order: the target split order - * - * Try to split a @folio at @page using non uniform split to @new_order, if - * non uniform split is not supported, fall back to uniform split. After-s= plit - * folios are put back to LRU list. Use min_order_for_split() to get the l= ower - * bound of @new_order. - * - * Return: 0 - split is successful, otherwise split failed. - */ -static inline int try_folio_split_to_order(struct folio *folio, - struct page *page, unsigned int new_order) -{ - if (folio_check_splittable(folio, new_order, SPLIT_TYPE_NON_UNIFORM)) - return split_huge_page_to_order(&folio->page, new_order); - return folio_split(folio, new_order, page, NULL); -} static inline int split_huge_page(struct page *page) { return split_huge_page_to_list_to_order(page, NULL, 0); @@ -647,8 +626,8 @@ static inline int split_folio_to_list(struct folio *fol= io, struct list_head *lis return -EINVAL; } =20 -static inline int try_folio_split_to_order(struct folio *folio, - struct page *page, unsigned int new_order) +static inline int folio_split(struct folio *folio, unsigned int new_order, + struct page *page, struct list_head *list) { VM_WARN_ON_ONCE_FOLIO(1, folio); return -EINVAL; diff --git a/mm/truncate.c b/mm/truncate.c index 12cc89f89afc..b58ba940be47 100644 --- a/mm/truncate.c +++ b/mm/truncate.c @@ -177,7 +177,7 @@ int truncate_inode_folio(struct address_space *mapping,= struct folio *folio) return 0; } =20 -static int try_folio_split_or_unmap(struct folio *folio, struct page *spli= t_at, +static int folio_split_or_unmap(struct folio *folio, struct page *split_at, unsigned long min_order) { enum ttu_flags ttu_flags =3D @@ -186,7 +186,7 @@ static int try_folio_split_or_unmap(struct folio *folio= , struct page *split_at, TTU_IGNORE_MLOCK; int ret; =20 - ret =3D try_folio_split_to_order(folio, split_at, min_order); + ret =3D folio_split(folio, min_order, split_at, NULL); =20 /* * If the split fails, unmap the folio, so it will be refaulted @@ -252,7 +252,7 @@ bool truncate_inode_partial_folio(struct folio *folio, = loff_t start, loff_t end) =20 min_order =3D mapping_min_folio_order(folio->mapping); split_at =3D folio_page(folio, PAGE_ALIGN_DOWN(offset) / PAGE_SIZE); - if (!try_folio_split_or_unmap(folio, split_at, min_order)) { + if (!folio_split_or_unmap(folio, split_at, min_order)) { /* * try to split at offset + length to make sure folios within * the range can be dropped, especially to avoid memory waste @@ -279,7 +279,7 @@ bool truncate_inode_partial_folio(struct folio *folio, = loff_t start, loff_t end) /* make sure folio2 is large and does not change its mapping */ if (folio_test_large(folio2) && folio2->mapping =3D=3D folio->mapping) - try_folio_split_or_unmap(folio2, split_at2, min_order); + folio_split_or_unmap(folio2, split_at2, min_order); =20 folio_unlock(folio2); out: --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012019.outbound.protection.outlook.com [40.107.209.19]) (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 A64F5314D06; Fri, 24 Apr 2026 02:53:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999189; cv=fail; b=NOsZuk8F3r7eKF4DYf2sSkGbexHSFB5AzUZeWn2Q8OuRVB9EiulUdBsF/79aEF1O6Y0tA+PQYWeSsORqLpMRtb0v0qQvAy3ybTKr9798J5RPmVrqJ0xCvPrBWDb7voXSMlOSAmCiUICj//yqOHw1+PLrCfMMktxPjcNoxbg32kg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999189; c=relaxed/simple; bh=coxrppTJGXWQDtuSPOtEo3pIE6kGyEkrBqiD1hCYffw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=D5d+FkaKSeehYI74vN0BxMJ/lb/rO8Xz1NNY9biQ3ZfTlUGxBqauki5BvXkHPRKVDUySy+MfsfZ/XcShHCTu5wYAVENH1gg2Mr7i6EwCtHlj+Oo4p8ekPWxLYKsklverhXB+KfCk2OUrD4Nm1lpjrI8DrZoLIyPHZ80F5I23qFw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=s1cKQMQA; arc=fail smtp.client-ip=40.107.209.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="s1cKQMQA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VGlZXHFSW1rXul6JTPpOo1nLhdRoDZCq8rQZ2RwaztJzWYnczZdwvIJx/48h2y/4VQT6IZk9VF9CPRk6Frpv2VAg8tAzFIfd2XNtXLYcaP6WiAfMoW3Y0AEPdK0FJb4myUg3/fhFFFhdAIUDKCODRyr9ITizbQP2cSPxRfr3Fl0mxQKIlF6Kzo3KuOtVUZdbrZcWqz0vFWdjYSW1C/11qmhV2tPMvo1DdnYs5J/zJ+Pfoh2dSgh45s1fGc2A0yDTWEK70HbcedW89n8vhXvNCEMUTV+H7fA5kJBw+kdCV+6vmJRiZFKpvRWTWA3BrudfcZ5klEDchXkOuSZ6uxZlwQ== 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=ZBxyRBoqqiTc/WT41TjhmmTGhmo/L9qXeALUWtsfAxM=; b=EPCbg3l/wvRqkAKU5eb4eXJyobGpPxtckQEsSkoTdqkRAxpf1Cs5rArhkUiUSJCKid6wH7gptNmex/Ch+rCdeylwQQw5hpAHy7JJVkSxim/pEILw8EaFbZ2kJpwNa8NSO0ReK7lkKGLEh4+pcTmWFVbTTsaAd5TJBRSQfQTQXrDl8SPViCjHhvTeI2jS3uPrVxAlQgnSOAAOApNsGPZGj3nggvXybRHEQzHAWU8+PUNdE82cblvydOemL3XAKWp+tHAH+AyM1GwPuxHYW6jnAVpJM2DITBYzlRIJcEgR7GKf42TqfMcSQYy2W9bEWz/z/ppXt7PeSttU5QzxQWgwRg== 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=ZBxyRBoqqiTc/WT41TjhmmTGhmo/L9qXeALUWtsfAxM=; b=s1cKQMQAqNXe9JExzsuwMqH12LmOQLrNiTR6mJyro3F5KsX58YM4QiK9VNYcBH4Axfo8CItDzLUNse+75QszWBPJWt402SkrFnJpkD1YzDBMoijsRgucS3p0W7NSMHraDno2vO0WoZ02qVVT4zio5W8VmxYCI6jTq5tYgnUAtzvprY30MVErTNhOgpPdepIHu27zxu6ck7xnUnkvWbEyXhFgy++rxD8soXlbAwucArydgnEFfmuimcUMl9du6DQF2/wkf924WYyvmjsTJ/VJJvlfJkdvb+KOlONwW5c0UNxxevMmuffzdV/OHPQcaVcFpac3Kja4bQIqKe0onFmZJw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9588.namprd12.prod.outlook.com (2603:10b6:8:282::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.16; Fri, 24 Apr 2026 02:52:21 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:21 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 10/12] fs/btrfs: remove a comment referring to READ_ONLY_THP_FOR_FS Date: Thu, 23 Apr 2026 22:49:13 -0400 Message-ID: <20260424024915.28758-11-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: IA4P221CA0008.NAMP221.PROD.OUTLOOK.COM (2603:10b6:208:559::6) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS4PR12MB9588:EE_ X-MS-Office365-Filtering-Correlation-Id: e80a77a2-c505-49e9-0328-08dea1ac8180 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: j38B6JutPiEN07CNONu0GooLNvVepR7R8/frFAdy+JPFctOGFcVeGpYIbb+4/N7R38ZggXtDdpiux+Owq5jc6AxbKRYCnfcFofGiaRpAewMlojY4uyy2B/67iWAs6G9P7wl+vyfnmP8dSp786zWq3x4ALUapiRTjGkQBuxnCgeIt5WLGjqjvzKJop2gD4m/E7X5FDUJklAF5RKK71KSoB5ZX/xHW679AK+wwSnyGli5pLa+oFBhuU341xDD4T/2zd05ODnE9RbYXRGua/inOGwR4dF+tjpwSJtxFy+A0qoIpmq+cED5xAMkXdA1TICBkR4aTlI2Yx8/mgyM8cxranYBIIebKeQtn2rxftN06tC43sD03h8H2+sMo9JIetjO/bl+sNDGplsaHmMh4sap4tHNicbeEvJP+Rf7eB/cc5Nl/Jf+ivfsbn8WiWvko6JvgxOtDYLuAtiGwincqaNgsDx8ojvYI0P7gLgR99fZNItS5DCMIPLp9/q5pZPZCjpyjBcO8lvuBJ+bQRcnfUb4sEkcEEnpv2v/4XcWhJGufPm1MwP8+AgUdym6/1GC7C1xF8EU/qlAd+DSvOui65jzokOPQSiuRkv0KMKn/ojlcJZ6tAVQFyli+h2Yh7RbIfps0WBRex4pCWi2TQjbNKgn09KOYzM57qEqhxWfYfQFo06EtBCusLoxDozE2oKUUnxwS2xd6lXZOjOHc+hJtBrcw/dk5KYqevfvvg5xWN/TEF2o= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(366016)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GcnWXDN41Nv62QFMNuBwOe6ZEVICaKwN6lCixp/dNRcer06b7KbuC6DQh9vi?= =?us-ascii?Q?id5gnJkaVjunwfGb334omtfDV/kK5kufcU7jtht9cbCgQKL/YE8HVmEdvy0S?= =?us-ascii?Q?q7QPodS6j7yVUAEW1cAndwnNmDBIMe5e8iZT7V3i4dOzZjfiK3scXVDYMKHm?= =?us-ascii?Q?dgOucf5plpM+AjzaOhTJYXzf/7txAcJQryX/+3GE2pmRs13IWg9tgcNAb8ZG?= =?us-ascii?Q?ehT/8ZfxKdcwvcWtHn/uazweb+aBydLFH4KCciBDj32ECLh3jwjbJ8PYJxS9?= =?us-ascii?Q?ocX5asMbECVbxamPa7hnDAf1UG9Ia6EgkHdgjn+peH8RiGNp7Lt3F87Z1X1y?= =?us-ascii?Q?q3MadLblDWwvAjtIJCWO+9P5EEp8FHTRuHqoBT5TVVfTB8yyocJS/SWaU6EU?= =?us-ascii?Q?X0lMqauZIuOBR7zEB8SvZcWQ/FzV6cN9BMAVcFw5CnKa7TGGXSO3DtbampRc?= =?us-ascii?Q?vM2fmMyx17f4H1tGw9R8P2/6gx/2BVpSjv0vGHNIjVVIaFrfO5m8FSrBNDwg?= =?us-ascii?Q?7XmEwpvtvWwHuVgNlpYYJaGTiAtoMn+qcrMjacG/UZ0Lnrbn5xHV7FYSRpkl?= =?us-ascii?Q?AkhAVEwWdgUjtrxsWXqL9alMED1U6w8yIVRhA6S+q3wQyziz51B2LunaYMVl?= =?us-ascii?Q?u6ZWtkAZ2zp/ED8aDOigtD2ogT3sdcSi6HOm4VhikmFBeqw6EcV3q0ogtKin?= =?us-ascii?Q?LRwQNXy8KG1vkLYJEuaN2gWMZZE0AMatA4d1f0Lt7pmXp1qTkVAdgvePuRaz?= =?us-ascii?Q?XIEGXGpIVV0wA3aeG3UiLPfUHANmwKPNxwOrFSocE82OS9V3EPS1WwBjQFkF?= =?us-ascii?Q?+IHQCPO/is4oXuYTE2r7GTPhuwUJcz4/tgUkbN5lPFGHu2OBqZ1D/7267w3i?= =?us-ascii?Q?6o/ZDxhMC2ni7Q84ZzHggVzQcwmEsT5DlGa0PEGRa+v1ZcKAQOQAtUqB2SFr?= =?us-ascii?Q?M3H+vv/eiEHJ80U/30CiIBe6x9XZH+78pUsOwufviiHXjaVwbF+0qp7T3rMD?= =?us-ascii?Q?4VFkQUFL7iqdFm72uxh8fJYcHKMHNwGyYmpwzIidTEyeGOIDHuXKkQNStcrw?= =?us-ascii?Q?DJ2Oej8vkYKp6JwZnpwNiEabSp8NxdapPgq1vcjO1S5wy4nAimwwCp5IF+yN?= =?us-ascii?Q?Hg4tufWccIzArJVdq24pbL5UOg0g4faP0p7UT8bDbG8ZeSX2SD401WlYBxpl?= =?us-ascii?Q?KiYlfK7vNfe73VXHFynPRm1umECVlRhbymTMOXvyRbHTNjgyj/2omTlQCLAy?= =?us-ascii?Q?M2+9u9uLv6gPOsNviajx5lfy0INgsCMKMphPyhToh8tIYrqgGwcXNrF0Rkpd?= =?us-ascii?Q?m08eWqtszPbGU0WJENx3/RvEnKzWyYiqdT0Ma7svIxKGh70mF19SJXSMMnvM?= =?us-ascii?Q?2l7Mg1dlbMKsc7Zkiogg6GrQWD7pZZk9hTIKWiJj9TkBlOT42NO4YcZWGEao?= =?us-ascii?Q?ejvKpV2kfZ8Ii/TfvZ0LV2vsTO6jAfIqqScp+wjKvJ9HTwLaO7uMJo6b67Pb?= =?us-ascii?Q?CdBk+rvEDoy5wQkc4VVXiWGLg0Tm8QyUbQSD6v/xJQXIEsOY0VXpSiMkce7J?= =?us-ascii?Q?0P2AM4zRTcJM03NVfRIYehMyDQ33LUZz5OtGBKFdjEKuXWy/jGNKyQJcDjTw?= =?us-ascii?Q?4J9rGQg/HfddtaJCnTMZZxUzlIh1itkeartXYUc6AwWMBAR0fbI71hrwdrsH?= =?us-ascii?Q?Dv7ylx6s6a9FwFJ/v11wg/S2Qr6wNLjFraS2LxIQ/jM3jHp/?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e80a77a2-c505-49e9-0328-08dea1ac8180 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:21.3479 (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: c4votqpGhgUfIGMSfO7J0HUcH2C2auNhe3rq2SyVXvHEXu9WWpxoyBuPCPFFsZO0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9588 Content-Type: text/plain; charset="utf-8" READ_ONLY_THP_FOR_FS is no longer present, remove related comment. Signed-off-by: Zi Yan Reviewed-by: David Hildenbrand (Arm) Acked-by: David Sterba --- fs/btrfs/defrag.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/fs/btrfs/defrag.c b/fs/btrfs/defrag.c index 7e2db5d3a4d4..a8d49d9ca981 100644 --- a/fs/btrfs/defrag.c +++ b/fs/btrfs/defrag.c @@ -860,9 +860,6 @@ static struct folio *defrag_prepare_one_folio(struct bt= rfs_inode *inode, pgoff_t return folio; =20 /* - * Since we can defragment files opened read-only, we can encounter - * transparent huge pages here (see CONFIG_READ_ONLY_THP_FOR_FS). - * * The IO for such large folios is not fully tested, thus return * an error to reject such folios unless it's an experimental build. * --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012047.outbound.protection.outlook.com [40.93.195.47]) (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 AEFD43064B5; Fri, 24 Apr 2026 02:52:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999163; cv=fail; b=c8Gm8JqBHZct0PQOZjyC/jiTls0j9WjmfkZdLdHzUhzXGbG5OlgTrBNlBiwCfUwaETy2I+Wvg2wmxlIMr83aTlIVy/sS0L58uiILUFZaxEZQITuPmBDo+Yu9IbKv62jM//jnVX/z3LoicorcIFqTBSzbMn1Mw4eCAhSgiYeUH+A= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999163; c=relaxed/simple; bh=JLZQKJe24GyDat/cNetuZPC8pkEX+HgcMH/HD3OV7To=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=hU0SdNsfMQMnbGZtNubRdVvfZOu+3muW7dKtAH6IWc8hu90Hc5EF7AugZbiRJyvg5h2FvCa/HPvAoH6VIkfNn8vx77BbURwBAAG0Jh+PYQM/IvrdsraQFU//pqiUvE7/TRiS7bDJ+uh82mPA+w12rCGmG3KPHKn1CeXSdI12jcY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=fQYqEpyg; arc=fail smtp.client-ip=40.93.195.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="fQYqEpyg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jSRtkz0ZD08ZaJRBrwAiyuBODS4L2MyhibDWTylpI2ODmotXVmPEfUcrk6uS2m7M4APLoZB9dHZf/lVo8Gb4o71BXhz5G7yEo7+1eyyMneIXQlzUUOapb92UPfuGR6mmLJ955Zo/OddElNfFkbW3YzXxS67QGrVYE9hNXvyMx+glilKpRxxjAYbogAI+XbfnxkEZ1KxOqpDrfeg+uXX9ec7CdrOD3rxgZ9B4lERAOIjy/UvxPp2cR1/6jAq6kgM1TbqBkK6NRv0Lz1IS/NLk1wKHfXmMD/jr9x0gpOzKDMjt46/ItuYMX45rki6m38tH+63JRumsUhmQFKj5g74sGg== 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=fyo+9kUKhK8zmkxPkdDHVKTUVAufCVx1epCFlQueY9g=; b=FEWQHgYquRTXYx9OhU/ebstoXlSQf2fwXgRDXQs83SLzuqWTkRcAoPCpCczSh1aytyE8yJA/6JsAgCzc/rzewy+7X+nVhQnkNsi363JafJU3NUnUqXeRee4Kb1VwbcWLrLcWXJeEpPMfSz7l1W7VL/K0Cd6fdOQQeM3s1+JRfFe/Z9equCCPBXFNUNjzv8MC81aod+jvDhGsSoi34Ut7CvoDxuY4pu/JJ2+OYpM7Fu6RgdO7GmUCY/x+iHVvetoq/duzwjsGJAwMsYlHMbUeV23x9rZIh+sDHQx0H95Sn9lp7e2a8PcvpBc2STtjNQMdaSQzO/zGV1Uk4e0mH0o73A== 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=fyo+9kUKhK8zmkxPkdDHVKTUVAufCVx1epCFlQueY9g=; b=fQYqEpyg71gvn3n97nM7rk9Kfh3kKyiWSyEVi58Z8fSInJoGNxnMO2QL6ar6KJSh+brKq2Kt0Wm2IoGy+O+UzAc1O4vJPzqyD0VccsOud5RDPPdtEDHm8GpQlkAPEUAiHuBaIDC/31ikXz54EohQtNL43GDUvVp8i1DfOE7OhTswaccuYv0eVwnfUOiiq8uqmwAEukERDGnPvONrwX5/zKHdIHoALY+QgMMJ2jzMvAD+G5PPThGCHrItVXhJRspxZFjytt2hjlQ234J2Ld0PtOF8RJxGYLvSEcuR5QNlt796Eu8nr+TPZuUlmI6OKUWFmZ7LC/y1rTK7ZqAHrJeWdg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS0PR12MB7825.namprd12.prod.outlook.com (2603:10b6:8:14d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr 2026 02:52:23 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:22 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 11/12] selftests/mm: remove READ_ONLY_THP_FOR_FS in khugepaged Date: Thu, 23 Apr 2026 22:49:14 -0400 Message-ID: <20260424024915.28758-12-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YQZPR01CA0017.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:85::13) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS0PR12MB7825:EE_ X-MS-Office365-Filtering-Correlation-Id: 2562fbe8-5c45-43d2-5d29-08dea1ac8269 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|20052099010|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: ka6vN2Qb0hWtzKMrL+U88G3wnn4qIPgG7Ies+W3cc+fXVk/t1eegT0CQBIrOacRhNGnqQSNOUd+o4K5RXs7A2789IRqL7kK6Bs/I+DaB2sXKvXGyfnXF9IAggYkp7rCT0FTtJO0Uwdn31R5jL1yoK3ZeLWBae54GqW+xdnMJp1qqtZWClj9j1rPrymFWW85lSy+tkPEbEWHqaVPc6aUqRkaKHOWavbcx3hxf3TdOzMzeLay3lpTFzI74/gFBuf2BuMARrDQCIg32dUQtNlQ1fK3uvdWMILXQCV8tpYgA/IsY3qaBZ1neXzS73k51r+oYLeRNM5FNtRV9FyztuUZmFt8pMrc4QyOG1lvREIeTcKo1RHt/6wgMB7Bu2ztwgyiTQ2bO3zPmIGW1UvZZSMGPQP7cMFkuIOE+Ylg1Ji3sKwvx+TeovQPSUPlPgmlrNGj+ZOCW0kqe8H2dVOEf9mVjBbbbmZZeLUsApnls4By9/Gv1kFJ4FOpVfiNmUMU2iNlFq3pNnhY5SLcZgUxtQaQTR2nEacCz41agWfzVU/l6exN2OZTU1utHb0mvVmubGjUVHw3tk2B9BiGargoQWEJ1OE4AkHCxHkIRxN1ncn2F/tFEf0965rx2mATA1UBcCpdFug411g/38I8EQGF7VLtmlt5JlwA11pEgRBVcvq7LMLGeXxamWNM/GuvjiFZg8dulr5N1Sm1m1yavSt80mbJUezTnlMz7D6ZsYRcY0vi1aww= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(20052099010)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zqyL5wS7wSoAPIWCbXs70nQWZNfxT/9v5IB0NkZgPr/7rA9FUplyRUvSQdxB?= =?us-ascii?Q?eEqB3EPUuaB3pegwVMZlIX3hEqcvYTZbgxNpoWPEmvrFFX9GQsPAFiRf7m9t?= =?us-ascii?Q?cdw8IGQQCuiXouRI3E3c+xVpina2PNPoKIRw0XKX1DUSE/9DavtgGGGGFqND?= =?us-ascii?Q?g4ZNvBYBjTKu2OQL6zyfrgGSC3dSNdaxHCMFyl3tsw+HxPnko2SixxiStYxM?= =?us-ascii?Q?YwI1zA/I+kLEG1e5whjIfoVNMCVdL74Ll9wfEOmf1CFwInrz3IB+5HxGT3g7?= =?us-ascii?Q?2VL+2QF7OfmL1zZixLwWHBR+9eEVrCNF+jcQYhnaoucZSyb4x/8JRHcmcGhC?= =?us-ascii?Q?H0nxu9n8vuGIUZkdDT24bqLa8AivY62iM45Fq019QzZZsQ/XkdIjQVVyCK4O?= =?us-ascii?Q?/zbIIbbK8EA6a3LFbrcTBhKwIosLX6/fuxxwfUL6R9Jk+YDbfwfDJVcxGQ1c?= =?us-ascii?Q?9tN4mqgDiCScUVO5t5wIigrEvstRmnnA7E/+TDZ1ZnV/eDq1Kdx1/gHU0hNh?= =?us-ascii?Q?o8vRcWEPJ6/G+rPBKX6x4e67AZu1yobGtJJAdq5Y1B2QfuGKz1yIYH8zq4iK?= =?us-ascii?Q?ikiVOxUmEUKCj+0NmSMKGUaYaLvg9tvxtvlUjsFEyhgBesnhYCWUpNQsQ2Yr?= =?us-ascii?Q?lvUO/S3bMCg4qqeUVT6DvpEQtprpLjI2ZGJuFDQLmA1Ed8G92XCaCB4/kT8/?= =?us-ascii?Q?hYlMSPrFx9gf3kYvE6+h7ExVp2jWH48XAYiMOyLTC9Wrg6GwzDJiOO8AMbAr?= =?us-ascii?Q?z2pXFzXggrhObE8Dw0354NMvvUgAzmJhw/MMBRmC5BYQUe3b8CwYqmZqJhVw?= =?us-ascii?Q?zKlb44frlSG/vbr4YRe6gp5rghutPQA47b0W5DA8xTmKDs0wpJ7pK//jKJDR?= =?us-ascii?Q?W2wLK+bu+7f+rl+0QvNwt5Z1iSPdUadSWDhafXyD7Yuf9xv+Q2dFehFqp8/R?= =?us-ascii?Q?JInbdpdTCm88hlX9ih26BDm6LIxkTYEALzGZcZH6+DzOt2b09+MhTF87YwK8?= =?us-ascii?Q?PCBtJolJM9PPyvW+LF0YQTkMIZU+e6TCVW6rTOmEwgY/tmTBprxeA6DZqYqE?= =?us-ascii?Q?rZYSI8BRh8jJcLmBggImR0og72a2Zd+YNajOPXsT0lNZJg5OVGrisTufJar2?= =?us-ascii?Q?HYSjvjHJuf3WZ/D+Ot1EeH1tNHx7G34ct7EBFctm13k5pdSTXSXQzKTNydLL?= =?us-ascii?Q?7FBdcJSeLYarTm+MHHeYMfhpVlIgXrjCtStfhbfl2fzvvSmpqOTV9QFHdqW2?= =?us-ascii?Q?zhMrNSrgT3dY2GgsPwO3wb0s1BGo0XnIs6C3OZP5EzkmDjQr11Osw+wOwWAo?= =?us-ascii?Q?PcB4xiYwZfxwreq0Jt1/77DseuxIOyBoo+0n9IbNAHaleIWgJmfj4SGCd4eJ?= =?us-ascii?Q?1SXs5VTT4DgE9N9mOvS+HP4QDDqEVpELh/xcFSx1/2fM13qx3FaGQcmv8vRE?= =?us-ascii?Q?ZnH/+xok/IbF0fN/C5sQtfXLECuTq+bVkLqSjrG5TN0xAZ3cLs1k57zEUoT/?= =?us-ascii?Q?ILga7xUJ3LSNnMwkxY4ry2GafUiIP0Vfv8efmqVnBSJlEWjewkHN/0SdCSfF?= =?us-ascii?Q?sAvIfCxsXlNqtzY1bEBxuculvijBll89UjcsFZrWCdt2+mmFcwqblHLqHAtX?= =?us-ascii?Q?mf4vThFJ6eoh545X+D7fObh2OznPqd1MP3E3uPb3tefG5G6nRrZSvCfgFUDM?= =?us-ascii?Q?p3QMFiVZ1g1EJTVuDGR5wN2+WFOH7RqFnqOdwN9VOzs4xw5w?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2562fbe8-5c45-43d2-5d29-08dea1ac8269 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:22.8800 (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: 49MbHi/ythK5MuZQi+yydGEfROnWQX1Ff2LagYtodwPPDZ+Vi5+uk2wbvgeWwCyN X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7825 Content-Type: text/plain; charset="utf-8" Change the requirement to a file system with large folio support and the supported order needs to include PMD_ORDER. Also add tests of opening a file with read write permission and populating folios with writes. Reuse the XFS image from split_huge_page_test. Signed-off-by: Zi Yan --- tools/testing/selftests/mm/khugepaged.c | 110 ++++++++++++++++------ tools/testing/selftests/mm/run_vmtests.sh | 12 ++- 2 files changed, 90 insertions(+), 32 deletions(-) diff --git a/tools/testing/selftests/mm/khugepaged.c b/tools/testing/selfte= sts/mm/khugepaged.c index 3fe7ef04ac62..627472cbc910 100644 --- a/tools/testing/selftests/mm/khugepaged.c +++ b/tools/testing/selftests/mm/khugepaged.c @@ -49,7 +49,8 @@ struct mem_ops { const char *name; }; =20 -static struct mem_ops *file_ops; +static struct mem_ops *read_only_file_ops; +static struct mem_ops *read_write_file_ops; static struct mem_ops *anon_ops; static struct mem_ops *shmem_ops; =20 @@ -112,7 +113,8 @@ static void restore_settings(int sig) static void save_settings(void) { printf("Save THP and khugepaged settings..."); - if (file_ops && finfo.type =3D=3D VMA_FILE) + if ((read_only_file_ops || read_write_file_ops) && + finfo.type =3D=3D VMA_FILE) thp_set_read_ahead_path(finfo.dev_queue_read_ahead_path); thp_save_settings(); =20 @@ -364,11 +366,14 @@ static bool anon_check_huge(void *addr, int nr_hpages) return check_huge_anon(addr, nr_hpages, hpage_pmd_size); } =20 -static void *file_setup_area(int nr_hpages) +static void *file_setup_area_common(int nr_hpages, bool read_only) { int fd; void *p; unsigned long size; + int open_opt =3D read_only ? O_RDONLY : O_RDWR; + int mmap_prot =3D read_only ? PROT_READ : (PROT_READ | PROT_WRITE); + int mmap_opt =3D read_only ? MAP_PRIVATE : MAP_SHARED; =20 unlink(finfo.path); /* Cleanup from previous failed tests */ printf("Creating %s for collapse%s...", finfo.path, @@ -388,14 +393,15 @@ static void *file_setup_area(int nr_hpages) munmap(p, size); success("OK"); =20 - printf("Opening %s read only for collapse...", finfo.path); - finfo.fd =3D open(finfo.path, O_RDONLY, 777); + printf("Opening %s %s for collapse...", finfo.path, + read_only ? "read only" : "read-write"); + finfo.fd =3D open(finfo.path, open_opt, 777); if (finfo.fd < 0) { perror("open()"); exit(EXIT_FAILURE); } - p =3D mmap(BASE_ADDR, size, PROT_READ, - MAP_PRIVATE, finfo.fd, 0); + p =3D mmap(BASE_ADDR, size, mmap_prot, + mmap_opt, finfo.fd, 0); if (p =3D=3D MAP_FAILED || p !=3D BASE_ADDR) { perror("mmap()"); exit(EXIT_FAILURE); @@ -407,6 +413,15 @@ static void *file_setup_area(int nr_hpages) return p; } =20 +static void *file_setup_read_only_area(int nr_hpages) +{ + return file_setup_area_common(nr_hpages, /* read_only=3D */ true); +} + +static void *file_setup_read_write_area(int nr_hpages) +{ + return file_setup_area_common(nr_hpages, /* read_only=3D */ false); +} static void file_cleanup_area(void *p, unsigned long size) { munmap(p, size); @@ -414,14 +429,25 @@ static void file_cleanup_area(void *p, unsigned long = size) unlink(finfo.path); } =20 -static void file_fault(void *p, unsigned long start, unsigned long end) +static void file_fault_common(void *p, unsigned long start, unsigned long = end, + int madv_ops) { - if (madvise(((char *)p) + start, end - start, MADV_POPULATE_READ)) { + if (madvise(((char *)p) + start, end - start, madv_ops)) { perror("madvise(MADV_POPULATE_READ"); exit(EXIT_FAILURE); } } =20 +static void file_fault_read(void *p, unsigned long start, unsigned long en= d) +{ + file_fault_common(p, start, end, MADV_POPULATE_READ); +} + +static void file_fault_write(void *p, unsigned long start, unsigned long e= nd) +{ + file_fault_common(p, start, end, MADV_POPULATE_WRITE); +} + static bool file_check_huge(void *addr, int nr_hpages) { switch (finfo.type) { @@ -477,10 +503,18 @@ static struct mem_ops __anon_ops =3D { .name =3D "anon", }; =20 -static struct mem_ops __file_ops =3D { - .setup_area =3D &file_setup_area, +static struct mem_ops __read_only_file_ops =3D { + .setup_area =3D &file_setup_read_only_area, + .cleanup_area =3D &file_cleanup_area, + .fault =3D &file_fault_read, + .check_huge =3D &file_check_huge, + .name =3D "file", +}; + +static struct mem_ops __read_write_file_ops =3D { + .setup_area =3D &file_setup_read_write_area, .cleanup_area =3D &file_cleanup_area, - .fault =3D &file_fault, + .fault =3D &file_fault_write, .check_huge =3D &file_check_huge, .name =3D "file", }; @@ -603,7 +637,9 @@ static struct collapse_context __madvise_context =3D { =20 static bool is_tmpfs(struct mem_ops *ops) { - return ops =3D=3D &__file_ops && finfo.type =3D=3D VMA_SHMEM; + return (ops =3D=3D &__read_only_file_ops || + ops =3D=3D &__read_write_file_ops) && + finfo.type =3D=3D VMA_SHMEM; } =20 static bool is_anon(struct mem_ops *ops) @@ -1086,8 +1122,8 @@ static void usage(void) fprintf(stderr, "\t\t: [all|khugepaged|madvise]\n"); fprintf(stderr, "\t\t: [all|anon|file|shmem]\n"); fprintf(stderr, "\n\t\"file,all\" mem_type requires [dir] argument\n"); - fprintf(stderr, "\n\t\"file,all\" mem_type requires kernel built with\n"); - fprintf(stderr, "\tCONFIG_READ_ONLY_THP_FOR_FS=3Dy\n"); + fprintf(stderr, "\n\t\"file,all\" mem_type requires a file system\n"); + fprintf(stderr, "\twith large folio support (order >=3D PMD order)\n"); fprintf(stderr, "\n\tif [dir] is a (sub)directory of a tmpfs mount, tmpfs= must be\n"); fprintf(stderr, "\tmounted with huge=3Dadvise option for khugepaged tests= to work\n"); fprintf(stderr, "\n\tSupported Options:\n"); @@ -1143,20 +1179,22 @@ static void parse_test_type(int argc, char **argv) usage(); =20 if (!strcmp(buf, "all")) { - file_ops =3D &__file_ops; + read_only_file_ops =3D &__read_only_file_ops; + read_write_file_ops =3D &__read_write_file_ops; anon_ops =3D &__anon_ops; shmem_ops =3D &__shmem_ops; } else if (!strcmp(buf, "anon")) { anon_ops =3D &__anon_ops; } else if (!strcmp(buf, "file")) { - file_ops =3D &__file_ops; + read_only_file_ops =3D &__read_only_file_ops; + read_write_file_ops =3D &__read_write_file_ops; } else if (!strcmp(buf, "shmem")) { shmem_ops =3D &__shmem_ops; } else { usage(); } =20 - if (!file_ops) + if (!read_only_file_ops && !read_write_file_ops) return; =20 if (argc !=3D 2) @@ -1228,37 +1266,47 @@ int main(int argc, char **argv) } while (0) =20 TEST(collapse_full, khugepaged_context, anon_ops); - TEST(collapse_full, khugepaged_context, file_ops); + TEST(collapse_full, khugepaged_context, read_only_file_ops); + TEST(collapse_full, khugepaged_context, read_write_file_ops); TEST(collapse_full, khugepaged_context, shmem_ops); TEST(collapse_full, madvise_context, anon_ops); - TEST(collapse_full, madvise_context, file_ops); + TEST(collapse_full, madvise_context, read_only_file_ops); + TEST(collapse_full, madvise_context, read_write_file_ops); TEST(collapse_full, madvise_context, shmem_ops); =20 TEST(collapse_empty, khugepaged_context, anon_ops); TEST(collapse_empty, madvise_context, anon_ops); =20 TEST(collapse_single_pte_entry, khugepaged_context, anon_ops); - TEST(collapse_single_pte_entry, khugepaged_context, file_ops); + TEST(collapse_single_pte_entry, khugepaged_context, read_only_file_ops); + TEST(collapse_single_pte_entry, khugepaged_context, read_write_file_ops); TEST(collapse_single_pte_entry, khugepaged_context, shmem_ops); TEST(collapse_single_pte_entry, madvise_context, anon_ops); - TEST(collapse_single_pte_entry, madvise_context, file_ops); + TEST(collapse_single_pte_entry, madvise_context, read_only_file_ops); + TEST(collapse_single_pte_entry, madvise_context, read_write_file_ops); TEST(collapse_single_pte_entry, madvise_context, shmem_ops); =20 TEST(collapse_max_ptes_none, khugepaged_context, anon_ops); - TEST(collapse_max_ptes_none, khugepaged_context, file_ops); + TEST(collapse_max_ptes_none, khugepaged_context, read_only_file_ops); + TEST(collapse_max_ptes_none, khugepaged_context, read_write_file_ops); TEST(collapse_max_ptes_none, madvise_context, anon_ops); - TEST(collapse_max_ptes_none, madvise_context, file_ops); + TEST(collapse_max_ptes_none, madvise_context, read_only_file_ops); + TEST(collapse_max_ptes_none, madvise_context, read_write_file_ops); =20 TEST(collapse_single_pte_entry_compound, khugepaged_context, anon_ops); - TEST(collapse_single_pte_entry_compound, khugepaged_context, file_ops); + TEST(collapse_single_pte_entry_compound, khugepaged_context, read_only_fi= le_ops); + TEST(collapse_single_pte_entry_compound, khugepaged_context, read_write_f= ile_ops); TEST(collapse_single_pte_entry_compound, madvise_context, anon_ops); - TEST(collapse_single_pte_entry_compound, madvise_context, file_ops); + TEST(collapse_single_pte_entry_compound, madvise_context, read_only_file_= ops); + TEST(collapse_single_pte_entry_compound, madvise_context, read_write_file= _ops); =20 TEST(collapse_full_of_compound, khugepaged_context, anon_ops); - TEST(collapse_full_of_compound, khugepaged_context, file_ops); + TEST(collapse_full_of_compound, khugepaged_context, read_only_file_ops); + TEST(collapse_full_of_compound, khugepaged_context, read_write_file_ops); TEST(collapse_full_of_compound, khugepaged_context, shmem_ops); TEST(collapse_full_of_compound, madvise_context, anon_ops); - TEST(collapse_full_of_compound, madvise_context, file_ops); + TEST(collapse_full_of_compound, madvise_context, read_only_file_ops); + TEST(collapse_full_of_compound, madvise_context, read_write_file_ops); TEST(collapse_full_of_compound, madvise_context, shmem_ops); =20 TEST(collapse_compound_extreme, khugepaged_context, anon_ops); @@ -1280,10 +1328,12 @@ int main(int argc, char **argv) TEST(collapse_max_ptes_shared, madvise_context, anon_ops); =20 TEST(madvise_collapse_existing_thps, madvise_context, anon_ops); - TEST(madvise_collapse_existing_thps, madvise_context, file_ops); + TEST(madvise_collapse_existing_thps, madvise_context, read_only_file_ops); + TEST(madvise_collapse_existing_thps, madvise_context, read_write_file_ops= ); TEST(madvise_collapse_existing_thps, madvise_context, shmem_ops); =20 - TEST(madvise_retracted_page_tables, madvise_context, file_ops); + TEST(madvise_retracted_page_tables, madvise_context, read_only_file_ops); + TEST(madvise_retracted_page_tables, madvise_context, read_write_file_ops); TEST(madvise_retracted_page_tables, madvise_context, shmem_ops); =20 restore_settings(0); diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/self= tests/mm/run_vmtests.sh index d8468451b3a3..50dd6b6d0225 100755 --- a/tools/testing/selftests/mm/run_vmtests.sh +++ b/tools/testing/selftests/mm/run_vmtests.sh @@ -489,8 +489,6 @@ CATEGORY=3D"thp" run_test ./khugepaged all:shmem =20 CATEGORY=3D"thp" run_test ./khugepaged -s 4 all:shmem =20 -CATEGORY=3D"thp" run_test ./transhuge-stress -d 20 - # Try to create XFS if not provided if [ -z "${SPLIT_HUGE_PAGE_TEST_XFS_PATH}" ]; then if [ "${HAVE_HUGEPAGES}" =3D "1" ]; then @@ -507,6 +505,14 @@ if [ -z "${SPLIT_HUGE_PAGE_TEST_XFS_PATH}" ]; then fi fi =20 +if [ -n "${SPLIT_HUGE_PAGE_TEST_XFS_PATH}" ]; then +CATEGORY=3D"thp" run_test ./khugepaged all:file ${SPLIT_HUGE_PAGE_TEST_XFS= _PATH} +else + count_total=3D$(( count_total + 1 )) + count_skip=3D$(( count_skip + 1 )) + echo "[SKIP] ./khugepaged all:file" | tap_prefix +fi + CATEGORY=3D"thp" run_test ./split_huge_page_test ${SPLIT_HUGE_PAGE_TEST_XF= S_PATH} =20 if [ -n "${MOUNTED_XFS}" ]; then @@ -515,6 +521,8 @@ if [ -n "${MOUNTED_XFS}" ]; then rm -f ${XFS_IMG} fi =20 +CATEGORY=3D"thp" run_test ./transhuge-stress -d 20 + CATEGORY=3D"thp" run_test ./folio_split_race_test =20 CATEGORY=3D"migration" run_test ./migration --=20 2.43.0 From nobody Mon Jun 15 20:33:02 2026 Received: from SN4PR2101CU001.outbound.protection.outlook.com (mail-southcentralusazon11012047.outbound.protection.outlook.com [40.93.195.47]) (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 33F2530AD05; Fri, 24 Apr 2026 02:52:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.195.47 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999175; cv=fail; b=gU3jd2a9NgdLze8dCCZhp1HLSTbHs8ANwlJ121x5rDrRLBZYCXj3laTtu4Is75n6fzrL7w8Bjzj9BWRJ22rdq9y0JuoXnO4jl/5VCD+dsiI1uMbFgY6s4ZyAZQjJnn0r6YZ9hQ/FjhmjxGdPreOsOZC04XPECAyJw5l2cY7yX7o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776999175; c=relaxed/simple; bh=sqFWmK64rhOuj/yUi1KGwYJBZg8haqrbt9ClnXMGbu4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MG6DpjqFJcVIiHJVkKUuV/YqiUQZuuMsmLJh1LtLc5/WZ4yq9r637HCrrMiuJcSWoHmvCe31v+LD8X9/nJjDF01YzNIGTVS3jDWj9HD7aV5iXDHBZ8UWUagr8HPbJ8axyj6oO0xtYDAdvHqbShvJbUfB3vWvWII2Uv2DligX9Bs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=O7hM1o1K; arc=fail smtp.client-ip=40.93.195.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="O7hM1o1K" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nv2/iDhN1STpYMozNWBvVzlMXn5OJfDyfB06GMqIJQuYnlSaxgKjssXQs3HRcQQi0CV2HVhMPBZ0wKQ/k5DtmIqY7HgW+FvbAvjdqnmWeC9RXByTISaWIJgCAXN6jd0eEQuXZsH9WFoPNj3hL0RpIgnFTNpMD4NkFnDrY8Sn6wb3CzmSdz9byRPwgQAWCMkw3YxaA5JigzmLEE/7+o3raJ27wAy1V4zUxvrseAf2JPQLA/aLpATeBy5r5QbUzd9N5LYOUTIcWM3gSUolf4lB0gVSw/G1dp2eFFPDFdWD+kSkhNAsOekAoplwBtwVaMuYWFejlHys+6PO9AEp8o6N/g== 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=HUWPNMI43CMSi5bx25ldmPlNHdWHEBHgCa3pBe81r3c=; b=DqV3lB2vrktVXcalraQHY1bGzMZHktr2OAN1vg7tuWhtureW/kkxH8Ihg9jDYe1Ufq4n7aLQg/Si6rmTzahhqc6VmlnHtf+Tq/Vs7gzDrrpQqnDxFvCqKnLJAcFYglNDUZn+GXGhPeVZl0h0WBJe+ekLY4GyfhMFeKsYVJO7LKCIDDM5I7ayESpVv9JQX/w86bPpOSZgRwFNiU2ONh2Dh/NYTcEiho5UEZx2zoXSQb0dxAWjaH7SYEN5GEIcCk4e5jBqAzIx7+QkupSd/Qdynh5Ty3zQIxu+F1VHJ0/0iuc7D26tkEYoyTOy8S2emQmEaarHLb1VNIX5tQY9cZ2KLg== 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=HUWPNMI43CMSi5bx25ldmPlNHdWHEBHgCa3pBe81r3c=; b=O7hM1o1KDwi+nTP7dZCQ3maN7maHR0gNu5w32ss+6Pi4XOEhbOsq/bt0mxoCfdVeZ0peiXaGWywOn3Bd1YGdSZfxE9Zq2ak9LWM5RudwnbSL56cYLydHdKqhnD8EuRSB4Vi6g9On+7RCLmqf9h1HJ9RFiQYPgRZVNM0aCO5zhI4LoB6WprBhiXetdQq/X8ypR+mwnLr+GFIPxtMl8LiBAFD9cmwupJyN8w57fJXHNuFsgX/SSyCF7eWrOKUsGmTUcrMz0xK0qIjQygNi0GJrZVX2z6CX5/U4zgULu/zeaVfIZH4Iy2nx1cwONaTK6b1tcl5Q7461KPgz1fPoPgqBlg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS0PR12MB7825.namprd12.prod.outlook.com (2603:10b6:8:14d::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr 2026 02:52:25 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::f01d:73d2:2dda:c7b2%4]) with mapi id 15.20.9846.021; Fri, 24 Apr 2026 02:52:24 +0000 From: Zi Yan To: Andrew Morton , "Matthew Wilcox (Oracle)" , Song Liu Cc: Chris Mason , David Sterba , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Lorenzo Stoakes , Zi Yan , Baolin Wang , "Liam R. Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Lance Yang , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Shuah Khan , linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kselftest@vger.kernel.org Subject: [PATCH 7.2 v4 12/12] selftests/mm: remove READ_ONLY_THP_FOR_FS code from guard-regions Date: Thu, 23 Apr 2026 22:49:15 -0400 Message-ID: <20260424024915.28758-13-ziy@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260424024915.28758-1-ziy@nvidia.com> References: <20260424024915.28758-1-ziy@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YQBPR0101CA0296.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:6d::22) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) 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: DS7PR12MB9473:EE_|DS0PR12MB7825:EE_ X-MS-Office365-Filtering-Correlation-Id: 920f2342-0a06-4957-0440-08dea1ac83a4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: vF0lZm72yp3xg+nV5ArKHVPi7KSa3iaglF/VqUIUbXD/8kxaPTeZgiCRjeJUO4Qh3hCXMiPC81KfC/XClxp4npElCw/8xzArr007mO7mqpvCkLOP5ABpB1UskXoUH1RfterLdJr4aG8ytGS5uBwkNLL9y/1ETquX00UTWc3URREaY/o2AmMj+yoSPqZ8lTH16G/MoQ4HtRbbbGHdJ6tm0KTQW3LO/CukWWi//Mv3WJbYS/vigV3c9Nvr7rQa4kNHa5XaVVw5Mhj6oNHY1o/xage2nbUxX60NqnciC+QJFF8q81sYw28ApMA+bthagKN3Erf38AWjEeWAXfcTANDRkti5FC7Guu0RQJ93KnqOvS0h4MwEA4uz7FIZsU7Q34MPIbuvzPZeagXpkh/Yp1Wec1M2EFhZHyWr8mgHMl7YlYt+4rB/GAuaN+RrzofvLZtmRYjX/VMprrpILzvXvMcsmvdJLAmtSzVm7C0BM8zdFlq70IXWEDEy2REuhTqrdIL4thov8YdmSrHeQ9lmmsZyPVPasHhpAxNNA6dtXvrSGqCDlkVFvP6sQbwmN+CnYaRi4hrcuBT4fT7lzYYb8GNS+ATtt8z7HgefPca9wk0sjQQ68ruld+R59rhGJsCHralutwlLpqeOmi59tzeiMLZ0SjlePTuOpG9gJEpvdeek0igLBidUd4lwSE1q6q0/W7BIxCzGpQ8o/2dQDpyWhTDpbQDNe6Two1skWwmB+qcE5bQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(376014)(1800799024)(366016)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?TOhsVOeM5K/YIpYj2A2L5NVo4aMqXxXQOSb+x0IX8yubGplyKlPSZKXUIza9?= =?us-ascii?Q?L/SKTyM5cgae/8nBHqDg0fMz8Kg2QPC89YhE9NjYktgOwXyORDhC8jUBI/AW?= =?us-ascii?Q?b9CDcmkvRx6nzgUyRjn0pTr6NYjGoZYhi4IQFVIxJnuInHrR+CRZ3sibmS9I?= =?us-ascii?Q?V6EXPyfALho3lT/MhlDLD7CdQG06c9bUHW9JKEl6QgFb+n81+5iFgCJ92Wdh?= =?us-ascii?Q?MxFRhjkRqbuk5tiCIHjdsPFoIbaNYsov5Vb+RiLyNa2rT0Hk0MAB5D+xjRQq?= =?us-ascii?Q?DUrdx2GFxpL+/NyuzT64RGdlZsPm2apSXjC5rahTE8Z31QtBoWEHRbuXEwC1?= =?us-ascii?Q?Gu3lPW5dGSMq2xYJ/flW3zIlcAdofcX+98h6m2Z5nyShR4QxH5aiqzCtQPDi?= =?us-ascii?Q?Rx7m5Tgh+y/QYOlpOAOZLlLucflRzBW7dSJZkQ8K4Et48TbCdDb0WURj24Te?= =?us-ascii?Q?g+zwZCujRo1zXQl4hx4v6nerFecBmOkZZP6Z8Lovf0QhzOjfC8PcsqwRbp5j?= =?us-ascii?Q?AQiA/O7Ejq2VkOXY0U2vC+oMHmvPi7A1oSb7WfZ1uh+55+QhxyZWkRRvNOsU?= =?us-ascii?Q?HUAHUQi5LbqBSLGwT58ktslsJihwoc2J93TS4Y/LdsNL4Te6rpsGzR7VAbCS?= =?us-ascii?Q?69324dphxlGLg8BqGkQdAxAL1PRAuZMsaisYVzk8Z79kRx9YnFjyaqY17BcX?= =?us-ascii?Q?xZ3OfYm8RYYrJdaCx4EKgRHTSCsUJivNbGSO1CfFYsbFePlBSWpuUNyptIPA?= =?us-ascii?Q?Y2IToAxCRnTa8LtQaAZN1LqRRulzuG0wxDiftNq+SIof8nDpvA+bWg26lFN3?= =?us-ascii?Q?tbLEdU9ftuP8CiA64JBtN403x3MIe7syP2HrxeZ/Qg5O0lVmOMOrtvMKTjIh?= =?us-ascii?Q?ec6hwowf8DqulTYcWAPJI0LnIOdvshucneg0tn+Z50RA/vGzLZi8vYs0LPd0?= =?us-ascii?Q?2oP4590ImOu4mDeTFnJAl2vY9RxgIoasrHXLcnpkvTR5He+DPi2Z9aAddsS0?= =?us-ascii?Q?/DvIIEIJHLR9t2M1An4V4zBWteVytH81C/N1CbirE/Ffg0X+tZJAJCsfBdQF?= =?us-ascii?Q?t9dfHu7M/da7x5FADKDtZU/f6LXJWmMQLjxMOY3rU89MNCZAf2o05eG+M96h?= =?us-ascii?Q?BaQjhnVV0CmGFD7pAwXxFBew4K4fcRDEXi9QIIQ1PX7cW0GB/l3ODGqZ1c02?= =?us-ascii?Q?wthfs2zEbluyPNIraChb3Sju7HzbSW4K91MwRCzatQIND4yYZZgHnOTVjlBZ?= =?us-ascii?Q?q7QzQQNvNH2kxohahugCTJmppF/m9KCp5Yr4TbrF8PxxnWMpNAYwaYSE0iSu?= =?us-ascii?Q?pyA+x4qJxTIlNPg4HP2/kw8Iw1H19Jl9ul5fhaAjI9b7L8gurImIzhiZB+Cs?= =?us-ascii?Q?nH/NHeqmB1/I+nQnHF0p0vc/x5b8LChNnWADN0vkQ9p7vk9ZjvNF4drKR4S5?= =?us-ascii?Q?tmX2utx4OCJV5aZFe3VWRW/LUWcAo+sauW64/FsaASHhAbNRPzsvtX/PQxD2?= =?us-ascii?Q?sYhf3LjzAD4Ke+uN272kqH+qm8+vTxpfwIs08XA03pwHcgSDf1Iv+AzUN6pp?= =?us-ascii?Q?gGFe0x8cknVm0zI9IrdvV8i/+vhQvs4wvOczDQB6mvCtpDZqgNTQB87Rsnu1?= =?us-ascii?Q?/5GKUY/y5DI42Aw5i6Up+8lJu3IJroC+Muls7S4fRZYFzTsLGa8eLknypIdl?= =?us-ascii?Q?ayNwiPS9EmSJY+oQqJAHosWK3z1UIRLApJypuX0kUPNqVZWR?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 920f2342-0a06-4957-0440-08dea1ac83a4 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Apr 2026 02:52:24.9182 (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: 2yhTCkuQn7STOe1ObI7rQaLrXNtvK0ojKwf3IWdOXzI0tLm4JfDSsTNfOFKZ3I1+ X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7825 Content-Type: text/plain; charset="utf-8" Any file system with large folio support and the supported orders include PMD_ORDER can be used. There is no need to open a file with read-only. Signed-off-by: Zi Yan Acked-by: David Hildenbrand (Arm) --- tools/testing/selftests/mm/guard-regions.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/tools/testing/selftests/mm/guard-regions.c b/tools/testing/sel= ftests/mm/guard-regions.c index 48e8b1539be3..117639891953 100644 --- a/tools/testing/selftests/mm/guard-regions.c +++ b/tools/testing/selftests/mm/guard-regions.c @@ -2203,17 +2203,6 @@ TEST_F(guard_regions, collapse) if (variant->backing !=3D ANON_BACKED) ASSERT_EQ(ftruncate(self->fd, size), 0); =20 - /* - * We must close and re-open local-file backed as read-only for - * CONFIG_READ_ONLY_THP_FOR_FS to work. - */ - if (variant->backing =3D=3D LOCAL_FILE_BACKED) { - ASSERT_EQ(close(self->fd), 0); - - self->fd =3D open(self->path, O_RDONLY); - ASSERT_GE(self->fd, 0); - } - ptr =3D mmap_(self, variant, NULL, size, PROT_READ, 0, 0); ASSERT_NE(ptr, MAP_FAILED); =20 @@ -2237,9 +2226,10 @@ TEST_F(guard_regions, collapse) /* * Now collapse the entire region. This should fail in all cases. * - * The madvise() call will also fail if CONFIG_READ_ONLY_THP_FOR_FS is - * not set for the local file case, but we can't differentiate whether - * this occurred or if the collapse was rightly rejected. + * The madvise() call will also fail if the file system does not support + * large folio or the supported orders do not include PMD_ORDER for the + * local file case, but we can't differentiate whether this occurred or + * if the collapse was rightly rejected. */ EXPECT_NE(madvise(ptr, size, MADV_COLLAPSE), 0); =20 --=20 2.43.0