public inbox for linux-mm@kvack.org
 help / color / mirror / Atom feed
* [PATCH v1 00/10] Remove READ_ONLY_THP_FOR_FS Kconfig
@ 2026-03-27  1:42 Zi Yan
  2026-03-27  1:42 ` [PATCH v1 01/10] mm: remove READ_ONLY_THP_FOR_FS Kconfig option Zi Yan
                   ` (10 more replies)
  0 siblings, 11 replies; 55+ messages in thread
From: Zi Yan @ 2026-03-27  1:42 UTC (permalink / raw)
  To: Matthew Wilcox (Oracle), Song Liu
  Cc: Chris Mason, David Sterba, Alexander Viro, Christian Brauner,
	Jan Kara, Andrew Morton, 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,
	linux-kernel, linux-fsdevel, linux-mm, linux-kselftest

Hi all,

This patchset removes READ_ONLY_THP_FOR_FS Kconfig and enables creating
read-only THPs for FSes with large folio support (the supported orders
need to include PMD_ORDER) by default.

The changes are:
1. collapse_file() from mm/khugepaged.c, instead of checking
   CONFIG_READ_ONLY_THP_FOR_FS, makes sure the mapping_max_folio_order()
   of struct address_space of the file is at least PMD_ORDER.
2. file_thp_enabled() also checks mapping_max_folio_order() instead.
3. truncate_inode_partial_folio() calls folio_split() directly instead
   of the removed try_folio_split_to_order(), since large folios can
   only show up on a FS with large folio support.
4. nr_thps is removed from struct address_space, since it is no longer
   needed to drop all read-only THPs from a FS without large folio
   support when the fd becomes writable. Its related filemap_nr_thps*()
   are removed too.
5. folio_check_splittable() no longer checks READ_ONLY_THP_FOR_FS.
6. Updated comments in various places.

Changelog
===
From RFC[1]:
1. instead of removing READ_ONLY_THP_FOR_FS function entirely, turn it
   on by default for all FSes with large folio support and the supported
   orders includes PMD_ORDER.

Suggestions and comments are welcome.

Link: https://lore.kernel.org/all/20260323190644.1714379-1-ziy@nvidia.com/ [1]

Zi Yan (10):
  mm: remove READ_ONLY_THP_FOR_FS Kconfig option
  mm/khugepaged: remove READ_ONLY_THP_FOR_FS check
  mm: fs: remove filemap_nr_thps*() functions and their users
  fs: remove nr_thps from struct address_space
  mm/huge_memory: remove READ_ONLY_THP_FOR_FS from file_thp_enabled()
  mm/huge_memory: remove folio split check for READ_ONLY_THP_FOR_FS
  mm/truncate: use folio_split() in truncate_inode_partial_folio()
  fs/btrfs: remove a comment referring to READ_ONLY_THP_FOR_FS
  selftests/mm: remove READ_ONLY_THP_FOR_FS in khugepaged
  selftests/mm: remove READ_ONLY_THP_FOR_FS from comments in
    guard-regions

 fs/btrfs/defrag.c                          |  3 --
 fs/inode.c                                 |  3 --
 fs/open.c                                  | 27 ----------------
 include/linux/fs.h                         |  5 ---
 include/linux/huge_mm.h                    | 25 ++-------------
 include/linux/pagemap.h                    | 29 -----------------
 mm/Kconfig                                 | 11 -------
 mm/filemap.c                               |  1 -
 mm/huge_memory.c                           | 29 ++---------------
 mm/khugepaged.c                            | 36 +++++-----------------
 mm/truncate.c                              |  8 ++---
 tools/testing/selftests/mm/guard-regions.c |  9 +++---
 tools/testing/selftests/mm/khugepaged.c    |  4 +--
 13 files changed, 23 insertions(+), 167 deletions(-)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 55+ messages in thread

end of thread, other threads:[~2026-03-27 16:30 UTC | newest]

