[GIT PULL] MM updates for 7.2-rc1 (v2)

From: Andrew Morton

Date: Thu Jun 18 2026 - 12:30:42 EST



Linus, please merge these MM updates for the 7.2-rc1 development tree,
thanks.


Conflicts I'm presently seeing, along with their linux-resolutions:

mm/page_io.c, vs block tree:
https://lore.kernel.org/ah26UmcBXVJMy-Cc@xxxxxxxxxxxxx

tools/testing/selftests/cgroup/test_memcontrol.c, vs cgroup tree:
https://lore.kernel.org/ags6BawOir3IQHIZ@xxxxxxxxxxxxx



Possible upcoming possible conflicts and build issues, along with their
linux-next resolutions:

include/net/netmem.h, vs net tree:
https://lore.kernel.org/aaGiDINfnUexT9Px@xxxxxxxxxxxxx

drivers/android/binder/page_range.rs, vs char-misc.current tree:
https://lore.kernel.org/aarPg_AVR3TN9frW@xxxxxxxxxxxxx

fs/ntfs/file.c, vs fs tree:
https://lore.kernel.org/aa7ZT-cQMVdQOOAj@xxxxxxxxxxxxx

virt/kvm/guest_memfd.c, vs kvm-x86 tree:
https://lore.kernel.org/abGDp4jguPV2H2Mf@xxxxxxxxxxxxx

init/main.c, vs tip tree:
https://lore.kernel.org/abLMq8TWJIQH5uTj@xxxxxxxxxxxxx

fs/f2fs/compress.c, vs fs tree:
https://lore.kernel.org/acPtrrkwagtafDT8@xxxxxxxxxxxxx

fs/exfat/file.c, vs fs tree:
https://lore.kernel.org/acbY5CCmsk8C95m5@xxxxxxxxxxxx

lib/vdso/datastore.c, vs tip tree:
https://lore.kernel.org/acbz78Mbv55Vzfh8@xxxxxxxxxxxx

arch/loongarch/mm/init.c, vs loongarch tree:
https://lore.kernel.org/ahBDDF2noinoSIg5@xxxxxxxxxxxxx

fs/btrfs/defrag.c, vs fs tree:
https://lore.kernel.org/ahRU4OQiGMaLf2Y-@xxxxxxxxxxxxx



The following changes since commit 9d7bea186ba5a002456471edf36cc9b69f809397:

