folio feature:
1. Patch series "Split a folio to any lower order folios", v5. 2. arm64: mm: swap: support THP_SWAP on hardware with MTE 3. Patch series "support multi-size THP numa balancing", v2. 4. Patch series "Swap-out mTHP without splitting", v7.
Some bugfix: 1. mm: fix draining remote pageset 2. Patch series "Address some contpte nits". 3. Patch series "mm: page_alloc: fixes for high atomic reserve caluculations", v3. 4. Patch series "Fix I/O high when memory almost met memcg limit", v2. 5. mm, oom:dump_tasks add rss detailed information printing 6. mm: ratelimit stat flush from workingset shrinker 7. mm: madvise: pageout: ignore references rather than clearing young 8. mm: use memalloc_nofs_save() in page_cache_ra_order() 9. mm/vmalloc: fix return value of vb_alloc if size is 0 10. mm: remove struct page from get_shadow_from_swap_cache
Baolin Wang (2): [Backport] mm: factor out the numa mapping rebuilding into a new helper [Backport] mm: support multi-size THP numa balancing
Barry Song (5): [Backport] mm: madvise: pageout: ignore references rather than clearing young [Backport] arm64: mm: swap: support THP_SWAP on hardware with MTE [Backport] madvise:madvise_cold_or_pageout_pte_range(): allow split while folio_estimated_sharers = 0 [Backport] mm: hold PTL from the first PTE while reclaiming a large folio [Backport] mm: alloc_anon_folio: avoid doing vma_thp_gfp_mask in fallback cases
Charan Teja Kalla (2): [Backport] mm: page_alloc: correct high atomic reserve calculations [Backport] mm: page_alloc: enforce minimum zone size to do high atomic reserves
David Hildenbrand (1): [Backport] mm: convert folio_estimated_sharers() to folio_likely_mapped_shared()
Hailong.Liu (1): [Backport] mm/vmalloc: fix return value of vb_alloc if size is 0
Huang Ying (1): [Backport] mm: fix draining remote pageset
Jiexun Wang (1): [Backport] mm/madvise: add cond_resched() in madvise_cold_or_pageout_pte_range()
John Hubbard (1): [Backport] huge_memory.c: document huge page splitting rules more thoroughly
Kefeng Wang (2): [Backport] mm: use memalloc_nofs_save() in page_cache_ra_order() [Backport] mm: huge_memory: use more folio api in __split_huge_page_tail()
Liu Shixin (2): [Backport] mm/readahead: break read-ahead loop if filemap_add_folio return -ENOMEM [Backport] mm/filemap: don't decrease mmap_miss when folio has workingset flag
Matthew Wilcox (Oracle) (4): [Backport] mm: support order-1 folios in the page cache [Backport] XArray: set the marks correctly when splitting an entry [Backport] mm: remove struct page from get_shadow_from_swap_cache [Backport] mm: remove PageAnonExclusive assertions in unuse_pte()
Muhammad Usama Anjum (2): [Backport] selftests/mm: split_huge_page_test: conform test to TAP format output [Backport] selftests: mm: fix unused and uninitialized variable warning
Ryan Roberts (9): [Backport] arm64/mm: export contpte symbols only to GPL users [Backport] arm64/mm: improve comment in contpte_ptep_get_lockless() [Backport] mm: swap: remove CLUSTER_FLAG_HUGE from swap_cluster_info:flags [Backport] mm: swap: free_swap_and_cache_nr() as batched free_swap_and_cache() [Backport] mm: swap: simplify struct percpu_cluster [Backport] mm: swap: update get_swap_pages() to take folio order [Backport] mm: swap: allow storage of all mTHP orders [Backport] mm: vmscan: avoid split during shrink_folio_list() [Backport] mm: madvise: avoid split during MADV_PAGEOUT and MADV_COLD
Sergey Senozhatsky (1): [Backport] mm/madvise: don't forget to leave lazy MMU mode in madvise_cold_or_pageout_pte_range()
Shakeel Butt (1): [Backport] mm: ratelimit stat flush from workingset shrinker
Yong Wang (1): [Backport] mm, oom:dump_tasks add rss detailed information printing
Zi Yan (9): [Backport] mm/huge_memory: only split PMD mapping when necessary in unmap_folio() [Backport] mm/memcg: use order instead of nr in split_page_memcg() [Backport] mm/page_owner: use order instead of nr in split_page_owner() [Backport] mm: memcg: make memcg huge page split support any order split [Backport] mm: page_owner: add support for splitting to any order in split page_owner [Backport] mm: thp: split huge page to any lower order pages [Backport] mm: huge_memory: enable debugfs to split huge pages to any order [Backport] mm/huge_memory: check new folio order when split a folio [Backport] mm/migrate: split source folio if it is on deferred split list
arch/arm64/include/asm/pgtable.h | 19 +- arch/arm64/mm/contpte.c | 46 +-- arch/arm64/mm/mteswap.c | 45 +++ fs/proc/etmem_swap.c | 2 +- include/linux/huge_mm.h | 31 +- include/linux/memcontrol.h | 4 +- include/linux/mm.h | 48 ++- include/linux/page_owner.h | 14 +- include/linux/pgtable.h | 61 +++- include/linux/swap.h | 40 ++- lib/test_xarray.c | 14 +- lib/xarray.c | 23 +- mm/damon/paddr.c | 2 +- mm/etmem.c | 2 +- mm/filemap.c | 16 +- mm/huge_memory.c | 206 ++++++++--- mm/internal.h | 93 ++++- mm/madvise.c | 123 ++++--- mm/memcontrol.c | 10 +- mm/memory.c | 100 ++++-- mm/mempolicy.c | 14 +- mm/migrate.c | 31 +- mm/mprotect.c | 3 +- mm/oom_kill.c | 7 +- mm/page_alloc.c | 16 +- mm/page_io.c | 2 +- mm/page_owner.c | 6 +- mm/readahead.c | 15 +- mm/shmem.c | 2 +- mm/swap_slots.c | 8 +- mm/swap_state.c | 8 +- mm/swapfile.c | 331 ++++++++++-------- mm/vmalloc.c | 2 +- mm/vmscan.c | 46 ++- mm/vmstat.c | 4 +- mm/workingset.c | 2 +- tools/testing/selftests/mm/run_vmtests.sh | 22 +- .../selftests/mm/split_huge_page_test.c | 323 ++++++++++++----- 38 files changed, 1207 insertions(+), 534 deletions(-)