After READ_ONLY_THP_FOR_FS Kconfig is removed, this check becomes dead code.
This changes hugepage_pmd_enabled() semantics. Previously, with READ_ONLY_THP_FOR_FS enabled, hugepage_pmd_enabled() returned true whenever /sys/kernel/mm/transparent_hugepage/enabled was set to "always" or "madvise". After this change, hugepage_pmd_enabled() is governed only by the anon and shmem PMD THP controls. As a result, khugepaged collapse for file-backed folios no longer runs unconditionally under the top-level THP setting, and now depends on the anon/shmem PMD configuration. Signed-off-by: Zi Yan <[email protected]> --- mm/khugepaged.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index ec609e53082e..79c985d7fa03 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -409,15 +409,12 @@ static inline int collapse_test_exit_or_disable(struct mm_struct *mm) static bool hugepage_pmd_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. + * We cover the anon and shmem cases here. * Anon pmd-sized hugepages are determined by the pmd-size 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. + * The file-backed case is determined by the anon and shmem cases. */ - if (IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && - hugepage_global_enabled()) - return true; if (test_bit(PMD_ORDER, &huge_anon_orders_always)) return true; if (test_bit(PMD_ORDER, &huge_anon_orders_madvise)) -- 2.43.0