userfaultfd: remove redundant check in vm_uffd_ops() (2026-05-31 21:50:26 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2026-06-18-09-26

for you to fetch changes up to e3d8707358ea76b78bdec9928937bb9a797f2c8f:

selftests/mm/hmm-tests: test pagemap reads of PMD device-private entries (2026-06-08 18:21:33 -0700)

----------------------------------------------------------------
mm.git review status for mm-hotfixes-stable..mm-stable

Everything:

Total patches: 321
Reviews/patch: 1.52
Reviewed rate: 68%

Excluding DAMON:

Total patches: 227
Reviews/patch: 2.07
Reviewed rate: 90%

Excluding DAMON and selftests:

Total patches: 203
Reviews/patch: 2.14
Reviewed rate: 91%

Patchsets in this merge:

- The 2 patch series "selftests/mm: clean up build output and verbosity"
from Li Wang removes some noise from the MM selftests build out.

- The 3 patch series "mm: Free contiguous order-0 pages efficiently"
from Ryan Roberts speeds up the freeing of a batch of 0-order pages by
first scanning them for coalescing opportunities. This is applicable to
vfree() and to the releasing of frozen pages.

- The 11 patch series "mm/damon: introduce DAMOS failed region quota
charge ratio" from SeongJae Park addresses a DAMOS usability issue: The
DAMOS quota often exhausts prematurely because it charges for all memory
attempted, causing slow and inconsistent performance when actions fail
on unreclaimable memory.

To fix this, a new feature lets users set a smaller, flexible quota
charge ratio (via a numerator and denominator) for failed regions.
Since failed actions cause less overhead, reducing their quota cost
ensures more predictable and efficient DAMOS processing

- The 8 patch series "selftests/cgroup: improve zswap tests robustness
and support large page sizes" from Li Wang fixes various spurious
failures and improves the overall robustness of the cgroup zswap
selftests.

- The 3 patch series "fix MAP_DROPPABLE not supported errno" from
Anthony Yznaga fixes an issue in the mlock selftests on arm32.

- The 2 patch series "mm: huge_memory: clean up defrag sysfs with
shared" from Breno Leitao does some maintenance work in the huge_memory
code.

- The 3 patch series "treewide: fixup gfp_t printks" from Brendan
Jackman uses the special vprintf() gfp_t conversion in various places.

- The 6 patch series "mm: Fix vmemmap optimization accounting and
initialization" from Muchun Song fixes several bugs in the vmemmap
optimization, mainly around incorrect page accounting and memmap
initialization in the DAX and memory hotplug paths. It also fixes
pageblock migratetype initialization and struct page initialization for
ZONE_DEVICE compound pages.

- The 4 patch series "mm/damon: repost non-hotfix reviewed patches in
damon/next tree" from is a sprinkle of unrelated minor bugfixes for
DAMON.

- The 3 patch series "mm: remove page_mapped()" from David Hildenbrand
remove this function from the tree, replacing it with folio_mapped().

- The 10 patch series "mm/damon: let DAMON be paused and resumed" from
SeongJae Park permits DAMON to be paused and resumed without losing its
current state.

- The 3 patch series "kasan: hw_tags: Disable tagging for stack and
page-tables" from Muhammad Usama Anjum simplifies and speeds up kasan by
removing its ineffective tagging of stacks and page tables.

- The 7 patch series "mm/damon/reclaim,lru_sort: monitor all system rams
by default" from SeongJae Park simplifies deployment on diverse hardware
like NUMA systems by updating DAMON_RECLAIM and DAMON_LRU_SORT to
automatically monitor the physical address range covering all System RAM
areas by default, replacing the overly restrictive behavior that only
targeted the single largest memory block to save on negligible overhead.

- The 2 patch series "mm/damon/sysfs: document filters/ directory as
deprecated" from SeongJae Park updates some DAMON docs.

- The 8 patch series "mm: use spinlock guards for zone lock" from Dmitry
Ilvokhin switches zone->lock handling over to using the guard()
mechanisms.

- The 2 patch series "mm/filemap: tighten mmap_miss hit accounting" from
fujunjie fixes a flaw where the mmap_miss counter over-credited page
cache hits during fault-arounds and page-fault retries. This results in
significant reduction of redundant synchronous mmap readahead I/O,
drastically cutting down execution time and gigabytes read for sparse
random or strided memory access workloads.

- The 2 patch series "selftests/cgroup: Fix false positive failures in
test_percpu_basic" from Li Wang fixes a couple of false-positives in the
cgroup kmem selftests.

- The 2 patch series "mm/damon/reclaim: support monitoring intervals
auto-tuning" from SeongJae Park adds a new parameter to DAMON permitting
DAMON_RECLAIM to automatically tune DAMON's sampling and aggregation
intervals.

- The 2 patch series "mm/damon/stat: add kdamond_pid parameter" from
SeongJae Park chnges DAMON_STAT to provide the pid of its kdamond.

- The 2 patch series "mm/kmemleak: dedupe verbose scan output" from
Breno Leitao removes large amounts of duplicated backtraces from the
verbose-mode kmemleak output.

- The 8 patch series "mm: remove CONFIG_HAVE_BOOTMEM_INFO_NODE (Part 1)"
from David Hildenbrand reduces our use of CONFIG_HAVE_BOOTMEM_INFO_NODE,
with a view to removing it entirely in a later series.

- The 2 patch series "mm/damon: validate min_region_size to be power of
2" from Liew Rui Yan prevents users from passing a non-power-of-2 value
of `addr_unit', as this later results in undesirable behavior.

- The 2 patch series "mm: document read_pages and simplify usage" from
Frederick Mayle does as claimed.

- The 3 patch series "tools/mm/page-types: Fix misc bugs" from Ye Liu
fixes three issues in tools/mm/page-types.c.

- The 4 patch series "mm: misc cleanups from __GFP_UNMAPPED series" from
Brendan Jackman implements several cleanups in the page allocator and
related code.

- The 12 patch series "mm, swap: swap table phase IV: unify allocation"
from Kairui Song unifies the allocation and charging of anon and shmem
swap in folios, provides better synchronization, consolidates the
metadata management, hence dropping the static array and map, and
improves performance.

- The 28 patch series "mm/damon: introduce data attributes monitoring"
from SeongJae Park extends DAMON for monitoring general data attributes
other than accesses.

- The 5 patch series "mm/vmalloc: free unused pages on vrealloc()
shrink" from Shivam Kalra implements the TODO in vrealloc() to unmap and
free unused pages when shrinking across a page boundary.

- The 3 patch series "mm/damon: documentation and comment fixes" from
niecheng does as advertised.

- The 3 patch series "remove mmap_action success, error hooks" from
Lorenzo Stoakes eliminates custom hooks from mmap_action by removing the
problematic success_hook which allowed drivers to improperly access
uninitialized VMAs. It replaces the error_hook with a simple error-code
field and updates the memory char driver accordingly.

- The 14 patch series "mm/damon: minor improvements for code readability
and tests" from SeongJae Park implements minor improvements in code
readability and tests for DAMON.

- The 2 patch series "mm/damon: fix macro arguments and clarify quota
goals doc" from Maksym Shcherba does those things.

- The 2 patch series "userfaultfd: merge fs/userfaultfd.c into
mm/userfaultfd.c" from Mike Rapoport performs that code movement.

- The 15 patch series "mm/mglru: improve reclaim loop and dirty folio"
from Kairui Song and others cleans up and slightly improves MGLRU's
reclaim loop and dirty writeback handling. Large performance
improvements are measured.

- The 3 patch series "use vma locks for proc/pid/{smaps|numa_maps}
reads" from Suren Baghdasaryan uses per-vma locks when reading
/proc/pid/smaps and /proc/pid/numa_maps similar to reduce contention on
central mmap_lock.

- The 2 patch series "refactors thpsize_shmem_enabled_store() and
thpsize_shmem_enabled_show()" from Ran Xiaokai provides some cleanup
work in the THP code.

- The 2 patch series "selftests/memfd: fix compilation warnings" from
Konstantin Khorenko fixes a few build glitches in the memfd selftest
code.

- The 4 patch series "memcg: shrink obj_stock_pcp and cache multiple
objcgs" from Shakeel Butt resolves a 68% performance regression caused
by NUMA-node cache thrashing around struct obj_stock_pcp by shrinking
its existing fields and expanding it into a multi-slot array that caches
up to five obj_cgroup pointers per CPU, allowing per-node variants of
the same memcg to coexist within a single 64-byte cache line.

- The 2 patch series "zram: writeback fixes" from Sergey Senozhatsky
addresses a couple of unrelated zram writeback issues.

- The 9 patch series "mm: switch THP shrinker to list_lru" from Johannes
Weiner resolves NUMA-awareness issues and streamlines callsite
interaction by refactoring and extending the list_lru API to completely
replace the complex, open-coded deferred split queue for Transparent
Huge Pages (THPs).

- The 2 patch series "mm: improve large folio readahead for exec memory"
from Usama Arif improves large-folio readahead on systems like 64K-page
arm64 by preventing the mmap_miss check from permanently disabling
target-oriented VM_EXEC readahead, and by generalizing the
force_thp_readahead gate to support mappings with any usefully large
maximum folio order under the cache cap.

- The 6 patch series "userfaultfd/pagemap: pre-existing fixes" from
Kiryl Shutsemau fixes a bunch of minor issues in the
userfaultfd/pagemap, all of which were flagged by Sashiko review of
proposed new material.

- The 5 patch series "mm/sparse-vmemmap: Provide generic
vmemmap_set_pmd() and vmemmap_check_pmd()" from Muchun Song provides
generic versions of these two functions so the four arch-specific
implementations can be removed.

- The 2 patch series "mm/swap, PM: hibernate: fix swapoff race in
uswsusp by pinning swap device" from Youngjun Park addresses a
uswsusp-vs-swapoff race and reduces the swap device reference
taking/releasing frequency.

- The 2 patch series "mm/hmm: A fix and a selftest" from Dev Jain does
as claimed.

----------------------------------------------------------------
Aditya Sharma (1):
mm/memory: update stale locking comments for fault handlers

Alexander Gordeev (2):
mm/gup: cleanup pgtable entry accessors
mm/page_vma_mapped_walk: use ptep_get_lockless() for lockless access

Alexander Potapenko (1):
lib/test_meminit: use && for bools

Andrew Morton (1):
Merge branch 'mm-hotfixes-stable' into mm-stable to pick up the series "userfaultfd: verify VMA state across UFFDIO_COPY retry", which is a prerequisite for mm-unnstable's series "userfaultfd: merge fs/userfaultfd.c into mm/userfaultfd.c".

Anthony Yznaga (3):
mm: fix mmap errno value when MAP_DROPPABLE is not supported
selftests/mm: verify droppable mappings cannot be locked
selftests/mm: run the MAP_DROPPABLE selftest

Asier Gutierrez (1):
mm/damon: support MADV_COLLAPSE via DAMOS_COLLAPSE scheme action

Baolin Wang (1):
Revert "tmpfs: don't enable large folios if not supported"

Barry Song (Xiaomi) (3):
mm/huge_memory: fix outdated comment about freeing subpages in __folio_split
mm/mglru: use folio_mark_accessed to replace folio_set_active
mm/mglru: avoid reclaim type fall back when isolation makes no progress

Brendan Jackman (12):
mm/page_alloc: cleanup flag vars in alloc_pages_bulk_noprof()
drm/managed: use special gfp_t format specifier
mm/kfence: use special gfp_t format specifier
net/rds: use special gfp_t format specifier
mm: introduce for_each_free_list()
mm/page_alloc: don't overload migratetype in find_suitable_fallback()
mm: rejig pageblock mask definitions
mm/page_alloc: remove ifdefs from pindex helpers
mm/page_alloc: drop a misleading __always_inline
mm/page_alloc: document that alloc_pages_nolock() uses RCU
mm/page_alloc: remove VM_BUG_ON()s from pindex helpers
mm: delete stale comment about cachelines

Breno Leitao (4):
mm: huge_memory: use sysfs_match_string() in defrag_store()
mm: huge_memory: refactor defrag_show() to use defrag_flags[]
mm/kmemleak: dedupe verbose scan output by allocation backtrace
selftests/mm: add kmemleak verbose dedup test

Brian Masney (2):
MAINTAINERS: add vm.rst to memory management core
docs: mm: clarify that user_reserve_kbytes has no effect when overcommit_memory is set to 0 or 1

Bunyod Suvonov (1):
mm/vmscan: add balance_pgdat begin/end tracepoints

Cheng-Han Wu (1):
Docs/admin-guide/mm/damon: fix 'parametrs' typo

Chengkaitao (1):
mm: convert vmemmap_p?d_populate() to static functions

Cunlong Li (1):
zram: drop unused bio parameter from write helpers

David Carlier (2):
mm/page_io: rename swap_iocb fields for clarity
mm/shrinker: avoid out-of-bounds read in set_shrinker_bit()

David Hildenbrand (Arm) (11):
sh: use folio_mapped() instead of page_mapped() in sh4_flush_cache_page()
bpf: arena: use page_ref_count() instead of page_mapped() in arena_free_pages()
mm: remove page_mapped()
sparc/mm: remove register_page_bootmem_info()
mm/bootmem_info: drop initialization of page->lru
mm/bootmem_info: stop using PG_private
mm/bootmem_info: remove call to kmemleak_free_part_phys()
mm/bootmem_info: stop marking the pgdat as NODE_INFO
mm/bootmem_info: stop marking mem_section_usage as MIX_SECTION_INFO
s390/mm: use free_reserved_page() in vmem_free_pages()
powerpc/mm: remove CONFIG_HAVE_BOOTMEM_INFO_NODE

David Rientjes (1):
mm, page_alloc: reintroduce page allocation stall warning

Davidlohr Bueso (1):
dax/kmem: account for partial discontiguous resource upon removal

Deepanshu Kartikey (1):
mm/hugetlb: fix hugetlb cgroup rsvd charge/uncharge mismatch

Dev Jain (3):
selftests/mm: simplify byte pattern checking in mremap_test
fs/proc/task_mmu: do not warn on seeing non-migration pmd entry
selftests/mm/hmm-tests: test pagemap reads of PMD device-private entries

Dmitry Ilvokhin (9):
mm: use zone lock guard in reserve_highatomic_pageblock()
mm: use zone lock guard in unset_migratetype_isolate()
mm: use zone lock guard in unreserve_highatomic_pageblock()
mm: use zone lock guard in set_migratetype_isolate()
mm: use zone lock guard in take_page_off_buddy()
mm: use zone lock guard in put_page_back_buddy()
mm: use zone lock guard in free_pcppages_bulk()
mm: use zone lock guard in __offline_isolated_pages()
mm/page_alloc: fix defrag_mode for non-reclaimable allocations

Frederick Mayle (4):
mm: limit filemap_fault readahead to VMA boundaries
mm/readahead: add kerneldoc for read_pages
mm/readahead: simplify page_cache_ra_unbounded loop counter reset
mm/readahead: no PG_readahead on EOF

Georgi Djakov (1):
drivers/base/memory: set mem->altmap after successful device registration

Hao Ge (3):
proc/meminfo: expose per-node balloon pages in node meminfo
lib/test_hmm: use kvfree() to free kvcalloc() allocations
lib/test_hmm: fix memory leak in dmirror_migrate_to_system()

Hongfu Li (1):
selftests/mm: fix mmap() return value check in run_migration_benchmark

Hrushikesh Salunke (1):
mm/page_alloc: replace kernel_init_pages() with batch page clearing

Hui Zhu (2):
mm/memcontrol: hoist pstatc_pcpu assignment out of CPU loop
vmalloc: fix NULL pointer dereference in is_vm_area_hugepages()

JP Kobryn (1):
mm/compaction: cap compact_gap() at COMPACT_CLUSTER_MAX

JP Kobryn (Meta) (2):
mm/vmpressure: skip socket pressure for costly order reclaim
mm/lruvec: preemptively free dead folios during lru_add drain

Jiayuan Chen (1):
mm/damon: replace damon_rand() with a per-ctx lockless PRNG

Johannes Weiner (9):
mm: list_lru: fix set_shrinker_bit() call during race with cgroup deletion
mm: list_lru: lock_list_lru_of_memcg() cannot return NULL if !skip_empty
mm: list_lru: deduplicate unlock_list_lru()
mm: list_lru: move list dead check to lock_list_lru_of_memcg()
mm: list_lru: deduplicate lock_list_lru()
mm: list_lru: introduce caller locking for additions and deletions
mm: list_lru: introduce folio_memcg_list_lru_alloc()
mm: memory: flatten alloc_anon_folio() retry loop
mm: switch deferred split shrinker to list_lru

Jose Fernandez (Anthropic) (1):
mm: swap_cgroup: fix NULL deref in lookup_swap_cgroup_id on swapless host

Joshua Hahn (1):
mm/nodemask: correctly describe nodemask operation return types

Julian Braha (1):
mm/thp: dead code cleanup in Kconfig

Kairui Song (27):
mm, swap: avoid leaving unused extend table after alloc race
mm, swap: simplify swap cache allocation helper
mm, swap: move common swap cache operations into standalone helpers
mm/huge_memory: move THP gfp limit helper into header
mm, swap: add support for stable large allocation in swap cache directly
mm, swap: unify large folio allocation
mm/memcg, swap: tidy up cgroup v1 memsw swap helpers
mm, swap: support flexible batch freeing of slots in different memcgs
mm, swap: delay and unify memcg lookup and charging for swapin
mm, swap: consolidate cluster allocation helpers
mm/memcg, swap: store cgroup id in cluster table directly
mm/memcg: remove no longer used swap cgroup array
mm, swap: merge zeromap into swap table
mm/mglru: consolidate common code for retrieving evictable size
mm/mglru: rename variables related to aging and rotation
mm/mglru: relocate the LRU scan batch limit to callers
mm/mglru: restructure the reclaim loop
mm/mglru: scan and count the exact number of folios
mm/mglru: use a smaller batch for reclaim
mm/mglru: don't abort scan immediately right after aging
mm/mglru: remove redundant swap constrained check upon isolation
mm/mglru: use the common routine for dirty/writeback reactivation
mm/mglru: simplify and improve dirty writeback handling
mm/mglru: remove no longer used reclaim argument for folio protection
mm/vmscan: remove sc->file_taken
mm/vmscan: remove sc->unqueued_dirty
mm/vmscan: unify writeback reclaim statistic and throttling

Kaitao Cheng (1):
mm/memory-failure: use zone_pcp_disable() for poison handling

Kefeng Wang (1):
mm/damon/vaddr: attempt per-vma lock during page table walk

Kiryl Shutsemau (Meta) (6):
fs/proc/task_mmu: fix make_uffd_wp_huge_pte() prot-update race
fs/proc/task_mmu: use huge_page_size() in pagemap_scan_hugetlb_entry()
fs/proc/task_mmu: fix hugetlb self-deadlock in pagemap_scan_pte_hole()
mm/huge_memory: preserve pmd_swp_uffd_wp on device-private PMD downgrade
userfaultfd: gate must_wait writability check on pte_present()
userfaultfd: build __VMA_UFFD_FLAGS from config-gated masks

Konstantin Khorenko (2):
selftests/memfd: fix -Wmaybe-uninitialized warning in memfd_test
selftests/memfd: remove unused variable 'sig' in fuse_test

Lance Yang (1):
mm/thp: clear deferred split shrinker bits when queues drain

Leon Hwang (1):
Documentation/admin-guide/mm: fix typos in transhuge.rst

Li Wang (12):
selftests/mm: respect build verbosity settings for 32/64-bit targets
selftests/mm: suppress compiler error in liburing check
selftests/cgroup: skip test_zswap if zswap is globally disabled
selftests/cgroup: avoid OOM in test_swapin_nozswap
selftests/cgroup: use runtime page size for zswpin check
selftests/cgroup: rename PAGE_SIZE to BUF_SIZE in cgroup_util
selftests/cgroup: replace hardcoded page size values in test_zswap
selftest/cgroup: fix zswap test_no_invasive_cgroup_shrink on large pagesize system
selftest/cgroup: fix zswap attempt_writeback() on 64K pagesize system
selftests/cgroup: test_zswap: wait for asynchronous writeback
selftests/cgroup: fix hardcoded page size in test_percpu_basic
selftests/cgroup: include slab in test_percpu_basic memory check

Liew Rui Yan (4):
mm/damon/ops-common: optimize damon_hot_score() using ilog2()
mm/damon: add synchronous commit for commit_inputs
mm/damon/lru_sort: validate min_region_size to be power of 2
mm/damon/reclaim: validate min_region_size to be power of 2

Lorenzo Stoakes (3):
drivers/char/mem: eliminate unnecessary use of success_hook
mm/vma: remove mmap_action->success_hook
mm/vma: eliminate mmap_action->error_hook, introduce error_override

Maksym Shcherba (2):
mm/damon: fix missing parens in macro arguments
Docs/admin-guide/mm/damon/usage: clarify current_value of quota goals

Matthew Wilcox (Oracle) (2):
mm: remove mentions of PageWriteback
mm: document the folio refcount a little better

Mike Rapoport (Microsoft) (3):
userfaultfd: ensure mremap_userfaultfd_fail() releases mmap_changing
userfaultfd: merge fs/userfaultfd.c into mm/userfaultfd.c
userfaultfd: make functions that are not used outside uffd static

Muchun Song (14):
mm/sparse: remove sparse buffer pre-allocation mechanism
mm/sparse-vmemmap: fix vmemmap accounting underflow
mm/memory_hotplug: fix incorrect altmap passing in error path
mm/sparse-vmemmap: pass @pgmap argument to memory deactivation paths
mm/sparse-vmemmap: fix DAX vmemmap accounting with optimization
mm/mm_init: fix pageblock migratetype for ZONE_DEVICE compound pages
mm/mm_init: fix uninitialized struct pages for ZONE_DEVICE
mm/memory_hotplug: factor out altmap freeing checks
drivers/base/memory: make memory block get/put explicit
mm/sparse-vmemmap: provide generic vmemmap_set_pmd() and vmemmap_check_pmd()
arm64/mm: drop vmemmap_pmd helpers and use generic code
riscv/mm: drop vmemmap_pmd helpers and use generic code
loongarch/mm: drop vmemmap_check_pmd helper and use generic code
sparc/mm: drop vmemmap_check_pmd helper and use generic code

Muhammad Usama Anjum (4):
mm/page_alloc: optimize __free_contig_frozen_range()
vmalloc: add __GFP_SKIP_KASAN support
kasan: skip HW tagging for all kernel thread stacks
mm: skip KASAN tagging for page-allocated page tables

Nakamura Shuta (1):
rust: page: mark Page::nid as inline

Oleg Nesterov (1):
mm/migrate: find_mm_struct: fix race between security checks and suid exec

Qiang Liu (2):
lib/test_hmm: fix error path in dmirror_devmem_fault()
lib/test_hmm: check alloc_page_vma() return value and handle OOM

Ran Xiaokai (2):
mm: shmem: refactor thpsize_shmem_enabled_store() with sysfs_match_string()
mm: shmem: refactor thpsize_shmem_enabled_show() with helper arrays

Ravi Jonnalagadda (1):
mm/damon: add node_eligible_mem_bp goal metric

Ryan Roberts (2):
mm/page_alloc: optimize free_contig_range()
vmalloc: optimize vfree with free_pages_bulk()

Sakurai Shun (2):
docs/mm: fix typo in process_addrs.rst
Docs/mm/damon/design: fix three typos

Sang-Heon Jeon (2):
mm/sparse: remove unnecessary NULL check before allocating mem_section
mm/hugetlb_cma: restrict hugetlb_cma parameter to gigantic-page alignment

SeongJae Park (80):
mm/damon/core: make charge_addr_from aware of end-address exclusivity
mm/damon/core: handle <min_region_sz remaining quota as empty
mm/damon/core: merge regions after applying DAMOS schemes
mm/damon/core: introduce failed region quota charge ratio
mm/damon/sysfs-schemes: implement fail_charge_{num,denom} files
Docs/mm/damon/design: document fail_charge_{num,denom}
Docs/admin-guide/mm/damon/usage: document fail_charge_{num,denom} files
Docs/ABI/damon: document fail_charge_{num,denom}
mm/damon/tests/core-kunit: test fail_charge_{num,denom} committing
selftests/damon/_damon_sysfs: support failed region quota charge ratio
selftests/damon/drgn_dump_damon_status: support failed region quota charge ratio
selftests/damon/sysfs.py: test failed region quota charge ratio
Docs/mm/damon/maintainer-profile: add AI review usage guideline
mm/damon/core: introduce damon_ctx->paused
mm/damon/sysfs: add pause file under context dir
Docs/mm/damon/design: update for context pause/resume feature
Docs/admin-guide/mm/damon/usage: update for pause file
Docs/ABI/damon: update for pause sysfs file
mm/damon/tests/core-kunit: test pause commitment
selftests/damon/_damon_sysfs: support pause file staging
selftests/damon/drgn_dump_damon_status: dump pause
selftests/damon/sysfs.py: check pause on assert_ctx_committed()
selftests/damon/sysfs.py: pause DAMON before dumping status
mm/damon: introduce damon_set_region_system_rams_default()
mm/damon/reclaim: cover all system rams
mm/damon/lru_sort: cover all system rams
mm/damon/core: remove damon_set_region_biggest_system_ram_default()
mm/damon/stat: use damon_set_region_system_rams_default()
Docs/admin-guide/mm/damon/reclaim: update for entire memory monitoring
Docs/admin-guide/mm/damon/lru_sort: update for entire memory monitoring
Docs/admin-guide/mm/damon/usage: mark scheme filters sysfs dir as deprecated
Docs/ABI/damon: mark schemes/<S>/filters/ deprecated
mm/damon/reclaim: add autotune_monitoring_intervals parameter
Docs/admin-guide/mm/damon/reclaim: update for autotune_monitoring_intervals
mm/damon/stat: add a parameter for reading kdamond pid
Docs/admin-guide/mm/damon/stat: document kdamond_pid parameter
mm/damon/core: introduce struct damon_probe
mm/damon/core: embed damon_probe objects in damon_ctx
mm/damon/core: introduce damon_filter
mm/damon/core: commit probes
mm/damon/core: introduce damon_region->probe_hits
mm/damon/core: introduce damon_ops->apply_probes
mm/damon/core: do data attributes monitoring
mm/damon/paddr: support data attributes monitoring
mm/damon/sysfs: implement probes dir
mm/damon/sysfs: implement probe dir
mm/damon/sysfs: implement filters directory
mm/damon/sysfs: implement filter dir
mm/damon/sysfs: implement filter dir files
mm/damon/sysfs: setup probes on DAMON core API parameters
mm/damon/sysfs-schemes: implement tried_regions/<r>/probes/
mm/damon/sysfs-schemes: implement probe dir
mm/damon/sysfs-schemes: implement probe/hits file
mm/damon: trace probe_hits
selftests/damon/sysfs.sh: test probes dir
Docs/mm/damon/design: document data attributes monitoring
Docs/admin-guide/mm/damon/usage: document data attributes monitoring
mm/damon/core: introduce DAMON_FILTER_TYPE_MEMCG
mm/damon/paddr: support DAMON_FILTER_TYPE_MEMCG
mm/damon/sysfs: add filters/<F>/path file
mm/damon/sysfs-schemes: move memcg_path_to_id() to sysfs-common
mm/damon/sysfs: setup damon_filter->memcg_id from path
Docs/mm/damon/design: update for memcg damon filter
Docs/admin-guide/mm/damon/usage: update for memcg damon filter
mm/damon/core: safely handle no region case in damon_set_regions()
mm/damon/core: do not use region out of a loop in damon_set_regions()
samples/damon/mtier: replace damon_add_region() with damon_set_regions()
mm/damon/tests/vaddr-kunit: replace damon_add_region() with damon_set_regions()
mm/damon/core: hide damon_add_region()
mm/damon/core: hide damon_insert_region()
mm/damon/core: hide damon_destroy_region()
mm/damon/core: add kdamond_call() debug_sanity check
mm/damon/core: remove damon_verify_nr_regions()
mm/damon/tests/core-kunit: add damon_set_regions() test cases
selftests/damon/sysfs.py: stop kdamonds before failing
selftests/damon/sysfs.sh: test monitoring intervals goal dir
selftests/damon/sysfs.sh: test addr_unit file existence
selftests/damon/sysfs.sh: test pause file existence
mm/damon/core: trace esz at first setup
MAINTAINERS: add testing ABI documents for mm

Sergey Senozhatsky (2):
zram: do not leak blk idx at the end of writeback
zram: clear trailing bytes of compressed writeback pages

Shakeel Butt (4):
memcg: store node_id instead of pglist_data pointer
memcg: uint16_t for nr_bytes in obj_stock_pcp
memcg: int16_t for cached slab stats
memcg: multi objcg charge support

Shivam Kalra (5):
mm/vmalloc: extract vm_area_free_pages() helper from vfree()
mm/vmalloc: use physical page count for vrealloc() grow-in-place check
mm/vmalloc: use physical page count in vread_iter() for VM_ALLOC areas
mm/vmalloc: free unused pages on vrealloc() shrink
lib/test_vmalloc: add vrealloc test case

Shivank Garg (1):
mm/migrate: rename PAGE_ migration flags to FOLIO_

Steven Rostedt (1):
maple_tree: document that "last" in mtree_insert_range() is inclusive

Sunny Patel (1):
mm/migrate_device: cleanup up PMD Checks and warnings

Suren Baghdasaryan (3):
fs/proc/task_mmu: read proc/pid/{smaps|numa_maps} under per-vma lock
selftests/proc: ensure the test is performed at the right page boundary
selftests/proc: add /proc/pid/smaps tearing tests

Takahiro Itazuri (1):
mm/mmu_notifier: fix a begin vs. start typo in the invalidate range comment

Tal Zussman (2):
mm/filemap: fix page_cache_prev_miss() when no hole is found
MAINTAINERS: add more files to PAGE CACHE section

Thorsten Blum (1):
mm/mseal: use min/max in mseal_apply

Usama Arif (3):
mm: make mmap_miss accounting symmetric for VM_SEQ_READ
mm: bypass mmap_miss heuristic for VM_EXEC readahead
mm: use mapping_max_folio_order() for force_thp_readahead order

Vineet Agarwal (5):
selftests/mm: khugepaged: initialize file contents via mmap
mm/khugepaged: return -EAGAIN for SCAN_PAGE_HAS_PRIVATE in MADV_COLLAPSE
selftests/mm: check file initialization writes in split_huge_page_test
mm/damon/sysfs-schemes: fix double increment of nr_regions
selftests/mm: ksm-functional-tests: fix partial write handling

Wang Wensheng (1):
kasan/test: only do kmalloc_double_kzfree for generic mode

Wei Yang (1):
selftests/mm/split_huge_page_test.c: close fd on write error

Xiang Gao (1):
mm/vmscan: fix typos in comments

Ye Liu (7):
mm/memory-failure: use bool for forcekill state
mm/khugepaged: use ALIGN helpers for PMD alignment
mm/khugepaged: fix inconsistent MMF_VM_HUGEPAGE flag due to allocation failure order
tools/mm/page-types: fix typo in madvise() error message
tools/mm/page-types: fix ternary operator precedence in sigbus handler
tools/mm/page-types: fix kpageflags option argument in getopt_long
mm/memory-failure: remove hugetlb output parameter from try_memory_failure_hugetlb()

Youngjun Park (2):
mm/swap, PM: hibernate: fix swapoff race in uswsusp by pinning swap device
mm/swap: remove redundant swap device reference in alloc/free

Zenghui Yu (1):
Docs/{ABI,admin-guide}/damon: fix various typoes

Zhen Ni (1):
mm/page_owner: fix %pGp format specifier argument type

Zhouyi Zhou (1):
highmem-internal.h: fix typo in the comment for kunmap_atomic()

Zijiang Huang (1):
mm/swap: add cond_resched() in swap_reclaim_full_clusters to prevent softlockup

fujunjie (5):
mm/madvise: reject invalid process_madvise() advice for zero-length vectors
mm/filemap: count only the faulting address as a mmap hit
mm/filemap: do not count FAULT_FLAG_TRIED retries as mmap hits
mm/compaction: respect cpusets when checking retry suitability
mm/page_alloc: fix deferred compaction accounting

niecheng (1):
mm/damon/core: clarify next_intervals_tune_sis update path

tanze (1):
mm/filemap: use folio_next_index() for start

wangxuewen (2):
mm/memory-failure: replace magic number 3 with GET_PAGE_MAX_RETRY_NUM
mm/shrinker: simplify shrinker_memcg_alloc() using guard()

zenghongling (1):
mm/percpu-internal.h: optimise pcpu_chunk struct to save memory

Documentation/ABI/testing/sysfs-kernel-mm-damon | 81 +-
Documentation/admin-guide/kernel-parameters.txt | 4 +
Documentation/admin-guide/mm/damon/lru_sort.rst | 8 +-
Documentation/admin-guide/mm/damon/reclaim.rst | 19 +-
Documentation/admin-guide/mm/damon/stat.rst | 7 +
Documentation/admin-guide/mm/damon/usage.rst | 108 +-
Documentation/admin-guide/mm/transhuge.rst | 4 +-
Documentation/admin-guide/sysctl/vm.rst | 2 +
Documentation/mm/damon/design.rst | 78 +-
Documentation/mm/damon/maintainer-profile.rst | 21 +
Documentation/mm/process_addrs.rst | 2 +-
MAINTAINERS | 16 +-
arch/arm64/mm/mmu.c | 19 +-
arch/loongarch/mm/init.c | 16 +-
arch/powerpc/mm/init_64.c | 8 -
arch/powerpc/mm/mem.c | 5 +-
arch/powerpc/platforms/pseries/hotplug-memory.c | 14 +-
arch/riscv/mm/init.c | 18 +-
arch/s390/mm/init.c | 5 +-
arch/s390/mm/vmem.c | 3 +-
arch/sh/mm/cache-sh4.c | 2 +-
arch/sparc/mm/init_64.c | 31 -
arch/x86/mm/init_64.c | 5 +-
drivers/base/memory.c | 41 +-
drivers/base/node.c | 6 +-
drivers/block/zram/zram_drv.c | 13 +-
drivers/char/mem.c | 25 +-
drivers/dax/kmem.c | 6 +
drivers/gpu/drm/drm_managed.c | 4 +-
drivers/s390/char/sclp_mem.c | 17 +-
fs/Makefile | 1 -
fs/proc/task_mmu.c | 269 ++-
fs/userfaultfd.c | 2231 -------------------
include/asm-generic/pgalloc.h | 2 +-
include/linux/bootmem_info.h | 1 -
include/linux/compaction.h | 10 +-
include/linux/damon.h | 136 +-
include/linux/gfp.h | 4 +
include/linux/gfp_types.h | 6 +-
include/linux/highmem-internal.h | 2 +-
include/linux/huge_mm.h | 47 +-
include/linux/list_lru.h | 70 +
include/linux/memcontrol.h | 31 +-
include/linux/memory.h | 7 +-
include/linux/memory_hotplug.h | 8 +-
include/linux/mm.h | 62 +-
include/linux/mm_inline.h | 2 +-
include/linux/mm_types.h | 19 +-
include/linux/mmu_notifier.h | 4 +-
include/linux/mmzone.h | 23 +-
include/linux/nodemask.h | 18 +-
include/linux/page_ref.h | 18 +
include/linux/pageblock-flags.h | 6 +-
include/linux/pagemap.h | 2 +
include/linux/swap.h | 24 +-
include/linux/swap_cgroup.h | 47 -
include/linux/thread_info.h | 2 +-
include/linux/userfaultfd_k.h | 40 +-
include/linux/vmalloc.h | 4 +-
include/linux/vmpressure.h | 9 +-
include/trace/events/damon.h | 38 +
include/trace/events/vmscan.h | 52 +
kernel/bpf/arena.c | 2 +-
kernel/fork.c | 5 +-
kernel/power/snapshot.c | 8 +-
kernel/power/swap.c | 2 +-
kernel/power/user.c | 15 +-
lib/maple_tree.c | 7 +-
lib/test_hmm.c | 49 +-
lib/test_meminit.c | 2 +-
lib/test_vmalloc.c | 62 +
mm/Kconfig | 7 +-
mm/Makefile | 3 -
mm/bootmem_info.c | 25 +-
mm/compaction.c | 11 +-
mm/damon/core.c | 655 +++++-
mm/damon/lru_sort.c | 59 +-
mm/damon/ops-common.c | 9 +-
mm/damon/paddr.c | 84 +-
mm/damon/reclaim.c | 98 +-
mm/damon/stat.c | 92 +-
mm/damon/sysfs-common.c | 41 +
mm/damon/sysfs-common.h | 2 +
mm/damon/sysfs-schemes.c | 289 ++-
mm/damon/sysfs.c | 588 +++++
mm/damon/tests/core-kunit.h | 180 +-
mm/damon/tests/vaddr-kunit.h | 27 +-
mm/damon/vaddr.c | 79 +-
mm/filemap.c | 133 +-
mm/gup.c | 8 +-
mm/huge_memory.c | 479 ++---
mm/hugetlb.c | 7 +-
mm/hugetlb_cma.c | 35 +-
mm/internal.h | 27 +-
mm/kasan/kasan_test_c.c | 10 +
mm/kfence/kfence_test.c | 2 +-
mm/khugepaged.c | 21 +-
mm/kmemleak.c | 148 +-
mm/list_lru.c | 238 ++-
mm/madvise.c | 60 +-
mm/memcontrol-v1.c | 68 +-
mm/memcontrol.c | 294 ++-
mm/memory-failure.c | 47 +-
mm/memory.c | 206 +-
mm/memory_hotplug.c | 34 +-
mm/mempolicy.c | 2 +-
mm/memremap.c | 4 +-
mm/migrate.c | 63 +-
mm/migrate_device.c | 9 +-
mm/mm_init.c | 73 +-
mm/mmap.c | 2 +-
mm/mseal.c | 5 +-
mm/page_alloc.c | 383 +++-
mm/page_io.c | 103 +-
mm/page_isolation.c | 67 +-
mm/page_owner.c | 2 +-
mm/page_vma_mapped.c | 9 +-
mm/percpu-internal.h | 6 +-
mm/readahead.c | 36 +-
mm/rmap.c | 8 +-
mm/shmem.c | 278 ++-
mm/shrinker.c | 18 +-
mm/sparse-vmemmap.c | 82 +-
mm/sparse.c | 68 +-
mm/swap.c | 57 +-
mm/swap.h | 90 +-
mm/swap_cgroup.c | 172 --
mm/swap_state.c | 533 +++--
mm/swap_table.h | 179 +-
mm/swapfile.c | 460 ++--
mm/userfaultfd.c | 2259 +++++++++++++++++++-
mm/util.c | 32 +-
mm/vma.c | 3 +
mm/vmalloc.c | 130 +-
mm/vmpressure.c | 15 +-
mm/vmscan.c | 370 ++--
mm/workingset.c | 10 +-
mm/zswap.c | 25 +-
net/rds/tcp_recv.c | 2 +-
rust/kernel/page.rs | 1 +
samples/damon/mtier.c | 10 +-
tools/mm/page-types.c | 8 +-
tools/testing/selftests/cgroup/lib/cgroup_util.c | 18 +-
.../selftests/cgroup/lib/include/cgroup_util.h | 4 +-
tools/testing/selftests/cgroup/test_core.c | 2 +-
tools/testing/selftests/cgroup/test_freezer.c | 2 +-
tools/testing/selftests/cgroup/test_kmem.c | 13 +-
tools/testing/selftests/cgroup/test_memcontrol.c | 19 +-
tools/testing/selftests/cgroup/test_zswap.c | 181 +-
tools/testing/selftests/damon/_damon_sysfs.py | 31 +-
.../selftests/damon/drgn_dump_damon_status.py | 3 +
tools/testing/selftests/damon/sysfs.py | 60 +-
tools/testing/selftests/damon/sysfs.sh | 62 +
tools/testing/selftests/memfd/fuse_test.c | 2 +-
tools/testing/selftests/memfd/memfd_test.c | 4 +-
tools/testing/selftests/mm/Makefile | 10 +-
tools/testing/selftests/mm/check_config.sh | 2 +-
tools/testing/selftests/mm/droppable.c | 9 +-
tools/testing/selftests/mm/hmm-tests.c | 36 +-
tools/testing/selftests/mm/khugepaged.c | 18 +-
tools/testing/selftests/mm/ksft_kmemleak_dedup.sh | 222 ++
tools/testing/selftests/mm/ksm_functional_tests.c | 19 +-
tools/testing/selftests/mm/mlock2-tests.c | 84 +-
tools/testing/selftests/mm/mremap_test.c | 109 +-
tools/testing/selftests/mm/process_madv.c | 28 +
tools/testing/selftests/mm/run_vmtests.sh | 1 +
tools/testing/selftests/mm/split_huge_page_test.c | 12 +-
tools/testing/selftests/proc/proc-maps-race.c | 293 ++-
tools/testing/vma/include/dup.h | 20 +-
169 files changed, 9218 insertions(+), 5621 deletions(-)
delete mode 100644 fs/userfaultfd.c
delete mode 100644 include/linux/swap_cgroup.h
delete mode 100644 mm/swap_cgroup.c
create mode 100755 tools/testing/selftests/mm/ksft_kmemleak_dedup.sh