Thread overview: 55+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-27  1:42 [PATCH v1 00/10] Remove READ_ONLY_THP_FOR_FS Kconfig Zi Yan
2026-03-27  1:42 ` [PATCH v1 01/10] mm: remove READ_ONLY_THP_FOR_FS Kconfig option Zi Yan
2026-03-27 11:45   ` Lorenzo Stoakes (Oracle)
2026-03-27 13:33   ` David Hildenbrand (Arm)
2026-03-27 14:39     ` Zi Yan
2026-03-27  1:42 ` [PATCH v1 02/10] mm/khugepaged: remove READ_ONLY_THP_FOR_FS check Zi Yan
2026-03-27  7:29   ` Lance Yang
2026-03-27  7:35     ` Lance Yang
2026-03-27  9:44   ` Baolin Wang
2026-03-27 12:02     ` Lorenzo Stoakes (Oracle)
2026-03-27 13:45       ` Baolin Wang
2026-03-27 14:12         ` Lorenzo Stoakes (Oracle)
2026-03-27 14:26           ` Baolin Wang
2026-03-27 14:31             ` Lorenzo Stoakes (Oracle)
2026-03-27 15:00               ` Zi Yan
2026-03-27 16:22                 ` Lance Yang
2026-03-27 16:30                   ` Zi Yan
2026-03-27 12:07   ` Lorenzo Stoakes (Oracle)
2026-03-27 14:15     ` Lorenzo Stoakes (Oracle)
2026-03-27 14:46     ` Zi Yan
2026-03-27 13:37   ` David Hildenbrand (Arm)
2026-03-27 14:43     ` Zi Yan
2026-03-27  1:42 ` [PATCH v1 03/10] mm: fs: remove filemap_nr_thps*() functions and their users Zi Yan
2026-03-27  9:32   ` Lance Yang
2026-03-27 12:23   ` Lorenzo Stoakes (Oracle)
2026-03-27 13:58     ` David Hildenbrand (Arm)
2026-03-27 14:23       ` Lorenzo Stoakes (Oracle)
2026-03-27 15:05         ` Zi Yan
2026-03-27  1:42 ` [PATCH v1 04/10] fs: remove nr_thps from struct address_space Zi Yan
2026-03-27 12:29   ` Lorenzo Stoakes (Oracle)
2026-03-27 14:00   ` David Hildenbrand (Arm)
2026-03-27  1:42 ` [PATCH v1 05/10] mm/huge_memory: remove READ_ONLY_THP_FOR_FS from file_thp_enabled() Zi Yan
2026-03-27 12:42   ` Lorenzo Stoakes (Oracle)
2026-03-27 15:12     ` Zi Yan
2026-03-27 15:29       ` Lorenzo Stoakes (Oracle)
2026-03-27 15:43         ` Zi Yan
2026-03-27 16:08           ` Lorenzo Stoakes (Oracle)
2026-03-27 16:12             ` Zi Yan
2026-03-27 16:14               ` Lorenzo Stoakes (Oracle)
2026-03-27  1:42 ` [PATCH v1 06/10] mm/huge_memory: remove folio split check for READ_ONLY_THP_FOR_FS Zi Yan
2026-03-27 12:50   ` Lorenzo Stoakes (Oracle)
2026-03-27  1:42 ` [PATCH v1 07/10] mm/truncate: use folio_split() in truncate_inode_partial_folio() Zi Yan
2026-03-27  3:33   ` Lance Yang
2026-03-27 13:05   ` Lorenzo Stoakes (Oracle)
2026-03-27 15:35     ` Zi Yan
2026-03-27  1:42 ` [PATCH v1 08/10] fs/btrfs: remove a comment referring to READ_ONLY_THP_FOR_FS Zi Yan
2026-03-27 13:05   ` Lorenzo Stoakes (Oracle)
2026-03-27  1:42 ` [PATCH v1 09/10] selftests/mm: remove READ_ONLY_THP_FOR_FS in khugepaged Zi Yan
2026-03-27 13:05   ` Lorenzo Stoakes (Oracle)
2026-03-27  1:42 ` [PATCH v1 10/10] selftests/mm: remove READ_ONLY_THP_FOR_FS from comments in guard-regions Zi Yan
2026-03-27 13:06   ` Lorenzo Stoakes (Oracle)
2026-03-27 13:46 ` [PATCH v1 00/10] Remove READ_ONLY_THP_FOR_FS Kconfig David Hildenbrand (Arm)
2026-03-27 14:26   ` Zi Yan
2026-03-27 14:27   ` Lorenzo Stoakes (Oracle)
2026-03-27 14:30     ` Zi Yan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox