On 3/23/26 20:47, Zi Yan wrote: > On 23 Mar 2026, at 15:41, David Hildenbrand (Arm) wrote: > >> On 3/23/26 20:06, Zi Yan wrote: >>> READ_ONLY_THP_FOR_FS is no longer present, remove corresponding code. >>> >>> Signed-off-by: Zi Yan <[email protected]> >>> --- >>> mm/khugepaged.c | 159 +++++++++++------------------------------------- >>> 1 file changed, 34 insertions(+), 125 deletions(-) >>> >>> diff --git a/mm/khugepaged.c b/mm/khugepaged.c >>> index b2ac28ddd480..39f0b8959535 100644 >>> --- a/mm/khugepaged.c >>> +++ b/mm/khugepaged.c >>> @@ -1899,7 +1899,7 @@ static enum scan_result collapse_file(struct >>> mm_struct *mm, unsigned long addr, >>> int nr_none = 0; >>> bool is_shmem = shmem_file(file); >>> >>> - VM_BUG_ON(!IS_ENABLED(CONFIG_READ_ONLY_THP_FOR_FS) && !is_shmem); >>> + VM_WARN_ON_ONCE(!is_shmem); >> >> Oh, but if that means that khugepaged cannot collapse large folios in >> FSes anymore, then this is the wrong approach I suppose? >> >> I would have assumed that we would now collapse for any files that >> support large folios (in PMD size), not stopping to collapse entirely. > > My understanding is that collapse_file() is only used for > READ_ONLY_THP_FOR_FS. If FSes with large folio support also use it, > I can replace IS_ENABLE with mapping_large_folio_support().
Otherwise we'd be losing support for THP collapse in files? We'd have to cross fingers that readahead gives us some. So we have to be a bit careful here. We want khugepaged to collapse THPs in filesystems that support large folios even without READ_ONLY_THP_FOR_FS. -- Cheers, David

