[GIT PULL] MM updates for 6.6-rc1

From: Andrew Morton
Date: Mon Aug 28 2023 - 21:44:06 EST



Linus, please merge the MM updates for this cycle,

I'm seeing one conflict at present, in arch/parisc/mm/ioremap.c.
Stephen resolved this by simply taking the mm.git version
(https://lkml.kernel.org/r/20230815100440.7e535779@xxxxxxxxxxxxxxxx).


Forthcoming build issues (not flagged by a merging error):

tip tree, arch/powerpc/include/asm/book3s/64/pgtable.h:
https://lkml.kernel.org/r/20230815152951.4516ec0a@xxxxxxxxxxxxxxxx


There are rather a lot of forthcoming merging issues, mainly trivial
stuff because some patches in here do a lot of Kconfig alteration.
These include:


parisc-hd tree, arch/parisc/kernel/smp.c:
https://lkml.kernel.org/r/20230628102248.742b79e1@xxxxxxxxxxxxxxxx

cgroup tree, tools/testing/selftests/cgroup/.gitignore,
tools/testing/selftests/cgroup/Makefile:
https://lkml.kernel.org/r/20230711110734.7009339b@xxxxxxxxxxxxxxxx

vfs-brauner tree, include/linux/shmem_fs.h:
https://lkml.kernel.org/r/20230714100205.35b99670@xxxxxxxxxxxxxxxx

vfs-brauner tree, mm/shmem.c:
https://lkml.kernel.org/r/20230714102453.4399f059@xxxxxxxxxxxxxxxx

s390 tree, arch/s390/Kconfig:
https://lkml.kernel.org/r/20230725094013.2dfb0168@xxxxxxxxxxxxxxxx and
https://lkml.kernel.org/r/20230731093724.1c75858d@xxxxxxxxxxxxxxxx

csky tree, arch/csky/abiv2/cacheflush.c:
https://lkml.kernel.org/r/20230815104604.54f65293@xxxxxxxxxxxxxxxx

hid tree, .mailmap:
https://lkml.kernel.org/r/20230815115325.0d20b960@xxxxxxxxxxxxxxxx

tip tree, arch/s390/Kconfig:
https://lkml.kernel.org/r/20230815141929.0c162def@xxxxxxxxxxxxxxxx

arc-current tree, arch/arc/Kconfig:
https://lkml.kernel.org/r/20230822082841.7948474d@xxxxxxxxxxxxxxxx and
https://lkml.kernel.org/r/20230822082841.7948474d@xxxxxxxxxxxxxxxx

powerpc tree, arch/powerpc/Kconfig:
https://lkml.kernel.org/r/20230822101615.046f0c32@xxxxxxxxxxxxxxxx and
https://lkml.kernel.org/r/20230822101615.046f0c32@xxxxxxxxxxxxxxxx

nolibc tree, tools/include/nolibc/stdio.h:
https://lkml.kernel.org/r/20230817133053.76d9f850@xxxxxxxxxxxxxxxx

openrisc tree, arch/openrisc/mm/ioremap.c:
https://lkml.kernel.org/r/20230825094405.22d29abf@xxxxxxxxxxxxxxxx



Thanks.



The following changes since commit e5548f85b4527c4c803b7eae7887c10bf8f90c97:

shmem: fix smaps BUG sleeping while atomic (2023-08-24 14:59:47 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2023-08-28-18-26

for you to fetch changes up to 52ae298e3e5c9be5bb95e1c6d9199e5210f2a156:

maple_tree: shrink struct maple_tree (2023-08-24 16:20:32 -0700)

----------------------------------------------------------------
- Some swap cleanups from Ma Wupeng ("fix WARN_ON in add_to_avail_list")

- Peter Xu has a series (mm/gup: Unify hugetlb, speed up thp") which
reduces the special-case code for handling hugetlb pages in GUP. It
also speeds up GUP handling of transparent hugepages.

- Peng Zhang provides some maple tree speedups ("Optimize the fast path
of mas_store()").

- Sergey Senozhatsky has improved te performance of zsmalloc during
compaction (zsmalloc: small compaction improvements").

- Domenico Cerasuolo has developed additional selftest code for zswap
("selftests: cgroup: add zswap test program").

- xu xin has doe some work on KSM's handling of zero pages. These
changes are mainly to enable the user to better understand the
effectiveness of KSM's treatment of zero pages ("ksm: support tracking
KSM-placed zero-pages").

- Jeff Xu has fixes the behaviour of memfd's
MEMFD_NOEXEC_SCOPE_NOEXEC_ENFORCED sysctl ("mm/memfd: fix sysctl
MEMFD_NOEXEC_SCOPE_NOEXEC_ENFORCED").

- David Howells has fixed an fscache optimization ("mm, netfs, fscache:
Stop read optimisation when folio removed from pagecache").

- Axel Rasmussen has given userfaultfd the ability to simulate memory
poisoning ("add UFFDIO_POISON to simulate memory poisoning with UFFD").

- Miaohe Lin has contributed some routine maintenance work on the
memory-failure code ("mm: memory-failure: remove unneeded PageHuge()
check").

- Peng Zhang has contributed some maintenance work on the maple tree
code ("Improve the validation for maple tree and some cleanup").

- Hugh Dickins has optimized the collapsing of shmem or file pages into
THPs ("mm: free retracted page table by RCU").

- Jiaqi Yan has a patch series which permits us to use the healthy
subpages within a hardware poisoned huge page for general purposes
("Improve hugetlbfs read on HWPOISON hugepages").

- Kemeng Shi has done some maintenance work on the pagetable-check code
("Remove unused parameters in page_table_check").

- More folioification work from Matthew Wilcox ("More filesystem folio
conversions for 6.6"), ("Followup folio conversions for zswap"). And
from ZhangPeng ("Convert several functions in page_io.c to use a
folio").

- page_ext cleanups from Kemeng Shi ("minor cleanups for page_ext").

- Baoquan He has converted some architectures to use the GENERIC_IOREMAP
ioremap()/iounmap() code ("mm: ioremap: Convert architectures to take
GENERIC_IOREMAP way").

- Anshuman Khandual has optimized arm64 tlb shootdown ("arm64: support
batched/deferred tlb shootdown during page reclamation/migration").

- Better maple tree lockdep checking from Liam Howlett ("More strict
maple tree lockdep"). Liam also developed some efficiency improvements
("Reduce preallocations for maple tree").

- Cleanup and optimization to the secondary IOMMU TLB invalidation, from
Alistair Popple ("Invalidate secondary IOMMU TLB on permission
upgrade").

- Ryan Roberts fixes some arm64 MM selftest issues ("selftests/mm fixes
for arm64").

- Kemeng Shi provides some maintenance work on the compaction code ("Two
minor cleanups for compaction").

- Some reduction in mmap_lock pressure from Matthew Wilcox ("Handle most
file-backed faults under the VMA lock").

- Aneesh Kumar contributes code to use the vmemmap optimization for DAX
on ppc64, under some circumstances ("Add support for DAX vmemmap
optimization for ppc64").

- page-ext cleanups from Kemeng Shi ("add page_ext_data to get client
data in page_ext"), ("minor cleanups to page_ext header").

- Some zswap cleanups from Johannes Weiner ("mm: zswap: three
cleanups").

- kmsan cleanups from ZhangPeng ("minor cleanups for kmsan").

- VMA handling cleanups from Kefeng Wang ("mm: convert to
vma_is_initial_heap/stack()").

- DAMON feature work from SeongJae Park ("mm/damon/sysfs-schemes:
implement DAMOS tried total bytes file"), ("Extend DAMOS filters for
address ranges and DAMON monitoring targets").

- Compaction work from Kemeng Shi ("Fixes and cleanups to compaction").

- Liam Howlett has improved the maple tree node replacement code
("maple_tree: Change replacement strategy").

- ZhangPeng has a general code cleanup - use the K() macro more widely
("cleanup with helper macro K()").

- Aneesh Kumar brings memmap-on-memory to ppc64 ("Add support for memmap
on memory feature on ppc64").

- pagealloc cleanups from Kemeng Shi ("Two minor cleanups for pcp list
in page_alloc"), ("Two minor cleanups for get pageblock migratetype").

- Vishal Moola introduces a memory descriptor for page table tracking,
"struct ptdesc" ("Split ptdesc from struct page").

- memfd selftest maintenance work from Aleksa Sarai ("memfd: cleanups
for vm.memfd_noexec").

- MM include file rationalization from Hugh Dickins ("arch: include
asm/cacheflush.h in asm/hugetlb.h").

- THP debug output fixes from Hugh Dickins ("mm,thp: fix sloppy text
output").

- kmemleak improvements from Xiaolei Wang ("mm/kmemleak: use
object_cache instead of kmemleak_initialized").

- More folio-related cleanups from Matthew Wilcox ("Remove _folio_dtor
and _folio_order").

- A VMA locking scalability improvement from Suren Baghdasaryan
("Per-VMA lock support for swap and userfaults").

- pagetable handling cleanups from Matthew Wilcox ("New page table range
API").

- A batch of swap/thp cleanups from David Hildenbrand ("mm/swap: stop
using page->private on tail pages for THP_SWAP + cleanups").

- Cleanups and speedups to the hugetlb fault handling from Matthew
Wilcox ("Change calling convention for ->huge_fault").

- Matthew Wilcox has also done some maintenance work on the MM subsystem
documentation ("Improve mm documentation").

----------------------------------------------------------------
Aleksa Sarai (5):
selftests: memfd: error out test process when child test fails
memfd: do not -EACCES old memfd_create() users with vm.memfd_noexec=2
memfd: improve userspace warnings for missing exec-related flags
memfd: replace ratcheting feature from vm.memfd_noexec with hierarchy
selftests: improve vm.memfd_noexec sysctl tests

Alistair Popple (5):
arm64/smmu: use TLBI ASID when invalidating entire range
mmu_notifiers: fixup comment in mmu_interval_read_begin()
mmu_notifiers: call invalidate_range() when invalidating TLBs
mmu_notifiers: don't invalidate secondary TLBs as part of mmu_notifier_invalidate_range_end()
mmu_notifiers: rename invalidate_range notifier

Andrew Donnellan (1):
lib/test_meminit: allocate pages up to order MAX_ORDER

Andrew Morton (3):
mm-make-pte_marker_swapin_error-more-general-fix
merge mm-hotfixes-stable into mm-stable to pick up depended-upon changes
merge mm-hotfixes-stable into mm-stable to pick up depended-upon changes

Andrew Yang (1):
fs: drop_caches: draining pages before dropping caches

Aneesh Kumar K.V (19):
mm/hugepage pud: allow arch-specific helper function to check huge page pud support
mm: change pudp_huge_get_and_clear_full take vm_area_struct as arg
mm/vmemmap: improve vmemmap_can_optimize and allow architectures to override
mm/vmemmap: allow architectures to override how vmemmap optimization works
mm: add pud_same similar to __HAVE_ARCH_P4D_SAME
mm/huge pud: use transparent huge pud helpers only with CONFIG_TRANSPARENT_HUGEPAGE
mm/vmemmap optimization: split hugetlb and devdax vmemmap optimization
powerpc/mm/trace: convert trace event to trace event class
powerpc/book3s64/mm: enable transparent pud hugepage
powerpc/book3s64/vmemmap: switch radix to use a different vmemmap handling function
powerpc/book3s64/radix: add support for vmemmap optimization for radix
powerpc/book3s64/radix: remove mmu_vmemmap_psize
powerpc/book3s64/radix: add debug message to give more details of vmemmap allocation
mm/memory_hotplug: simplify ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE kconfig
mm/memory_hotplug: allow memmap on memory hotplug request to fallback
mm/memory_hotplug: allow architecture to override memmap on memory support check
mm/memory_hotplug: support memmap_on_memory when memmap is not aligned to pageblocks
powerpc/book3s64/memhotplug: enable memmap on memory for radix
mm/memory_hotplug: embed vmem_altmap details in memory block

Anh Tuan Phan (1):
selftests/mm: fix WARNING comparing pointer to 0

Anshuman Khandual (1):
mm/tlbbatch: introduce arch_tlbbatch_should_defer()

Arnd Bergmann (1):
kernel/iomem.c: remove __weak ioremap_cache helper

Axel Rasmussen (8):
mm: make PTE_MARKER_SWAPIN_ERROR more general
mm: userfaultfd: check for start + len overflow in validate_range
mm: userfaultfd: extract file size check out into a helper
mm: userfaultfd: add new UFFDIO_POISON ioctl
mm: userfaultfd: support UFFDIO_POISON for hugetlbfs
mm: userfaultfd: document and enable new UFFDIO_POISON feature
selftests/mm: refactor uffd_poll_thread to allow custom fault handlers
selftests/mm: add uffd unit test for UFFDIO_POISON

Ayush Jain (1):
selftests: mm: add KSM_MERGE_TIME tests

Baolin Wang (2):
mm: compaction: use the correct type of list for free pages
mm: compaction: skip the memory hole rapidly when isolating free pages

Baoquan He (16):
asm-generic/iomap.h: remove ARCH_HAS_IOREMAP_xx macros
hexagon: mm: convert to GENERIC_IOREMAP
openrisc: mm: remove unneeded early ioremap code
mm: ioremap: allow ARCH to have its own ioremap method definition
mm/ioremap: add slab availability checking in ioremap_prot
arc: mm: convert to GENERIC_IOREMAP
ia64: mm: convert to GENERIC_IOREMAP
openrisc: mm: convert to GENERIC_IOREMAP
s390: mm: convert to GENERIC_IOREMAP
sh: add <asm-generic/io.h> including
sh: mm: convert to GENERIC_IOREMAP
xtensa: mm: convert to GENERIC_IOREMAP
parisc: mm: convert to GENERIC_IOREMAP
mm: move is_ioremap_addr() into new header file
arm64 : mm: add wrapper function ioremap_prot()
mm: ioremap: remove unneeded ioremap_allowed and iounmap_allowed

Barry Song (2):
mm/tlbbatch: rename and extend some functions
arm64: support batched/deferred tlb shootdown during page reclamation/migration

Bean Huo (2):
fs/buffer: clean up block_commit_write
fs: convert block_commit_write to return void

Charan Teja Kalla (2):
mm: madvise: fix uneven accounting of psi
Multi-gen LRU: skip CMA pages when they are not eligible

Christophe Leroy (3):
mm/ioremap: define generic_ioremap_prot() and generic_iounmap()
mm/ioremap: consider IOREMAP space in generic ioremap
powerpc: mm: convert to GENERIC_IOREMAP

David Hildenbrand (9):
mm/memory_hotplug: document the signal_pending() check in offline_pages()
kvm: explicitly set FOLL_HONOR_NUMA_FAULT in hva_to_pfn_slow()
mm/gup: don't implicitly set FOLL_HONOR_NUMA_FAULT
pgtable: improve pte_protnone() comment
selftest/mm: ksm_functional_tests: test in mmap_and_merge_range() if anything got merged
selftest/mm: ksm_functional_tests: Add PROT_NONE test
mm/swap: stop using page->private on tail pages for THP_SWAP
mm/swap: inline folio_set_swap_entry() and folio_swap_entry()
mm/huge_memory: work on folio->swap instead of page->private when splitting folio

David Howells (2):
mm: merge folio_has_private()/filemap_release_folio() call pairs
mm, netfs, fscache: stop read optimisation when folio removed from pagecache

Domenico Cerasuolo (3):
selftests: cgroup: add test_zswap program
selftests: cgroup: add test_zswap with no kmem bypass test
selftests: cgroup: add zswap-memcg unwanted writeback test

Efly Young (1):
mm:vmscan: fix inaccurate reclaim during proactive reclaim

Greg Kroah-Hartman (1):
mm: no need to export mm_kobj

Haibo Li (1):
mm/filemap.c: fix update prev_pos after one read request done

Haifeng Xu (2):
mm/mm_init.c: mark check_for_memory() as __init
mm/mm_init.c: drop node_start_pfn from adjust_zone_range_for_zone_movable()

Helge Deller (1):
nios2: fix flush_dcache_page() for usage from irq context

Hugh Dickins (21):
mm: userfaultfd: add new UFFDIO_POISON ioctl: fix
mm/pgtable: add rcu_read_lock() and rcu_read_unlock()s
mm/pgtable: add PAE safety to __pte_offset_map()
arm: adjust_pte() use pte_offset_map_nolock()
powerpc: assert_pte_locked() use pte_offset_map_nolock()
powerpc: add pte_free_defer() for pgtables sharing page
sparc: add pte_free_defer() for pte_t *pgtable_t
s390: add pte_free_defer() for pgtables sharing page
mm/pgtable: add pte_free_defer() for pgtable as page
mm/khugepaged: retract_page_tables() without mmap or vma lock
mm/khugepaged: collapse_pte_mapped_thp() with mmap_read_lock()
mm/khugepaged: delete khugepaged_collapse_pte_mapped_thps()
mm: delete mmap_write_trylock() and vma_try_start_write()
mm/pgtable: notes on pte_offset_map[_lock]()
arm: include asm/cacheflush.h in asm/hugetlb.h
arm64: include asm/cacheflush.h in asm/hugetlb.h
riscv: include asm/cacheflush.h in asm/hugetlb.h
mm,thp: no space after colon in Mem-Info fields
mm,thp: fix nodeN/meminfo output alignment
mm,thp: fix smaps THPeligible output alignment
mm/khugepaged: fix collapse_pte_mapped_thp() versus uffd

Jann Horn (2):
mm: don't drop VMA locks in mm_drop_all_locks()
mm: userfaultfd: remove stale comment about core dump locking

Jeff Xu (2):
mm/memfd: sysctl: fix MEMFD_NOEXEC_SCOPE_NOEXEC_ENFORCED
selftests/memfd: sysctl: fix MEMFD_NOEXEC_SCOPE_NOEXEC_ENFORCED

Jiaqi Yan (4):
mm/hwpoison: delete all entries before traversal in __folio_free_raw_hwp
mm/hwpoison: check if a raw page in a hugetlb folio is raw HWPOISON
hugetlbfs: improve read HWPOISON hugepage
selftests/mm: add tests for HWPOISON hugetlbfs read

Jinliang Zheng (1):
writeback: remove redundant checks for root memcg

Johannes Weiner (4):
mm: kill frontswap
mm: zswap: use zswap_invalidate_entry() for duplicates
mm: zswap: tighten up entry invalidation
mm: zswap: kill zswap_get_swap_cache_page()

Kalesh Singh (3):
Multi-gen LRU: fix per-zone reclaim
Multi-gen LRU: avoid race in inc_min_seq()
Multi-gen LRU: fix can_swap in lru_gen_look_around()

Kefeng Wang (10):
mm: remove arguments of show_mem()
mm: make show_free_areas() static
mm: factor out VMA stack and heap checks
drm/amdkfd: use vma_is_initial_stack() and vma_is_initial_heap()
selinux: use vma_is_initial_stack() and vma_is_initial_heap()
perf/core: use vma_is_initial_stack() and vma_is_initial_heap()
mm: hugetlb: use flush_hugetlb_tlb_range() in move_hugetlb_page_tables()
arm64: hugetlb: enable __HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE
mm: memtest: convert to memtest_report_meminfo()
pagemap: remove wait_on_page_locked_killable()

Kemeng Shi (37):
mm: correct stale comment of function check_pte
mm/page_table_check: remove unused parameters in page_table_check_clear()
mm/page_table_check: remove unused parameters in page_table_check_set()
mm/page_table_check: remove unused parameter in [__]page_table_check_pte_clear
mm/page_table_check: remove unused parameter in [__]page_table_check_pmd_clear
mm/page_table_check: remove unused parameter in [__]page_table_check_pud_clear
mm/page_table_check: remove unused parameter in [__]page_table_check_pte_set
mm/page_table_check: remove unused parameter in [__]page_table_check_pmd_set
mm/page_table_check: remove unused parameter in [__]page_table_check_pud_set
mm/page_ext: remove unused return value of offline_page_ext
mm/page_ext: remove rollback for untouched mem_section in online_page_ext
mm/page_ext: move functions around for minor cleanups to page_ext
mm/rmap: correct stale comment of rmap_walk_anon and rmap_walk_file
mm/compaction: correct comment of candidate pfn in fast_isolate_freepages
mm/compaction: avoid unneeded pageblock_end_pfn when no_set_skip_hint is set
mm/page_ext: add common function to get client data from page_ext
mm/page_ext: use page_ext_data helper in page_table_check
mm/page_ext: use page_ext_data helper in page_owner
mm/page_poison: remove unused page_ext.h from page_poison
mm/vmstat: remove unused page_ext.h from vmstat
mm/page_ext: move page_ext_operations definition under CONFIG_PAGE_EXTENSION
mm/compaction: set compact_cached_free_pfn correctly in update_pageblock_skip
mm/compaction: merge end_pfn boundary check in isolate_freepages_range
mm/compaction: remove unnecessary cursor page in isolate_freepages_block
mm/compaction: remove unnecessary "else continue" at end of loop in isolate_freepages_block
mm/compaction: correct last_migrated_pfn update in compact_zone
mm/compaction: skip page block marked skip in isolate_migratepages_block
mm/compaction: correct comment of fast_find_migrateblock in isolate_migratepages
mm/compaction: correct comment of cached migrate pfn update
mm/compaction: correct comment to complete migration failure
mm/compaction: remove unnecessary return for void function
mm/compaction: only set skip flag if cc->no_set_skip_hint is false
mm/page_alloc: remove track of active PCP lists range in bulk free
mm/page_alloc: remove unnecessary parameter batch of nr_pcp_free
mm/compaction: remove unused parameter pgdata of fragmentation_score_wmark
mm/page_alloc: remove unnecessary inner __get_pfnblock_flags_mask
mm/page_alloc: use get_pfnblock_migratetype to avoid extra page_to_pfn

Levi Yun (1):
damon: use pmdp_get instead of drectly dereferencing pmd

Liam R. Howlett (26):
mm/mmap: clean up validate_mm() calls
maple_tree: relax lockdep checks for on-stack trees
mm/mmap: change detached vma locking scheme
maple_tree: Be more strict about locking
maple_tree: add benchmarking for mas_for_each
maple_tree: add benchmarking for mas_prev()
mm: change do_vmi_align_munmap() tracking of VMAs to remove
mm: remove prev check from do_vmi_align_munmap()
maple_tree: introduce __mas_set_range()
mm: remove re-walk from mmap_region()
maple_tree: re-introduce entry to mas_preallocate() arguments
maple_tree: adjust node allocation on mas_rebalance()
mm: use vma_iter_clear_gfp() in nommu
mm: set up vma iterator for vma_iter_prealloc() calls
maple_tree: move mas_wr_end_piv() below mas_wr_extend_null()
maple_tree: update mas_preallocate() testing
maple_tree: refine mas_preallocate() node calculations
maple_tree: reduce resets during store setup
mm/mmap: change vma iteration order in do_vmi_align_munmap()
maple_tree: add hex output to maple_arange64 dump
maple_tree: reorder replacement of nodes to avoid live lock
maple_tree: introduce mas_put_in_tree()
maple_tree: introduce mas_tree_parent() definition
maple_tree: change mas_adopt_children() parent usage
maple_tree: replace data before marking dead in split and spanning store
maple_tree: clean up mas_wr_append()

Lu Jialin (1):
memcg: remove duplication detection for mem_cgroup_uncharge_swap

Lucas Karpinski (1):
selftests: cgroup: fix test_kmem_memcg_deletion kernel mem check

Ma Wupeng (3):
swap: cleanup duplicated WARN_ON in add_to_avail_list
swap: stop add to avail list if swap is full
mm: disable kernelcore=mirror when no mirror memory

Mateusz Guzik (2):
mm: move dummy_vm_ops out of a header
maple_tree: shrink struct maple_tree

Matthew Wilcox (3):
mm: improve the comment in isolate_migratepages_block()
mm/memory.c: fix mismerge
mm/swap: use dedicated entry for swap in folio

Matthew Wilcox (Oracle) (80):
rmap: pass the folio to __page_check_anon_rmap()
highmem: add memcpy_to_folio() and memcpy_from_folio()
affs: convert affs_symlink_read_folio() to use the folio
affs: convert data read and write to use folios
migrate: use folio_set_bh() instead of set_bh_page()
ntfs3: convert ntfs_get_block_vbo() to use a folio
jbd2: use a folio in jbd2_journal_write_metadata_buffer()
buffer: remove set_bh_page()
mm: remove CONFIG_PER_VMA_LOCK ifdefs
mm: allow per-VMA locks on file-backed VMAs
mm: move FAULT_FLAG_VMA_LOCK check from handle_mm_fault()
mm: handle PUD faults under the VMA lock
mm: handle some PMD faults under the VMA lock
mm: move FAULT_FLAG_VMA_LOCK check down in handle_pte_fault()
mm: move FAULT_FLAG_VMA_LOCK check down from do_fault()
mm: run the fault-around code under the VMA lock
mm: handle swap and NUMA PTE faults under the VMA lock
mm: handle faults that merely update the accessed bit under the VMA lock
zswap: make zswap_store() take a folio
memcg: convert get_obj_cgroup_from_page to get_obj_cgroup_from_folio
swap: remove some calls to compound_head() in swap_readpage()
zswap: make zswap_load() take a folio
mm: allow fault_dirty_shared_page() to be called under the VMA lock
io_uring: stop calling free_compound_page()
mm: call free_huge_page() directly
mm: convert free_huge_page() to free_huge_folio()
mm: convert free_transhuge_folio() to folio_undo_large_rmappable()
mm: convert prep_transhuge_page() to folio_prep_large_rmappable()
mm: remove free_compound_page() and the compound_page_dtors array
mm: remove HUGETLB_PAGE_DTOR
mm: add large_rmappable page flag
mm: rearrange page flags
mm: free up a word in the first tail page
mm: remove folio_test_transhuge()
mm: add tail private fields to struct folio
mm: convert split_huge_pages_pid() to use a folio
minmax: add in_range() macro
mm: convert page_table_check_pte_set() to page_table_check_ptes_set()
mm: add generic flush_icache_pages() and documentation
mm: add folio_flush_mapping()
mm: remove ARCH_IMPLEMENTS_FLUSH_DCACHE_FOLIO
mm: add default definition of set_ptes()
alpha: implement the new page table range API
arc: implement the new page table range API
arm: implement the new page table range API
arm64: implement the new page table range API
csky: implement the new page table range API
hexagon: implement the new page table range API
ia64: implement the new page table range API
loongarch: implement the new page table range API
m68k: implement the new page table range API
microblaze: implement the new page table range API
mips: implement the new page table range API
nios2: implement the new page table range API
openrisc: implement the new page table range API
parisc: implement the new page table range API
powerpc: implement the new page table range API
riscv: implement the new page table range API
s390: implement the new page table range API
sh: implement the new page table range API
sparc32: implement the new page table range API
sparc64: implement the new page table range API
um: implement the new page table range API
x86: implement the new page table range API
xtensa: implement the new page table range API
mm: remove page_mapping_file()
mm: rationalise flush_icache_pages() and flush_icache_page()
mm: tidy up set_ptes definition
mm: use flush_icache_pages() in do_set_pmd()
mm: call update_mmu_cache_range() in more page fault handling paths
mm: remove checks for pte_index
mm: move PMD_ORDER to pgtable.h
mm: allow ->huge_fault() to be called without the mmap_lock held
mm: remove enum page_entry_size
mm: fix kernel-doc warning from tlb_flush_rmaps()
mm: fix get_mctgt_type() kernel-doc
mm: fix clean_record_shared_mapping_range kernel-doc
mm: add orphaned kernel-doc to the rst files.
hugetlb: add documentation for vma_kernel_pagesize()
secretmem: convert page_is_secretmem() to folio_is_secretmem()

Miaohe Lin (31):
mm/mm_init.c: update obsolete comment in get_pfn_range_for_nid()
mm: memory-failure: remove unneeded page state check in shake_page()
memory tier: use helper function destroy_memory_type()
mm: memory-failure: remove unneeded 'inline' annotation
mm/mm_init.c: remove obsolete macro HASH_SMALL
mm: page_alloc: avoid false page outside zone error info
memory tier: rename destroy_memory_type() to put_memory_type()
mm: remove obsolete comment above struct per_cpu_pages
mm/memcg: minor cleanup for MEM_CGROUP_ID_MAX
mm: memory-failure: remove unneeded PageHuge() check
mm: memory-failure: ensure moving HWPoison flag to the raw error pages
mm: memory-failure: don't account hwpoison_filter() filtered pages
mm: memory-failure: use local variable huge to check hugetlb page
mm: memory-failure: remove unneeded header files
mm: memory-failure: minor cleanup for comments and codestyle
mm: memory-failure: fetch compound head after extra page refcnt is held
mm: memory-failure: fix race window when trying to get hugetlb folio
mm/huge_memory: use RMAP_NONE when calling page_add_anon_rmap()
mm/memcg: fix obsolete comment above MEM_CGROUP_MAX_RECLAIM_LOOPS
mm/memcg: minor cleanup for mc_handle_present_pte()
memory tier: use helper macro __ATTR_RW()
mm: fix obsolete function name above debug_pagealloc_enabled_static()
mm/mprotect: fix obsolete function name in change_pte_range()
mm/memcg: fix obsolete function name in mem_cgroup_protection()
mm/page_alloc: avoid unneeded alike_pages calculation
mm/memcg: update obsolete comment above parent_mem_cgroup()
mm/page_alloc: remove unneeded variable base
mm/memcg: fix wrong function name above obj_cgroup_charge_zswap()
mm: memory-failure: use helper macro llist_for_each_entry_safe()
mm/mm_init: use helper macro BITS_PER_LONG and BITS_PER_BYTE
mm: memory-failure: fix potential page refcnt leak in memory_failure()

Michal Hocko (1):
memcg: drop kmem.limit_in_bytes

Mika Penttilä (1):
mm/migrate_device: try to handle swapcache pages

Mike Kravetz (1):
hugetlb: clear flags in tail pages that will be freed individually

Mike Rapoport (IBM) (2):
maple_tree: mtree_insert*: fix typo in kernel-doc description
maple_tree: mtree_insert: fix typo in kernel-doc description of GFP flags

Minchan Kim (1):
zsmalloc: remove zs_compact_control

Muchun Song (1):
mm: hugetlb_vmemmap: fix a race between vmemmap pmd split

Peng Zhang (12):
maple_tree: add test for mas_wr_modify() fast path
maple_tree: add test for expanding range in RCU mode
maple_tree: optimize mas_wr_append(), also improve duplicating VMAs
maple_tree: add a fast path case in mas_wr_slot_store()
maple_tree: don't use MAPLE_ARANGE64_META_MAX to indicate no gap
maple_tree: make mas_validate_gaps() to check metadata
maple_tree: fix mas_validate_child_slot() to check last missed slot
maple_tree: make mas_validate_limits() check root node and node limit
maple_tree: update mt_validate()
maple_tree: replace mas_logical_pivot() with mas_safe_pivot()
maple_tree: drop mas_first_entry()
mm: kfence: allocate kfence_metadata at runtime

Peter Collingbourne (2):
mm: call arch_swap_restore() from unuse_pte()
arm64: mte: simplify swap tag restoration logic

Peter Xu (8):
mm/hugetlb: handle FOLL_DUMP well in follow_page_mask()
mm/hugetlb: prepare hugetlb_follow_page_mask() for FOLL_PIN
mm/hugetlb: add page_mask for hugetlb_follow_page_mask()
mm/gup: cleanup next_page handling
mm/gup: accelerate thp gup even for "pages != NULL"
mm/gup: retire follow_hugetlb_page()
selftests/mm: add -a to run_vmtests.sh
selftests/mm: add gup test matrix in run_vmtests.sh

Pintu Kumar (1):
mm: cma: print cma name as well in cma_alloc debug

Qi Zheng (1):
arm64: mm: use ptep_clear() instead of pte_clear() in clear_flush()

Randy Dunlap (1):
HWPOISON: offline support: fix spelling in Documentation/ABI/

Rong Tao (1):
selftests/mm: fix uffd-stress help information

Ruan Jinjie (1):
mm/z3fold: use helper function put_z3fold_locked() and put_z3fold_locked_list()

Ryan Roberts (8):
selftests: line buffer test program's stdout
selftests/mm: skip soft-dirty tests on arm64
selftests/mm: enable mrelease_test for arm64
selftests/mm: fix thuge-gen test bugs
selftests/mm: va_high_addr_switch should skip unsupported arm64 configs
selftests/mm: make migration test robust to failure
selftests/mm: optionally pass duration to transhuge-stress
selftests/mm: run all tests from run_vmtests.sh

Sebastian Andrzej Siewior (1):
mm/page_alloc: use write_seqlock_irqsave() instead write_seqlock() + local_irq_save().

SeongJae Park (19):
mm/damon/core-test: add a test for damos_new_filter()
mm/damon/sysfs-schemes: implement DAMOS tried total bytes file
mm/damon/sysfs: implement a command for updating only schemes tried total bytes
selftests/damon/sysfs: test tried_regions/total_bytes file
Docs/ABI/damon: update for tried_regions/total_bytes
Docs/admin-guide/mm/damon/usage: update for tried_regions/total_bytes
mm/damon/core: introduce address range type damos filter
mm/damon/sysfs-schemes: support address range type DAMOS filter
mm/damon/core-test: add a unit test for __damos_filter_out()
selftests/damon/sysfs: test address range damos filter
Docs/mm/damon/design: update for address range filters
Docs/ABI/damon: update for address range DAMOS filter
Docs/admin-guide/mm/damon/usage: update for address range type DAMOS filter
mm/damon/core: implement target type damos filter
mm/damon/sysfs-schemes: support target damos filter
selftests/damon/sysfs: test damon_target filter
Docs/mm/damon/design: update for DAMON monitoring target type DAMOS filter
Docs/ABI/damon: update for DAMON monitoring target type DAMOS filter
Docs/admin-guide/mm/damon/usage: update for DAMON monitoring target type DAMOS filter

Sergey Senozhatsky (3):
zsmalloc: do not scan for allocated objects in empty zspage
zsmalloc: move migration destination zspage inuse check
zsmalloc: remove obj_tagged()

Sidhartha Kumar (7):
mm: increase usage of folio_next_index() helper
mm/memory: convert do_page_mkwrite() to use folios
mm/memory: convert wp_page_shared() to use folios
mm/memory: convert do_shared_fault() to folios
mm/memory: convert do_read_fault() to use folios
mm/memory: pass folio into do_page_mkwrite()
mm/hugetlb: get rid of page_hstate()

Stefan Roesch (1):
mm/ksm: add pages scanned metric

Suren Baghdasaryan (11):
mm: for !CONFIG_PER_VMA_LOCK equate write lock assertion for vma and mmap
mm: replace mmap with vma write lock assertions when operating on a vma
mm: lock vma explicitly before doing vm_flags_reset and vm_flags_reset_once
mm: always lock new vma before inserting into vma tree
mm: move vma locking out of vma_prepare and dup_anon_vma
swap: remove remnants of polling from read_swap_cache_async
mm: add missing VM_FAULT_RESULT_TRACE name for VM_FAULT_COMPLETED
mm: drop per-VMA lock when returning VM_FAULT_RETRY or VM_FAULT_COMPLETED
mm: change folio_lock_or_retry to use vm_fault directly
mm: handle swap page faults under per-VMA lock
mm: handle userfaults under VMA lock

Thomas Gleixner (1):
maple_tree: fix a few documentation issues

Thomas Weißschuh (1):
mm: make MEMFD_CREATE into a selectable config option

Vishal Moola (Oracle) (31):
mm: add PAGE_TYPE_OP folio functions
pgtable: create struct ptdesc
mm: add utility functions for ptdesc
mm: convert pmd_pgtable_page() callers to use pmd_ptdesc()
mm: convert ptlock_alloc() to use ptdescs
mm: convert ptlock_ptr() to use ptdescs
mm: convert pmd_ptlock_init() to use ptdescs
mm: convert ptlock_init() to use ptdescs
mm: convert pmd_ptlock_free() to use ptdescs
mm: convert ptlock_free() to use ptdescs
mm: create ptdesc equivalents for pgtable_{pte,pmd}_page_{ctor,dtor}
powerpc: convert various functions to use ptdescs
x86: convert various functions to use ptdescs
s390: convert various pgalloc functions to use ptdescs
mm: remove page table members from struct page
pgalloc: convert various functions to use ptdescs
arm: convert various functions to use ptdescs
arm64: convert various functions to use ptdescs
csky: convert __pte_free_tlb() to use ptdescs
hexagon: convert __pte_free_tlb() to use ptdescs
loongarch: convert various functions to use ptdescs
m68k: convert various functions to use ptdescs
mips: convert various functions to use ptdescs
nios2: convert __pte_free_tlb() to use ptdescs
openrisc: convert __pte_free_tlb() to use ptdescs
riscv: convert alloc_{pmd, pte}_late() to use ptdescs
sh: convert pte_free_tlb() to use ptdescs
sparc64: convert various functions to use ptdescs
sparc: convert pgtable_pte_page_{ctor, dtor}() to ptdesc equivalents
um: convert {pmd, pte}_free_tlb() to use ptdescs
mm: remove pgtable_{pmd, pte}_page_{ctor, dtor}() wrappers

Xiaolei Wang (2):
mm/kmemleak: use object_cache instead of kmemleak_initialized to check in set_track_prepare()
Rename kmemleak_initialized to kmemleak_late_initialized

Xiu Jianfeng (3):
mm: zswap: update comment for struct zswap_entry
mm/z3fold: remove obsolete comment for struct z3fold_pool
writeback: remove unused delaration of bdi_async_bio_wq

Xueshi Hu (1):
mm: remove clear_page_idle()

Yang Li (2):
mm: fix some kernel-doc comments
mm/memory.c: fix some kernel-doc comments

Yicong Yang (2):
mm/tlbbatch: introduce arch_flush_tlb_batched_pending()
arm64: tlbflush: add some comments for TLB batched flushing

Yin Fengwei (4):
filemap: add filemap_map_folio_range()
rmap: add folio_add_file_rmap_range()
mm: convert do_set_pte() to set_pte_range()
filemap: batch PTE mappings

Yosry Ahmed (2):
mm: zswap: multiple zpools support
mm: memcg: use rstat for non-hierarchical stats

Yu Ma (1):
mm/mmap: move vma operations to mm_struct out of the critical section of file mapping lock

ZhangPeng (24):
mm: use a folio in fault_dirty_shared_page()
mm: remove page_rmapping()
mm/page_io: remove unneeded ClearPageUptodate()
mm/page_io: remove unneeded SetPageError()
mm/page_io: introduce bio_first_folio_all()
mm/page_io: use a folio in __end_swap_bio_write()
mm/page_io: use a folio in __end_swap_bio_read()
mm/page_io: use a folio in sio_read_complete()
mm/page_io: use a folio in swap_writepage_bdev_sync()
mm/page_io: use a folio in swap_writepage_bdev_async()
mm/page_io: convert count_swpout_vm_event() to take in a folio
mm/page_io: convert bio_associate_blkg_from_page() to take in a folio
mm: kmsan: use helper function page_size()
mm: kmsan: use helper macro offset_in_page()
mm: kmsan: use helper macros PAGE_ALIGN and PAGE_ALIGN_DOWN
mm: remove redundant K() macro definition
mm/swapfile.c: use helper macro K()
mm/swap_state.c: use helper macro K()
mm/shmem.c: use helper macro K()
mm/nommu.c: use helper macro K()
mm/mmap.c: use helper macro K()
mm/hugetlb.c: use helper macro K()
mm: page_alloc: remove unused parameter from reserve_highatomic_pageblock()
mm/secretmem: use a folio in secretmem_fault()

Zhu, Lipeng (1):
fs/address_space: add alignment padding for i_map and i_mmap_rwsem to mitigate a false sharing.

liuq (2):
mm/page_alloc: fix min_free_kbytes calculation regarding ZONE_MOVABLE
mm/sparse: remove redundant judgments from macro for_each_present_section_nr

xu xin (5):
ksm: support unsharing KSM-placed zero pages
ksm: count all zero pages placed by KSM
ksm: add ksm zero pages for each process
ksm: consider KSM-placed zeropages when calculating KSM profit
selftest: add a testcase of ksm zero pages

Documentation/ABI/testing/sysfs-kernel-mm-damon | 40 +-
.../ABI/testing/sysfs-memory-page-offline | 4 +-
Documentation/admin-guide/cgroup-v1/memory.rst | 2 -
Documentation/admin-guide/kdump/vmcoreinfo.rst | 14 +-
Documentation/admin-guide/mm/damon/usage.rst | 76 +-
Documentation/admin-guide/mm/ksm.rst | 27 +-
Documentation/admin-guide/mm/memory-hotplug.rst | 14 +-
Documentation/admin-guide/mm/userfaultfd.rst | 15 +
Documentation/admin-guide/mm/zswap.rst | 14 +-
Documentation/block/biovecs.rst | 1 +
Documentation/core-api/cachetlb.rst | 55 +-
Documentation/core-api/mm-api.rst | 25 +
Documentation/features/vm/TLB/arch-support.txt | 2 +-
Documentation/filesystems/locking.rst | 38 +-
Documentation/filesystems/porting.rst | 11 +
Documentation/mm/damon/design.rst | 24 +-
Documentation/mm/frontswap.rst | 264 -----
Documentation/mm/highmem.rst | 1 +
Documentation/mm/hugetlbfs_reserv.rst | 14 +-
Documentation/mm/index.rst | 1 -
Documentation/mm/split_page_table_lock.rst | 12 +-
Documentation/mm/vmemmap_dedup.rst | 1 +
Documentation/mm/zsmalloc.rst | 5 +
Documentation/powerpc/index.rst | 1 +
Documentation/powerpc/vmemmap_dedup.rst | 101 ++
Documentation/translations/zh_CN/mm/frontswap.rst | 196 ----
.../translations/zh_CN/mm/hugetlbfs_reserv.rst | 4 +-
Documentation/translations/zh_CN/mm/index.rst | 1 -
.../zh_CN/mm/split_page_table_lock.rst | 14 +-
MAINTAINERS | 8 -
arch/alpha/include/asm/cacheflush.h | 13 +-
arch/alpha/include/asm/pgtable.h | 10 +-
arch/arc/Kconfig | 1 +
arch/arc/include/asm/cacheflush.h | 14 +-
arch/arc/include/asm/io.h | 7 +-
arch/arc/include/asm/pgtable-bits-arcv2.h | 12 +-
arch/arc/include/asm/pgtable-levels.h | 1 +
arch/arc/mm/cache.c | 61 +-
arch/arc/mm/ioremap.c | 49 +-
arch/arc/mm/tlb.c | 18 +-
arch/arm/include/asm/cacheflush.h | 29 +-
arch/arm/include/asm/hugetlb.h | 1 +
arch/arm/include/asm/pgtable.h | 5 +-
arch/arm/include/asm/tlb.h | 12 +-
arch/arm/include/asm/tlbflush.h | 14 +-
arch/arm/mm/copypage-v4mc.c | 5 +-
arch/arm/mm/copypage-v6.c | 5 +-
arch/arm/mm/copypage-xscale.c | 5 +-
arch/arm/mm/dma-mapping.c | 28 +-
arch/arm/mm/fault-armv.c | 19 +-
arch/arm/mm/flush.c | 99 +-
arch/arm/mm/mm.h | 2 +-
arch/arm/mm/mmu.c | 21 +-
arch/arm/mm/nommu.c | 6 +
arch/arm/mm/pageattr.c | 6 +-
arch/arm64/Kconfig | 5 +-
arch/arm64/include/asm/cacheflush.h | 4 +-
arch/arm64/include/asm/hugetlb.h | 16 +
arch/arm64/include/asm/io.h | 3 +-
arch/arm64/include/asm/mte.h | 4 +-
arch/arm64/include/asm/pgtable.h | 48 +-
arch/arm64/include/asm/tlb.h | 14 +-
arch/arm64/include/asm/tlbbatch.h | 12 +
arch/arm64/include/asm/tlbflush.h | 64 +-
arch/arm64/kernel/mte.c | 37 +-
arch/arm64/mm/fault.c | 5 +-
arch/arm64/mm/flush.c | 36 +-
arch/arm64/mm/hugetlbpage.c | 2 +-
arch/arm64/mm/ioremap.c | 10 +-
arch/arm64/mm/mmu.c | 7 +-
arch/arm64/mm/mteswap.c | 5 +-
arch/csky/abiv1/cacheflush.c | 32 +-
arch/csky/abiv1/inc/abi/cacheflush.h | 3 +-
arch/csky/abiv2/cacheflush.c | 32 +-
arch/csky/abiv2/inc/abi/cacheflush.h | 11 +-
arch/csky/include/asm/pgalloc.h | 4 +-
arch/csky/include/asm/pgtable.h | 8 +-
arch/hexagon/Kconfig | 1 +
arch/hexagon/include/asm/cacheflush.h | 10 +-
arch/hexagon/include/asm/io.h | 11 +-
arch/hexagon/include/asm/pgalloc.h | 8 +-
arch/hexagon/include/asm/pgtable.h | 9 +-
arch/hexagon/kernel/hexagon_ksyms.c | 2 -
arch/hexagon/mm/Makefile | 2 +-
arch/hexagon/mm/ioremap.c | 44 -
arch/ia64/Kconfig | 1 +
arch/ia64/hp/common/sba_iommu.c | 30 +-
arch/ia64/include/asm/cacheflush.h | 14 +-
arch/ia64/include/asm/io.h | 13 +-
arch/ia64/include/asm/pgtable.h | 4 +-
arch/ia64/mm/init.c | 32 +-
arch/ia64/mm/ioremap.c | 41 +-
arch/loongarch/Kconfig | 2 +-
arch/loongarch/include/asm/cacheflush.h | 1 -
arch/loongarch/include/asm/io.h | 2 -
arch/loongarch/include/asm/pgalloc.h | 27 +-
arch/loongarch/include/asm/pgtable-bits.h | 4 +-
arch/loongarch/include/asm/pgtable.h | 33 +-
arch/loongarch/mm/pgtable.c | 9 +-
arch/loongarch/mm/tlb.c | 2 +-
arch/m68k/include/asm/cacheflush_mm.h | 26 +-
arch/m68k/include/asm/io_mm.h | 2 -
arch/m68k/include/asm/kmap.h | 2 -
arch/m68k/include/asm/mcf_pgalloc.h | 47 +-
arch/m68k/include/asm/mcf_pgtable.h | 1 +
arch/m68k/include/asm/motorola_pgtable.h | 1 +
arch/m68k/include/asm/pgtable_mm.h | 10 +-
arch/m68k/include/asm/sun3_pgalloc.h | 8 +-
arch/m68k/include/asm/sun3_pgtable.h | 1 +
arch/m68k/mm/motorola.c | 6 +-
arch/microblaze/include/asm/cacheflush.h | 8 +
arch/microblaze/include/asm/pgtable.h | 15 +-
arch/microblaze/include/asm/tlbflush.h | 4 +-
arch/mips/bcm47xx/prom.c | 2 +-
arch/mips/include/asm/cacheflush.h | 32 +-
arch/mips/include/asm/io.h | 5 +-
arch/mips/include/asm/pgalloc.h | 32 +-
arch/mips/include/asm/pgtable-32.h | 10 +-
arch/mips/include/asm/pgtable-64.h | 6 +-
arch/mips/include/asm/pgtable-bits.h | 6 +-
arch/mips/include/asm/pgtable.h | 63 +-
arch/mips/mm/c-r4k.c | 5 +-
arch/mips/mm/cache.c | 56 +-
arch/mips/mm/init.c | 21 +-
arch/mips/mm/pgtable-32.c | 2 +-
arch/mips/mm/pgtable-64.c | 2 +-
arch/mips/mm/pgtable.c | 8 +-
arch/mips/mm/tlbex.c | 2 +-
arch/nios2/include/asm/cacheflush.h | 10 +-
arch/nios2/include/asm/pgalloc.h | 8 +-
arch/nios2/include/asm/pgtable.h | 28 +-
arch/nios2/mm/cacheflush.c | 84 +-
arch/openrisc/Kconfig | 1 +
arch/openrisc/include/asm/cacheflush.h | 8 +-
arch/openrisc/include/asm/io.h | 11 +-
arch/openrisc/include/asm/pgalloc.h | 8 +-
arch/openrisc/include/asm/pgtable.h | 15 +-
arch/openrisc/mm/cache.c | 12 +-
arch/openrisc/mm/ioremap.c | 82 --
arch/parisc/Kconfig | 1 +
arch/parisc/include/asm/cacheflush.h | 14 +-
arch/parisc/include/asm/io.h | 15 +-
arch/parisc/include/asm/pgtable.h | 37 +-
arch/parisc/kernel/cache.c | 107 +-
arch/parisc/mm/ioremap.c | 62 +-
arch/powerpc/Kconfig | 3 +
arch/powerpc/include/asm/book3s/32/pgtable.h | 5 -
arch/powerpc/include/asm/book3s/64/hash.h | 9 +
arch/powerpc/include/asm/book3s/64/pgtable.h | 161 ++-
arch/powerpc/include/asm/book3s/64/radix.h | 49 +
.../powerpc/include/asm/book3s/64/tlbflush-radix.h | 2 +
arch/powerpc/include/asm/book3s/64/tlbflush.h | 9 +
arch/powerpc/include/asm/book3s/pgtable.h | 11 +-
arch/powerpc/include/asm/cacheflush.h | 14 +-
arch/powerpc/include/asm/io.h | 17 +-
arch/powerpc/include/asm/kvm_ppc.h | 10 +-
arch/powerpc/include/asm/nohash/pgtable.h | 16 +-
arch/powerpc/include/asm/pgalloc.h | 4 +
arch/powerpc/include/asm/pgtable.h | 39 +-
arch/powerpc/kvm/book3s_hv_uvmem.c | 1 +
arch/powerpc/mm/book3s64/hash_pgtable.c | 2 +-
arch/powerpc/mm/book3s64/hash_utils.c | 11 +-
arch/powerpc/mm/book3s64/mmu_context.c | 10 +-
arch/powerpc/mm/book3s64/pgtable.c | 110 +-
arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 1 +
arch/powerpc/mm/book3s64/radix_pgtable.c | 574 +++++++++-
arch/powerpc/mm/book3s64/radix_tlb.c | 11 +
arch/powerpc/mm/cacheflush.c | 41 +-
arch/powerpc/mm/fault.c | 7 +-
arch/powerpc/mm/init_64.c | 37 +-
arch/powerpc/mm/ioremap.c | 26 +-
arch/powerpc/mm/ioremap_32.c | 19 +-
arch/powerpc/mm/ioremap_64.c | 12 +-
arch/powerpc/mm/nohash/e500_hugetlbpage.c | 3 +-
arch/powerpc/mm/pgtable-frag.c | 73 +-
arch/powerpc/mm/pgtable.c | 61 +-
arch/powerpc/platforms/Kconfig.cputype | 1 +
arch/powerpc/platforms/pseries/hotplug-memory.c | 2 +-
arch/powerpc/xmon/xmon.c | 2 +-
arch/riscv/Kconfig | 2 +-
arch/riscv/include/asm/cacheflush.h | 19 +-
arch/riscv/include/asm/hugetlb.h | 1 +
arch/riscv/include/asm/pgalloc.h | 8 +-
arch/riscv/include/asm/pgtable.h | 47 +-
arch/riscv/mm/cacheflush.c | 13 +-
arch/riscv/mm/fault.c | 7 +-
arch/riscv/mm/init.c | 16 +-
arch/s390/Kconfig | 3 +-
arch/s390/include/asm/io.h | 21 +-
arch/s390/include/asm/pgalloc.h | 8 +-
arch/s390/include/asm/pgtable.h | 33 +-
arch/s390/include/asm/tlb.h | 4 +-
arch/s390/mm/fault.c | 5 +-
arch/s390/mm/pgalloc.c | 176 ++--
arch/s390/pci/pci.c | 57 +-
arch/sh/Kconfig | 1 +
arch/sh/include/asm/cacheflush.h | 21 +-
arch/sh/include/asm/io.h | 89 +-
arch/sh/include/asm/io_noioport.h | 7 -
arch/sh/include/asm/pgalloc.h | 9 +-
arch/sh/include/asm/pgtable.h | 7 +-
arch/sh/include/asm/pgtable_32.h | 5 +-
arch/sh/mm/cache-j2.c | 4 +-
arch/sh/mm/cache-sh4.c | 26 +-
arch/sh/mm/cache-sh7705.c | 26 +-
arch/sh/mm/cache.c | 52 +-
arch/sh/mm/ioremap.c | 65 +-
arch/sh/mm/kmap.c | 3 +-
arch/sparc/include/asm/cacheflush_32.h | 10 +-
arch/sparc/include/asm/cacheflush_64.h | 19 +-
arch/sparc/include/asm/pgalloc_64.h | 4 +
arch/sparc/include/asm/pgtable_32.h | 8 +-
arch/sparc/include/asm/pgtable_64.h | 29 +-
arch/sparc/kernel/setup_32.c | 2 +-
arch/sparc/kernel/smp_64.c | 56 +-
arch/sparc/mm/init_32.c | 13 +-
arch/sparc/mm/init_64.c | 111 +-
arch/sparc/mm/srmmu.c | 5 +-
arch/sparc/mm/tlb.c | 5 +-
arch/um/include/asm/pgalloc.h | 18 +-
arch/um/include/asm/pgtable.h | 7 +-
arch/x86/Kconfig | 7 +-
arch/x86/include/asm/io.h | 5 -
arch/x86/include/asm/pgtable.h | 28 +-
arch/x86/include/asm/tlbflush.h | 24 +-
arch/x86/mm/fault.c | 7 +-
arch/x86/mm/pgtable.c | 47 +-
arch/x86/mm/tlb.c | 2 +
arch/x86/xen/mmu_pv.c | 2 +-
arch/xtensa/Kconfig | 1 +
arch/xtensa/include/asm/cacheflush.h | 11 +-
arch/xtensa/include/asm/io.h | 32 +-
arch/xtensa/include/asm/pgtable.h | 18 +-
arch/xtensa/mm/cache.c | 83 +-
arch/xtensa/mm/ioremap.c | 58 +-
drivers/acpi/acpi_memhotplug.c | 3 +-
drivers/base/memory.c | 27 +-
drivers/base/node.c | 4 +-
drivers/dax/device.c | 22 +-
drivers/dax/kmem.c | 4 +-
drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 5 +-
drivers/gpu/drm/arm/display/include/malidp_utils.h | 2 +-
.../drm/arm/display/komeda/komeda_pipeline_state.c | 24 +-
drivers/gpu/drm/msm/adreno/a6xx_gmu.c | 6 -
drivers/iommu/amd/iommu_v2.c | 10 +-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c | 29 +-
drivers/iommu/intel/svm.c | 8 +-
drivers/misc/ocxl/link.c | 8 +-
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c | 18 +-
drivers/net/ethernet/sfc/io.h | 2 +-
drivers/net/ethernet/sfc/siena/io.h | 2 +-
drivers/nvdimm/pfn_devs.c | 2 +-
drivers/tty/sysrq.c | 2 +-
drivers/tty/vt/keyboard.c | 2 +-
drivers/virt/acrn/ioreq.c | 4 +-
fs/9p/cache.c | 2 +
fs/Kconfig | 7 +-
fs/affs/file.c | 77 +-
fs/affs/symlink.c | 12 +-
fs/afs/internal.h | 2 +
fs/btrfs/misc.h | 2 -
fs/buffer.c | 36 +-
fs/cachefiles/namei.c | 2 +
fs/ceph/cache.c | 2 +
fs/dax.c | 33 +-
fs/drop_caches.c | 2 +
fs/erofs/data.c | 6 +-
fs/exec.c | 1 +
fs/ext2/balloc.c | 2 -
fs/ext2/file.c | 2 +-
fs/ext4/ext4.h | 2 -
fs/ext4/file.c | 11 +-
fs/ext4/inode.c | 4 +-
fs/ext4/move_extent.c | 19 +-
fs/fuse/dax.c | 20 +-
fs/hugetlbfs/inode.c | 57 +-
fs/jbd2/journal.c | 35 +-
fs/nfs/fscache.c | 3 +
fs/ntfs3/inode.c | 10 +-
fs/ocfs2/file.c | 7 +-
fs/proc/base.c | 1 +
fs/proc/meminfo.c | 13 +-
fs/proc/task_mmu.c | 26 +-
fs/proc/task_nommu.c | 15 +-
fs/smb/client/fscache.c | 2 +
fs/splice.c | 3 +-
fs/udf/file.c | 6 +-
fs/ufs/util.h | 6 -
fs/userfaultfd.c | 140 ++-
fs/xfs/xfs_file.c | 24 +-
fs/xfs/xfs_trace.h | 20 +-
include/asm-generic/cacheflush.h | 7 -
include/asm-generic/io.h | 31 +-
include/asm-generic/iomap.h | 6 +-
include/asm-generic/pgalloc.h | 88 +-
include/asm-generic/tlb.h | 12 +-
include/linux/backing-dev.h | 1 -
include/linux/bio.h | 5 +
include/linux/buffer_head.h | 4 +-
include/linux/cacheflush.h | 13 +-
include/linux/damon.h | 28 +-
include/linux/dax.h | 4 +-
include/linux/frontswap.h | 91 --
include/linux/fs.h | 2 +-
include/linux/highmem.h | 44 +
include/linux/huge_mm.h | 6 +-
include/linux/hugetlb.h | 38 +-
include/linux/ioremap.h | 30 +
include/linux/kfence.h | 11 +-
include/linux/ksm.h | 20 +
include/linux/maple_tree.h | 46 +-
include/linux/memblock.h | 14 +-
include/linux/memcontrol.h | 18 +-
include/linux/memory-tiers.h | 4 +-
include/linux/memory.h | 8 +-
include/linux/memory_hotplug.h | 3 +-
include/linux/minmax.h | 27 +
include/linux/mm.h | 365 ++++---
include/linux/mm_inline.h | 21 +
include/linux/mm_types.h | 135 ++-
include/linux/mm_types_task.h | 4 +-
include/linux/mmap_lock.h | 18 +-
include/linux/mmu_notifier.h | 104 +-
include/linux/mmzone.h | 1 -
include/linux/net_mm.h | 17 -
include/linux/page-flags.h | 90 +-
include/linux/page_ext.h | 9 +-
include/linux/page_idle.h | 5 -
include/linux/page_table_check.h | 71 +-
include/linux/pagemap.h | 60 +-
include/linux/pgtable.h | 123 ++-
include/linux/pid_namespace.h | 39 +-
include/linux/rmap.h | 2 +
include/linux/secretmem.h | 15 +-
include/linux/swap.h | 21 +-
include/linux/swapfile.h | 5 -
include/linux/swapops.h | 15 +-
include/linux/userfaultfd_k.h | 4 +
include/linux/zswap.h | 37 +
include/net/tcp.h | 1 -
include/trace/events/thp.h | 33 +-
include/uapi/linux/userfaultfd.h | 25 +-
init/initramfs.c | 2 +-
io_uring/io_uring.c | 6 +-
io_uring/kbuf.c | 6 +-
kernel/crash_core.c | 4 +-
kernel/events/core.c | 33 +-
kernel/events/uprobes.c | 2 +-
kernel/futex/core.c | 3 +-
kernel/iomem.c | 13 +-
kernel/panic.c | 2 +-
kernel/pid.c | 3 +
kernel/pid_namespace.c | 6 +-
kernel/pid_sysctl.h | 28 +-
lib/logic_pio.c | 3 -
lib/maple_tree.c | 1108 +++++++++-----------
lib/test_maple_tree.c | 141 +++
lib/test_meminit.c | 2 +-
mm/Kconfig | 15 +-
mm/Makefile | 1 -
mm/backing-dev.c | 6 +-
mm/cma.c | 4 +-
mm/compaction.c | 105 +-
mm/damon/core-test.h | 74 ++
mm/damon/core.c | 62 ++
mm/damon/ops-common.c | 2 +-
mm/damon/paddr.c | 2 +-
mm/damon/sysfs-common.h | 2 +-
mm/damon/sysfs-schemes.c | 107 +-
mm/damon/sysfs.c | 26 +-
mm/damon/vaddr.c | 23 +-
mm/debug_vm_pgtable.c | 18 +-
mm/filemap.c | 177 ++--
mm/frontswap.c | 283 -----
mm/gup.c | 92 +-
mm/huge_memory.c | 127 +--
mm/hugetlb.c | 461 +++-----
mm/hugetlb_vmemmap.c | 34 +-
mm/init-mm.c | 2 +
mm/internal.h | 61 +-
mm/ioremap.c | 41 +-
mm/kfence/core.c | 123 ++-
mm/kfence/kfence.h | 5 +-
mm/khugepaged.c | 498 ++++-----
mm/kmemleak.c | 15 +-
mm/kmsan/hooks.c | 4 +-
mm/kmsan/shadow.c | 8 +-
mm/ksm.c | 44 +-
mm/madvise.c | 15 +-
mm/mapping_dirty_helpers.c | 11 +-
mm/memblock.c | 5 +
mm/memcontrol.c | 136 ++-
mm/memfd.c | 58 +-
mm/memory-failure.c | 133 ++-
mm/memory-tiers.c | 19 +-
mm/memory.c | 341 +++---
mm/memory_hotplug.c | 192 +++-
mm/mempolicy.c | 15 +-
mm/memtest.c | 22 +-
mm/migrate.c | 5 +-
mm/migrate_device.c | 30 +-
mm/mlock.c | 3 +-
mm/mm_init.c | 37 +-
mm/mmap.c | 255 ++---
mm/mmu_gather.c | 1 +
mm/mmu_notifier.c | 50 +-
mm/mprotect.c | 7 +-
mm/mremap.c | 2 +-
mm/nommu.c | 55 +-
mm/oom_kill.c | 3 -
mm/page_alloc.c | 150 +--
mm/page_ext.c | 101 +-
mm/page_io.c | 80 +-
mm/page_isolation.c | 8 +-
mm/page_owner.c | 2 +-
mm/page_poison.c | 1 -
mm/page_table_check.c | 62 +-
mm/page_vma_mapped.c | 12 +-
mm/pgtable-generic.c | 97 +-
mm/rmap.c | 145 ++-
mm/secretmem.c | 14 +-
mm/shmem.c | 15 +-
mm/show_mem.c | 10 +-
mm/sparse-vmemmap.c | 3 +
mm/sparse.c | 3 +-
mm/swap.h | 1 -
mm/swap_state.c | 23 +-
mm/swapfile.c | 69 +-
mm/truncate.c | 8 +-
mm/userfaultfd.c | 87 +-
mm/util.c | 10 +-
mm/vmscan.c | 44 +-
mm/vmstat.c | 1 -
mm/workingset.c | 1 +
mm/z3fold.c | 27 +-
mm/zsmalloc.c | 79 +-
mm/zswap.c | 393 ++++---
net/ipv4/tcp.c | 11 +-
net/netfilter/nf_nat_core.c | 6 +-
net/tipc/core.h | 2 +-
net/tipc/link.c | 10 +-
security/selinux/hooks.c | 7 +-
tools/include/nolibc/stdio.h | 24 +
tools/testing/radix-tree/maple.c | 134 ++-
.../selftests/bpf/progs/get_branch_snapshot.c | 4 +-
tools/testing/selftests/cgroup/.gitignore | 1 +
tools/testing/selftests/cgroup/Makefile | 2 +
tools/testing/selftests/cgroup/test_kmem.c | 21 +-
tools/testing/selftests/cgroup/test_zswap.c | 286 +++++
tools/testing/selftests/damon/sysfs.sh | 6 +
tools/testing/selftests/kselftest.h | 9 +
tools/testing/selftests/kselftest/runner.sh | 7 +-
tools/testing/selftests/memfd/memfd_test.c | 329 ++++--
tools/testing/selftests/mm/.gitignore | 1 +
tools/testing/selftests/mm/Makefile | 81 +-
tools/testing/selftests/mm/hugetlb-read-hwpoison.c | 322 ++++++
tools/testing/selftests/mm/ksm_functional_tests.c | 200 +++-
tools/testing/selftests/mm/madv_populate.c | 26 +-
tools/testing/selftests/mm/map_populate.c | 2 +-
tools/testing/selftests/mm/migration.c | 12 +-
tools/testing/selftests/mm/mrelease_test.c | 1 +
tools/testing/selftests/mm/run_vmtests.sh | 80 +-
tools/testing/selftests/mm/settings | 2 +-
tools/testing/selftests/mm/thuge-gen.c | 4 +-
tools/testing/selftests/mm/transhuge-stress.c | 12 +-
tools/testing/selftests/mm/uffd-common.c | 5 +-
tools/testing/selftests/mm/uffd-common.h | 3 +
tools/testing/selftests/mm/uffd-stress.c | 32 +-
tools/testing/selftests/mm/uffd-unit-tests.c | 117 +++
tools/testing/selftests/mm/va_high_addr_switch.c | 2 +-
tools/testing/selftests/proc/proc-empty-vm.c | 4 +-
virt/kvm/kvm_main.c | 13 +-
472 files changed, 9581 insertions(+), 7077 deletions(-)
delete mode 100644 Documentation/mm/frontswap.rst
create mode 100644 Documentation/powerpc/vmemmap_dedup.rst
delete mode 100644 Documentation/translations/zh_CN/mm/frontswap.rst
create mode 100644 arch/arm64/include/asm/tlbbatch.h
delete mode 100644 arch/hexagon/mm/ioremap.c
delete mode 100644 include/linux/frontswap.h
create mode 100644 include/linux/ioremap.h
delete mode 100644 include/linux/net_mm.h
create mode 100644 include/linux/zswap.h
delete mode 100644 mm/frontswap.c
create mode 100644 tools/testing/selftests/cgroup/test_zswap.c
create mode 100644 tools/testing/selftests/mm/hugetlb-read-hwpoison.c