[GIT PULL] MM updates for 6.9-rc1
From: Andrew Morton
Date: Wed Mar 13 2024 - 23:05:50 EST
Linus, please merge the MM updates for this development cycle, thanks.
Current conflicts and their linux-next resolutions are:
include/linux/sched.h. vs block tree:
https://lkml.kernel.org/r/20240214112519.153c8480@xxxxxxxxxxxxxxxx
init/main.c. vs vfs-brauner tree:
https://lkml.kernel.org/r/20240221103200.165d8cd5@xxxxxxxxxxxxxxxx
mm/vmalloc.c, vs bpf-next tree:
https://lkml.kernel.org/r/20240307123619.159f1c4c@xxxxxxxxxxxxxxxx
Upcoming conflicts include:
Documentation/process/changes.rst, vs rust tree:
https://lkml.kernel.org/r/20240129133352.25a3ee19@xxxxxxxxxxxxxxxx
https://lkml.kernel.org/r/20240301153347.3b909702@xxxxxxxxxxxxxxxx
arch/riscv/include/asm/ftrace.h, vs risc-v-fixes tree:
https://lkml.kernel.org/r/20240226092711.7985af2e@xxxxxxxxxxxxxxxx
arch/powerpc/mm/pgtable_32.c, vs powerpc tree:
https://lkml.kernel.org/r/20240229101721.58569685@xxxxxxxxxxxxxxxx
Thanks.
The following changes since commit 720da1e593b85a550593b415bf1d79a053133451:
mm/debug_vm_pgtable: fix BUG_ON with pud advanced test (2024-02-23 17:27:13 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2024-03-13-20-04
for you to fetch changes up to 270700dd06ca41a4779c19eb46608f076bb7d40e:
mm/zswap: remove the memcpy if acomp is not sleepable (2024-03-13 12:12:21 -0700)
----------------------------------------------------------------
- Sumanth Korikkar has taught s390 to allocate hotplug-time page frames
from hotplugged memory rather than only from main memory. Series
"implement "memmap on memory" feature on s390".
- More folio conversions from Matthew Wilcox in the series
"Convert memcontrol charge moving to use folios"
"mm: convert mm counter to take a folio"
- Chengming Zhou has optimized zswap's rbtree locking, providing
significant reductions in system time and modest but measurable
reductions in overall runtimes. The series is "mm/zswap: optimize the
scalability of zswap rb-tree".
- Chengming Zhou has also provided the series "mm/zswap: optimize zswap
lru list" which provides measurable runtime benefits in some
swap-intensive situations.
- And Chengming Zhou further optimizes zswap in the series "mm/zswap:
optimize for dynamic zswap_pools". Measured improvements are modest.
- zswap cleanups and simplifications from Yosry Ahmed in the series "mm:
zswap: simplify zswap_swapoff()".
- In the series "Add DAX ABI for memmap_on_memory", Vishal Verma has
contributed several DAX cleanups as well as adding a sysfs tunable to
control the memmap_on_memory setting when the dax device is hotplugged
as system memory.
- Johannes Weiner has added the large series "mm: zswap: cleanups",
which does that.
- More DAMON work from SeongJae Park in the series
"mm/damon: make DAMON debugfs interface deprecation unignorable"
"selftests/damon: add more tests for core functionalities and corner cases"
"Docs/mm/damon: misc readability improvements"
"mm/damon: let DAMOS feeds and tame/auto-tune itself"
- In the series "mm/mempolicy: weighted interleave mempolicy and sysfs
extension" Rakie Kim has developed a new mempolicy interleaving policy
wherein we allocate memory across nodes in a weighted fashion rather
than uniformly. This is beneficial in heterogeneous memory environments
appearing with CXL.
- Christophe Leroy has contributed some cleanup and consolidation work
against the ARM pagetable dumping code in the series "mm: ptdump:
Refactor CONFIG_DEBUG_WX and check_wx_pages debugfs attribute".
- Luis Chamberlain has added some additional xarray selftesting in the
series "test_xarray: advanced API multi-index tests".
- Muhammad Usama Anjum has reworked the selftest code to make its
human-readable output conform to the TAP ("Test Anything Protocol")
format. Amongst other things, this opens up the use of third-party
tools to parse and process out selftesting results.
- Ryan Roberts has added fork()-time PTE batching of THP ptes in the
series "mm/memory: optimize fork() with PTE-mapped THP". Mainly
targeted at arm64, this significantly speeds up fork() when the process
has a large number of pte-mapped folios.
- David Hildenbrand also gets in on the THP pte batching game in his
series "mm/memory: optimize unmap/zap with PTE-mapped THP". It
implements batching during munmap() and other pte teardown situations.
The microbenchmark improvements are nice.
- And in the series "Transparent Contiguous PTEs for User Mappings" Ryan
Roberts further utilizes arm's pte's contiguous bit ("contpte
mappings"). Kernel build times on arm64 improved nicely. Ryan's series
"Address some contpte nits" provides some followup work.
- In the series "mm/hugetlb: Restore the reservation" Breno Leitao has
fixed an obscure hugetlb race which was causing unnecessary page faults.
He has also added a reproducer under the selftest code.
- In the series "selftests/mm: Output cleanups for the compaction test",
Mark Brown did what the title claims.
- Kinsey Ho has added the series "mm/mglru: code cleanup and refactoring".
- Even more zswap material from Nhat Pham. The series "fix and extend
zswap kselftests" does as claimed.
- In the series "Introduce cpu_dcache_is_aliasing() to fix DAX
regression" Mathieu Desnoyers has cleaned up and fixed rather a mess in
our handling of DAX on archiecctures which have virtually aliasing data
caches. The arm architecture is the main beneficiary.
- Lokesh Gidra's series "per-vma locks in userfaultfd" provides dramatic
improvements in worst-case mmap_lock hold times during certain
userfaultfd operations.
- Some page_owner enhancements and maintenance work from Oscar Salvador
in his series
"page_owner: print stacks and their outstanding allocations"
"page_owner: Fixup and cleanup"
- Uladzislau Rezki has contributed some vmalloc scalability improvements
in his series "Mitigate a vmap lock contention". It realizes a 12x
improvement for a certain microbenchmark.
- Some kexec/crash cleanup work from Baoquan He in the series "Split
crash out from kexec and clean up related config items".
- Some zsmalloc maintenance work from Chengming Zhou in the series
"mm/zsmalloc: fix and optimize objects/page migration"
"mm/zsmalloc: some cleanup for get/set_zspage_mapping()"
- Zi Yan has taught the MM to perform compaction on folios larger than
order=0. This a step along the path to implementaton of the merging of
large anonymous folios. The series is named "Enable >0 order folio
memory compaction".
- Christoph Hellwig has done quite a lot of cleanup work in the
pagecache writeback code in his series "convert write_cache_pages() to
an iterator".
- Some modest hugetlb cleanups and speedups in Vishal Moola's series
"Handle hugetlb faults under the VMA lock".
- Zi Yan has changed the page splitting code so we can split huge pages
into sizes other than order-0 to better utilize large folios. The
series is named "Split a folio to any lower order folios".
- David Hildenbrand has contributed the series "mm: remove
total_mapcount()", a cleanup.
- Matthew Wilcox has sought to improve the performance of bulk memory
freeing in his series "Rearrange batched folio freeing".
- Gang Li's series "hugetlb: parallelize hugetlb page init on boot"
provides large improvements in bootup times on large machines which are
configured to use large numbers of hugetlb pages.
- Matthew Wilcox's series "PageFlags cleanups" does that.
- Qi Zheng's series "minor fixes and supplement for ptdesc" does that
also. S390 is affected.
- Cleanups to our pagemap utility functions from Peter Xu in his series
"mm/treewide: Replace pXd_large() with pXd_leaf()".
- Nico Pache has fixed a few things with our hugepage selftests in his
series "selftests/mm: Improve Hugepage Test Handling in MM Selftests".
- Also, of course, many singleton patches to many things. Please see
the individual changelogs for details.
----------------------------------------------------------------
Alexander Potapenko (1):
mm: kmsan: remove runtime checks from kmsan_unpoison_memory()
Andrew Morton (1):
merge mm-hotfixes-stable into mm-nonmm-stable to pick up stackdepot changes
Anshuman Khandual (5):
mm/cma: don't treat bad input arguments for cma_alloc() as its failure
mm/cma: drop CONFIG_CMA_DEBUG
mm/cma: make MAX_CMA_AREAS = CONFIG_CMA_AREAS
mm/cma: add sysfs file 'release_pages_success'
mm/hugetlb: move page order check inside hugetlb_cma_reserve()
Arnd Bergmann (1):
kasan/test: avoid gcc warning for intentional overflow
Baolin Wang (3):
mm: compaction: update the cc->nr_migratepages when allocating or freeing the freepages
mm: hugetlb: improve the handling of hugetlb allocation failure for freed or in-use hugetlb
mm: compaction: limit the suitable target page order to be less than cc->order
Baoquan He (16):
mm/vmalloc: remove vmap_area_list
kexec: split crashkernel reservation code out from crash_core.c
crash: split vmcoreinfo exporting code out from crash_core.c
crash: remove dependency of FA_DUMP on CRASH_DUMP
crash: split crash dumping code out from kexec_core.c
crash: clean up kdump related config items
x86, crash: wrap crash dumping code into crash related ifdefs
arm64, crash: wrap crash dumping code into crash related ifdefs
ppc, crash: enforce KEXEC and KEXEC_FILE to select CRASH_DUMP
s390, crash: wrap crash dumping code into crash related ifdefs
sh, crash: wrap crash dumping code into crash related ifdefs
mips, crash: wrap crash dumping code into crash related ifdefs
riscv, crash: wrap crash dumping code into crash related ifdefs
arm, crash: wrap crash dumping code into crash related ifdefs
loongarch, crash: wrap crash dumping code into crash related ifdefs
arch, crash: move arch_crash_save_vmcoreinfo() out to file vmcore_info.c
Barry Song (10):
zram: do not allocate physically contiguous strm buffers
mm: zswap: increase reject_compress_poor but not reject_compress_fail if compression returns ENOSPC
mm/swapfile:__swap_duplicate: drop redundant WRITE_ONCE on swap_map for err cases
madvise:madvise_cold_or_pageout_pte_range(): allow split while folio_estimated_sharers = 0
Docs/mm/damon/design: remove the details for pageout as paddr doesn't use MADV_PAGEOUT
mm: madvise: pageout: ignore references rather than clearing young
mm: make folio_pte_batch available outside of mm/memory.c
mm: prohibit the last subpage from reusing the entire large folio
crypto: introduce: acomp_is_async to expose if comp drivers might sleep
mm/zswap: remove the memcpy if acomp is not sleepable
Breno Leitao (4):
selftests/mm: new test that steals pages
selftests/mm: run_vmtests.sh: add hugetlb test category
mm/hugetlb: restore the reservation if needed
selftests/mm: run_vmtests.sh: add hugetlb_madv_vs_map
Byungchul Park (2):
sched/numa, mm: do not try to migrate memory to memoryless nodes
mm, vmscan: retry kswapd's priority loop with cache_trim_mode off on failure
Carlos Galo (1):
mm: update mark_victim tracepoints fields
Changbin Du (1):
modules: wait do_free_init correctly
Chengming Zhou (22):
mm/zswap: make sure each swapfile always have zswap rb-tree
mm/zswap: split zswap rb-tree
mm/zswap: fix race between lru writeback and swapoff
mm/list_lru: remove list_lru_putback()
mm/zswap: add more comments in shrink_memcg_cb()
mm/zswap: invalidate zswap entry when swap entry free
mm/zswap: stop lru list shrinking when encounter warm region
mm/zswap: remove duplicate_entry debug value
mm/zswap: only support zswap_exclusive_loads_enabled
mm/zswap: zswap entry doesn't need refcount anymore
mm/zswap: optimize and cleanup the invalidation of duplicate entry
mm/zsmalloc: fix migrate_write_lock() when !CONFIG_COMPACTION
mm/zsmalloc: remove migrate_write_lock_nested()
mm/zsmalloc: remove unused zspage->isolated
mm/zsmalloc: remove set_zspage_mapping()
mm/zsmalloc: remove_zspage() don't need fullness parameter
mm/zsmalloc: remove get_zspage_mapping()
MAINTAINERS: add Chengming Zhou as a zswap reviewer
mm/zswap: global lru and shrinker shared by all zswap_pools
mm/zswap: change zswap_pool kref to percpu_ref
mm/zsmalloc: don't need to reserve LSB in handle
mm/zswap: global lru and shrinker shared by all zswap_pools fix
Christoph Hellwig (6):
writeback: don't call mapping_set_error on AOP_WRITEPAGE_ACTIVATE
writeback: fix done_index when hitting the wbc->nr_to_write
writeback: also update wbc->nr_to_write on writeback failure
writeback: only update ->writeback_index for range_cyclic writeback
writeback: rework the loop termination condition in write_cache_pages
writeback: add a writeback iterator
Christophe JAILLET (1):
mm: reduce dependencies on <linux/kernel.h>
Christophe Leroy (5):
arm: ptdump: rename CONFIG_DEBUG_WX to CONFIG_ARM_DEBUG_WX
arm64, powerpc, riscv, s390, x86: ptdump: refactor CONFIG_DEBUG_WX
powerpc,s390: ptdump: define ptdump_check_wx() regardless of CONFIG_DEBUG_WX
mm: ptdump: have ptdump_check_wx() return bool
mm: ptdump: add check_wx_pages debugfs attribute
Dan Carpenter (1):
lib/stackdepot: off by one in depot_fetch_stack()
Daniel Gomez (1):
XArray: add cmpxchg order test
David Hildenbrand (26):
arm/pgtable: define PFN_PTE_SHIFT
nios2/pgtable: define PFN_PTE_SHIFT
powerpc/pgtable: define PFN_PTE_SHIFT
riscv/pgtable: define PFN_PTE_SHIFT
s390/pgtable: define PFN_PTE_SHIFT
sparc/pgtable: define PFN_PTE_SHIFT
mm/pgtable: make pte_next_pfn() independent of set_ptes()
arm/mm: use pte_next_pfn() in set_ptes()
powerpc/mm: use pte_next_pfn() in set_ptes()
mm/memory: factor out copying the actual PTE in copy_present_pte()
mm/memory: pass PTE to copy_present_pte()
mm/memory: optimize fork() with PTE-mapped THP
mm/memory: ignore dirty/accessed/soft-dirty bits in folio_pte_batch()
mm/memory: ignore writable bit in folio_pte_batch()
mm/memory: factor out zapping of present pte into zap_present_pte()
mm/memory: handle !page case in zap_present_pte() separately
mm/memory: further separate anon and pagecache folio handling in zap_present_pte()
mm/memory: factor out zapping folio pte into zap_present_folio_pte()
mm/mmu_gather: pass "delay_rmap" instead of encoded page to __tlb_remove_page_size()
mm/mmu_gather: define ENCODED_PAGE_FLAG_DELAY_RMAP
mm/mmu_gather: add tlb_remove_tlb_entries()
mm/mmu_gather: add __tlb_remove_folio_pages()
mm/mmu_gather: improve cond_resched() handling with large folios and expensive page freeing
mm/memory: optimize unmap/zap with PTE-mapped THP
mm/memfd: refactor memfd_tag_pins() and memfd_wait_for_pins()
mm: remove total_mapcount()
Gang Li (7):
hugetlb: code clean for hugetlb_hstate_alloc_pages
hugetlb: split hugetlb_hstate_alloc_pages
hugetlb: pass *next_nid_to_alloc directly to for_each_node_mask_to_alloc
padata: downgrade padata_do_multithreaded to serial execution for non-SMP
hugetlb: have CONFIG_HUGETLBFS select CONFIG_PADATA
hugetlb: parallelize 2M hugetlb allocation and initialization
hugetlb: parallelize 1G hugetlb initialization
Gang Li Subject: padata: dispatch works on (1):
Author: Gang Li padata: dispatch works on
Greg Thelen (1):
selftests/memfd: delete unused declarations
Gregory Price (3):
mm/mempolicy: refactor a read-once mechanism into a function for re-use
mm/mempolicy: introduce MPOL_WEIGHTED_INTERLEAVE for weighted interleaving
mm/mempolicy: protect task interleave functions with tsk->mems_allowed_seq
Haifeng Xu (2):
mm: list_lru: disable memcg_aware when cgroup.memory is set to "nokmem"
mm: list_lru: remove unused macro list_lru_init_key()
Hao Ge (4):
mm/vmscan: change the type of file from int to bool
mm/vmscan: make too_many_isolated return bool
mm/page_alloc: make bad_range() return bool
mm/page_alloc: make check_new_page() return bool
Hongbo Li (1):
mm/filemap: avoid type conversion
Huang Shijie (1):
crash_core: export vmemmap when CONFIG_SPARSEMEM_VMEMMAP is enabled
Huang Ying (1):
mm and cache_info: remove unnecessary CPU cache info update
Hui Zhu (1):
fs/proc/task_mmu.c: add_to_pagemap: remove useless parameter addr
JP Kobryn (1):
selftests/mm/ksm_functional: prevent unmapping undefined address
James Houghton (1):
mm: add an explicit smp_wmb() to UFFDIO_CONTINUE
Jan Kara (1):
shmem: properly report quota mount options
Javier Carrasco (1):
selftests: damon: add access_memory to .gitignore
Johannes Weiner (20):
mm: zswap: rename zswap_free_entry to zswap_entry_free
mm: zswap: inline and remove zswap_entry_find_get()
mm: zswap: move zswap_invalidate_entry() to related functions
mm: zswap: warn when referencing a dead entry
mm: zswap: clean up zswap_entry_put()
mm: zswap: rename __zswap_load() to zswap_decompress()
mm: zswap: break out zwap_compress()
mm: zswap: further cleanup zswap_store()
mm: zswap: simplify zswap_invalidate()
mm: zswap: function ordering: pool alloc & free
mm: zswap: function ordering: pool refcounting
mm: zswap: function ordering: zswap_pools
mm: zswap: function ordering: pool params
mm: zswap: function ordering: public lru api
mm: zswap: function ordering: move entry sections out of LRU section
mm: zswap: function ordering: move entry section out of tree section
mm: zswap: function ordering: compress & decompress functions
mm: zswap: function ordering: per-cpu compression infra
mm: zswap: function ordering: writeback
mm: zswap: function ordering: shrink_memcg_cb
John Groves (1):
memremap.h: correct an error in a comment
John Hubbard (1):
mm/memory.c: do_numa_page(): remove a redundant page table read
Juntong Deng (1):
kasan: increase the number of bits to shift when recording extra timestamps
Kalesh Singh (1):
mm/cma: fix placement of trace_cma_alloc_start/finish
Kefeng Wang (13):
mm: memory: use nth_page() in clear/copy_subpage()
s390: use pfn_swap_entry_folio() in ptep_zap_swap_entry()
mm: use pfn_swap_entry_folio() in __split_huge_pmd_locked()
mm: use pfn_swap_entry_to_folio() in zap_huge_pmd()
mm: use pfn_swap_entry_folio() in copy_nonpresent_pte()
mm: convert to should_zap_page() to should_zap_folio()
mm: convert mm_counter() to take a folio
mm: convert mm_counter_file() to take a folio
mm: memory: move mem_cgroup_charge() into alloc_anon_folio()
mm: compaction: refactor compact_node()
mm: compaction: early termination in compact_nodes()
zram: zcomp: remove zcomp_set_max_streams() declaration
mm: memory: fix shift-out-of-bounds in fault_around_bytes_set
Kinsey Ho (5):
mm/mglru: drop unused parameter
mm/mglru: improve should_run_aging()
mm/mglru: improve reset_mm_stats()
mm/mglru: improve struct lru_gen_mm_walk
mm/mglru: improve swappiness handling
Kuan-Ying Lee (1):
scripts/gdb/vmalloc: fix vmallocinfo error
Lance Yang (2):
mm/khugepaged: bypassing unnecessary scans with MMF_DISABLE_THP check
mm/khugepaged: keep mm in mm_slot without MMF_DISABLE_THP check
Levi Yun (1):
kswapd: replace try_to_freeze() with kthread_freezable_should_stop()
Li Zhijian (1):
mm/demotion: print demotion targets
Lokesh Gidra (5):
userfaultfd: fix return error if mmap_changing is non-zero in MOVE ioctl
userfaultfd: move userfaultfd_ctx struct to header file
userfaultfd: protect mmap_changing with rw_sem in userfaulfd_ctx
mm: add vma_assert_locked() for !CONFIG_PER_VMA_LOCK
userfaultfd: use per-vma locks in userfaultfd operations
Luis Chamberlain (1):
test_xarray: add tests for advanced multi-index use
Lukas Bulwahn (2):
maple_tree: avoid duplicate variable init in mast_spanning_rebalance()
mempolicy: clean up minor dead code in queue_pages_test_walk()
Mark Brown (2):
selftests/mm: log skipped compaction test as a skip
selftests/mm: log a consistent test name for check_compaction
Mark-PK Tsai (1):
zram: use copy_page for full page copy
Martin Kaiser (3):
lib/test_vmalloc.c: fix typo in function name
lib/test_vmalloc.c: drop empty exit function
lib/test_vmalloc.c: use unsigned long constant
Mathieu Desnoyers (10):
nvdimm/pmem: fix leak on dax_add_host() failure
dax: add empty static inline for CONFIG_DAX=n
dax: alloc_dax() return ERR_PTR(-EOPNOTSUPP) for CONFIG_DAX=n
nvdimm/pmem: Treat alloc_dax() -EOPNOTSUPP failure as non-fatal
dm: treat alloc_dax() -EOPNOTSUPP failure as non-fatal
dcssblk: handle alloc_dax() -EOPNOTSUPP failure
virtio: treat alloc_dax() -EOPNOTSUPP failure as non-fatal
dax: check for data cache aliasing at runtime
Introduce cpu_dcache_is_aliasing() across all architectures
dax: fix incorrect list of data cache aliasing architectures
Matthew Cassell (1):
mm/util.c: add byte count to __vm_enough_memory failure warning
Matthew Wilcox (Oracle) (48):
memcg: convert mem_cgroup_move_charge_pte_range() to use a folio
memcg: return the folio in union mc_target
memcg: use a folio in get_mctgt_type
memcg: use a folio in get_mctgt_type_thp
mm: add pfn_swap_entry_folio()
proc: use pfn_swap_entry_folio where obvious
mprotect: use pfn_swap_entry_folio
highmem: add kernel-doc for memcpy_*_folio()
rmap: replace two calls to compound_order with folio_order
writeback: remove a duplicate prototype for tag_pages_for_writeback
writeback: factor folio_prepare_writeback() out of write_cache_pages()
writeback: factor writeback_get_batch() out of write_cache_pages()
writeback: simplify the loops in write_cache_pages()
pagevec: add ability to iterate a queue
writeback: use the folio_batch queue iterator
writeback: move the folio_prepare_writeback loop out of write_cache_pages()
writeback: remove a use of write_cache_pages() from do_writepages()
mm: support order-1 folios in the page cache
mm: make folios_put() the basis of release_pages()
mm: convert free_unref_page_list() to use folios
mm: add free_unref_folios()
mm: use folios_put() in __folio_batch_release()
memcg: add mem_cgroup_uncharge_folios()
mm: remove use of folio list from folios_put()
mm: use free_unref_folios() in put_pages_list()
mm: use __page_cache_release() in folios_put()
mm: handle large folios in free_unref_folios()
mm: allow non-hugetlb large folios to be batch processed
mm: free folios in a batch in shrink_folio_list()
mm: free folios directly in move_folios_to_lru()
memcg: remove mem_cgroup_uncharge_list()
mm: remove free_unref_page_list()
mm: remove lru_to_page()
mm: convert free_pages_and_swap_cache() to use folios_put()
mm: use a folio in __collapse_huge_page_copy_succeeded()
mm: convert free_swap_cache() to take a folio
mm: use folio more widely in __split_huge_page
mm: separate out FOLIO_FLAGS from PAGEFLAGS
mm: remove PageWaiters, PageSetWaiters and PageClearWaiters
mm: remove PageYoung and PageIdle definitions
mm: add __dump_folio()
mm: make dump_page() take a const argument
mm: constify testing page/folio flags
mm: constify more page/folio tests
mm: remove cast from page_to_nid()
mm/mempolicy: use a folio in do_mbind()
mm: remove folio from deferred split list before uncharging it
mm: fix list corruption in put_pages_list
Mike Rapoport (IBM) (1):
MAINTAINERS: update mm and memcg entries
Muhammad Usama Anjum (11):
selftests/mm: map_fixed_noreplace: conform test to TAP format output
selftests/mm: map_hugetlb: conform test to TAP format output
selftests/mm: map_populate: conform test to TAP format output
selftests/mm: mlock-random-test: conform test to TAP format output
selftests/mm: mlock2-tests: conform test to TAP format output
selftests/mm: mrelease_test: conform test to TAP format output
selftests/mm: mremap_dontunmap: conform test to TAP format output
selftests/mm: split_huge_page_test: conform test to TAP format output
selftests/mm: thuge-gen: conform to TAP format output
selftests/mm: transhuge-stress: conform to TAP format output
selftests/mm: virtual_address_range: conform to TAP format output
Nhat Pham (3):
selftests: zswap: add zswap selftest file to zswap maintainer entry
selftests: fix the zswap invasive shrink test
selftests: add zswapin and no zswap tests
Nico Pache (4):
selftests: mm: perform some system cleanup before using hugepages
selftests/mm: dont fail testsuite due to a lack of hugepages
selftests/mm: skip uffd hugetlb tests with insufficient hugepages
selftests/mm: skip the hugetlb-madvise tests on unmet hugepage requirements
Oscar Salvador (9):
lib/stackdepot: fix first entry having a 0-handle
lib/stackdepot: move stack_record struct definition into the header
mm,page_owner: maintain own list of stack_records structs
mm,page_owner: implement the tracking of the stacks count
mm,page_owner: display all stacks and their count
mm,page_owner: filter out stacks by a threshold
mm,page_owner: update Documentation regarding page_owner_stacks
mm,page_owner: check for null stack_record before bumping its refcount
mm,page_owner: drop unnecessary check
Pankaj Raghav (1):
readahead: use ilog2 instead of a while loop in page_cache_ra_order()
Paul Gofman (1):
mm/migrate: preserve exact soft-dirty state
Paul Heidekrüger (2):
kasan: add atomic tests
kasan: fix a2 allocation and remove explicit cast in atomic tests
Peter Xu (11):
mm/powerpc: define pXd_large() with pXd_leaf()
mm/powerpc: replace pXd_is_leaf() with pXd_leaf()
mm/x86: replace p4d_large() with p4d_leaf()
mm/x86: replace pgd_large() with pgd_leaf()
mm/x86: drop two unnecessary pud_leaf() definitions
mm/kasan: use pXd_leaf() in shadow_mapped()
mm/treewide: replace pmd_large() with pmd_leaf()
mm/treewide: replace pud_large() with pud_leaf()
mm/treewide: drop pXd_large()
mm/treewide: align up pXd_leaf() retval across archs
mm: recover pud_leaf() definitions in nopmd case
Qi Zheng (3):
mm: pgtable: correct the wrong comment about ptdesc->__page_flags
mm: pgtable: add missing pt_index to struct ptdesc
s390: supplement for ptdesc conversion
Qiang Zhang (1):
memtest: use {READ,WRITE}_ONCE in memory scanning
Rakie Kim (1):
mm/mempolicy: implement the sysfs-based weighted_interleave interface
Ricardo B. Marliere (1):
memory tier: make memory_tier_subsys const
Richard Chang (1):
mm: add alloc_contig_migrate_range allocation statistics
Ronald Monthero (1):
mm/zswap: improve with alloc_workqueue() call
Ryan Roberts (23):
tools/mm: add thpmaps script to dump THP usage info
arm64/mm: make set_ptes() robust when OAs cross 48-bit boundary
mm: clarify the spec for set_ptes()
mm: thp: batch-collapse PMD with set_ptes()
mm: introduce pte_advance_pfn() and use for pte_next_pfn()
arm64/mm: convert pte_next_pfn() to pte_advance_pfn()
x86/mm: convert pte_next_pfn() to pte_advance_pfn()
mm: tidy up pte_next_pfn() definition
arm64/mm: convert READ_ONCE(*ptep) to ptep_get(ptep)
arm64/mm: convert set_pte_at() to set_ptes(..., 1)
arm64/mm: convert ptep_clear() to ptep_get_and_clear()
arm64/mm: new ptep layer to manage contig bit
arm64/mm: dplit __flush_tlb_range() to elide trailing DSB
arm64/mm: wire up PTE_CONT for user mappings
arm64/mm: implement new wrprotect_ptes() batch API
arm64/mm: implement new [get_and_]clear_full_ptes() batch APIs
mm: add pte_batch_hint() to reduce scanning in folio_pte_batch()
arm64/mm: implement pte_batch_hint()
arm64/mm: __always_inline to improve fork() perf
arm64/mm: automatically fold contpte mappings
arm64/mm: export contpte symbols only to GPL users
arm64/mm: improve comment in contpte_ptep_get_lockless()
mm: swap: fix race between free_swap_and_cache() and swapoff()
SeongJae Park (43):
Docs/admin-guide/mm/damon/usage: use sysfs interface for tracepoints example
mm/damon: rename CONFIG_DAMON_DBGFS to DAMON_DBGFS_DEPRECATED
mm/damon/dbgfs: implement deprecation notice file
mm/damon/dbgfs: make debugfs interface deprecation message a macro
Docs/admin-guide/mm/damon/usage: document 'DEPRECATED' file of DAMON debugfs interface
selftets/damon: prepare for monitor_on file renaming
mm/damon/dbgfs: rename monitor_on file to monitor_on_DEPRECATED
Docs/admin-guide/mm/damon/usage: update for monitor_on renaming
Docs/translations/damon/usage: update for monitor_on renaming
mm/damon/sysfs: handle 'state' file inputs for every sampling interval if possible
selftests/damon/_damon_sysfs: support DAMOS quota
selftests/damon/_damon_sysfs: support DAMOS stats
selftests/damon/_damon_sysfs: support DAMOS apply interval
selftests/damon: add a test for DAMOS quota
selftests/damon: add a test for DAMOS apply intervals
selftests/damon: add a test for a race between target_ids_read() and dbgfs_before_terminate()
selftests/damon: add a test for the pid leak of dbgfs_target_ids_write()
selftests/damon/_chk_dependency: get debugfs mount point from /proc/mounts
Docs/mm/damon/maintainer-profile: fix reference links for mm-[un]stable tree
Docs/mm/damon: move the list of DAMOS actions to design doc
Docs/mm/damon: move DAMON operation sets list from the usage to the design document
Docs/mm/damon: move monitoring target regions setup detail from the usage to the design document
Docs/admin-guide/mm/damon/usage: fix wrong quotas diabling condition
mm/damon/core: set damos_quota->esz as public field and document
mm/damon/sysfs-schemes: implement quota effective_bytes file
mm/damon/sysfs: implement a kdamond command for updating schemes' effective quotas
Docs/ABI/damon: document effective_bytes sysfs file
Docs/admin-guide/mm/damon/usage: document effective_bytes file
mm/damon: move comments and fields for damos-quota-prioritization to the end
mm/damon/core: split out quota goal related fields to a struct
mm/damon/core: add multiple goals per damos_quota and helpers for those
mm/damon/sysfs: use only quota->goals
mm/damon/core: remove ->goal field of damos_quota
mm/damon/core: let goal specified with only target and current values
mm/damon/core: support multiple metrics for quota goal
mm/damon/core: implement PSI metric DAMOS quota goal
mm/damon/sysfs-schemes: support PSI-based quota auto-tune
Docs/mm/damon/design: document quota goal self-tuning
Docs/ABI/damon: document quota goal metric file
Docs/admin-guide/mm/damon/usage: document quota goal metric file
mm/damon/reclaim: implement user-feedback driven quota auto-tuning
mm/damon/reclaim: implement memory PSI-driven quota self-tuning
Docs/admin-guide/mm/damon/reclaim: document auto-tuning parameters
Shakeel Butt (1):
mm: writeback: ratelimit stat flush from mem_cgroup_wb_stats
Sidhartha Kumar (1):
maple_tree: fix comment describing mas_node_count_gfp()
Sumanth Korikkar (5):
mm/memory_hotplug: introduce MEM_PREPARE_ONLINE/MEM_FINISH_OFFLINE notifiers
s390/mm: allocate vmemmap pages from self-contained memory range
s390/sclp: remove unhandled memory notifier type
s390/mm: implement MEM_PREPARE_ONLINE/MEM_FINISH_OFFLINE notifiers
s390: enable MHP_MEMMAP_ON_MEMORY
Suren Baghdasaryan (2):
userfaultfd: handle zeropage moves by UFFDIO_MOVE
mm: enumerate all gfp flags
T.J. Mercier (2):
mm: memcg: don't periodically flush stats when memcg is disabled
mm: memcg: use larger batches for proactive reclaim
Thorsten Blum (1):
mm: page_alloc: use div64_ul() instead of do_div()
Tiezhu Yang (2):
kasan: docs: update descriptions about test file and module
kasan: rename test_kasan_module_init to kasan_test_module_init
Uladzislau Rezki (Sony) (13):
mm: vmalloc: add va_alloc() helper
mm: vmalloc: rename adjust_va_to_fit_type() function
mm: vmalloc: move vmap_init_free_space() down in vmalloc.c
mm: vmalloc: remove global vmap_area_root rb-tree
mm: vmalloc: remove global purge_vmap_area_root rb-tree
mm: vmalloc: offload free_vmap_area_lock lock
mm: vmalloc: add a scan area of VA only once
mm: vmalloc: support multiple nodes in vread_iter
mm: vmalloc: support multiple nodes in vmallocinfo
mm: vmalloc: set nr_nodes based on CPUs in a system
mm: vmalloc: add a shrinker to drain vmap pools
mm: vmalloc: improve description of vmap node layer
mm: vmalloc: refactor vmalloc_dump_obj() function
Vincenzo Mezzela (1):
selftest: damon: fix minor typos in test logs
Vishal Moola (Oracle) (5):
mm/memory: change vmf_anon_prepare() to be non-static
hugetlb: move vm_fault declaration to the top of hugetlb_fault()
hugetlb: pass struct vm_fault through to hugetlb_handle_userfault()
hugetlb: use vmf_anon_prepare() instead of anon_vma_prepare()
hugetlb: allow faults to be handled under the VMA lock
Vishal Verma (5):
dax/bus.c: replace driver-core lock usage by a local rwsem
dax/bus.c: replace several sprintf() with sysfs_emit()
Documentatiion/ABI: add ABI documentation for sys-bus-dax
mm/memory_hotplug: export mhp_supports_memmap_on_memory()
dax: add a sysfs knob to control memmap_on_memory behavior
Vlastimil Babka (1):
mm: document memalloc_noreclaim_save() and memalloc_pin_save()
Yajun Deng (4):
mm/mmap: simplify vma link and unlink
mm/mmap: introduce vma_set_range()
mm/mmap: use SZ_{8K, 128K} helper macro
mm/mmap: pass vma to vma_merge()
Yang Shi (1):
mm: mmap: no need to call khugepaged_enter_vma() for stack
Yosry Ahmed (7):
mm: swap: enforce updating inuse_pages at the end of swap_range_free()
mm: zswap: remove unnecessary trees cleanups in zswap_swapoff()
mm: zswap: remove unused tree argument in zswap_entry_put()
x86/mm: delete unused cpu argument to leave_mm()
x86/mm: clarify "prev" usage in switch_mm_irqs_off()
x86/mm: further clarify switch_mm_irqs_off() documentation
x86/mm: always pass NULL as the first argument of switch_mm_irqs_off()
ZhangPeng (1):
filemap: avoid unnecessary major faults in filemap_fault()
Zhongkun He (1):
mm/z3fold: fix the comment for __encode_handle()
Zi Yan (13):
mm/page_alloc: remove unused fpi_flags in free_pages_prepare()
mm/compaction: enable compacting >0 order folios.
mm/compaction: add support for >0 order folio memory compaction.
mm/compaction: optimize >0 order folio compaction with free page split.
mm/huge_memory: only split PMD mapping when necessary in unmap_folio()
mm/memcg: use order instead of nr in split_page_memcg()
mm/page_owner: use order instead of nr in split_page_owner()
mm: memcg: make memcg huge page split support any order split
mm: page_owner: add support for splitting to any order in split page_owner
mm: thp: split huge page to any lower order pages
mm: huge_memory: enable debugfs to split huge pages to any order
mm/huge_memory: check new folio order when split a folio
mm/huge_memory: skip invalid debugfs new_order input for folio split
Documentation/ABI/testing/sysfs-bus-dax | 153 ++
Documentation/ABI/testing/sysfs-kernel-mm-cma | 6 +
Documentation/ABI/testing/sysfs-kernel-mm-damon | 16 +-
.../ABI/testing/sysfs-kernel-mm-mempolicy | 4 +
.../sysfs-kernel-mm-mempolicy-weighted-interleave | 25 +
Documentation/admin-guide/kdump/vmcoreinfo.rst | 8 +-
Documentation/admin-guide/mm/damon/reclaim.rst | 27 +
Documentation/admin-guide/mm/damon/usage.rst | 158 +-
.../admin-guide/mm/numa_memory_policy.rst | 9 +
Documentation/dev-tools/kasan.rst | 20 +-
Documentation/mm/damon/design.rst | 70 +-
Documentation/mm/damon/maintainer-profile.rst | 8 +-
Documentation/mm/page_owner.rst | 45 +
.../zh_CN/admin-guide/mm/damon/usage.rst | 20 +-
.../translations/zh_CN/dev-tools/kasan.rst | 20 +-
.../zh_TW/admin-guide/mm/damon/usage.rst | 20 +-
.../translations/zh_TW/dev-tools/kasan.rst | 20 +-
MAINTAINERS | 12 +
arch/arc/Kconfig | 1 +
arch/arc/include/asm/cachetype.h | 9 +
arch/arm/Kconfig | 1 +
arch/arm/Kconfig.debug | 2 +-
arch/arm/configs/aspeed_g4_defconfig | 2 +-
arch/arm/configs/aspeed_g5_defconfig | 2 +-
arch/arm/include/asm/cachetype.h | 2 +
arch/arm/include/asm/pgtable-2level.h | 1 -
arch/arm/include/asm/pgtable-3level.h | 1 -
arch/arm/include/asm/pgtable.h | 2 +
arch/arm/include/asm/ptdump.h | 6 +-
arch/arm/kernel/Makefile | 1 +
arch/arm/kernel/machine_kexec.c | 7 -
arch/arm/kernel/setup.c | 4 +-
arch/arm/kernel/vmcore_info.c | 10 +
arch/arm/mm/dump.c | 4 +-
arch/arm/mm/init.c | 2 +-
arch/arm/mm/mmu.c | 2 +-
arch/arm64/Kconfig | 11 +-
.../include/asm/{crash_core.h => crash_reserve.h} | 4 +-
arch/arm64/include/asm/kexec.h | 2 +-
arch/arm64/include/asm/pgtable.h | 431 +++-
arch/arm64/include/asm/ptdump.h | 7 -
arch/arm64/include/asm/tlbflush.h | 13 +-
arch/arm64/kernel/Makefile | 2 +-
arch/arm64/kernel/efi.c | 4 +-
arch/arm64/kernel/machine_kexec.c | 2 +-
arch/arm64/kernel/machine_kexec_file.c | 10 +-
arch/arm64/kernel/mte.c | 2 +-
arch/arm64/kernel/{crash_core.c => vmcore_info.c} | 3 +-
arch/arm64/kvm/guest.c | 2 +-
arch/arm64/mm/Makefile | 1 +
arch/arm64/mm/contpte.c | 408 ++++
arch/arm64/mm/fault.c | 12 +-
arch/arm64/mm/fixmap.c | 4 +-
arch/arm64/mm/hugetlbpage.c | 47 +-
arch/arm64/mm/init.c | 2 +-
arch/arm64/mm/kasan_init.c | 6 +-
arch/arm64/mm/mmu.c | 18 +-
arch/arm64/mm/pageattr.c | 6 +-
arch/arm64/mm/ptdump.c | 11 +-
arch/arm64/mm/trans_pgd.c | 6 +-
arch/csky/Kconfig | 1 +
arch/csky/include/asm/cachetype.h | 9 +
arch/loongarch/kernel/setup.c | 2 +-
arch/loongarch/kvm/mmu.c | 2 +-
arch/m68k/Kconfig | 1 +
arch/m68k/include/asm/cachetype.h | 9 +
arch/mips/Kconfig | 1 +
arch/mips/include/asm/cachetype.h | 9 +
arch/mips/kernel/setup.c | 17 +-
arch/nios2/Kconfig | 1 +
arch/nios2/include/asm/cachetype.h | 10 +
arch/nios2/include/asm/pgtable.h | 2 +
arch/parisc/Kconfig | 1 +
arch/parisc/include/asm/cachetype.h | 9 +
arch/powerpc/Kconfig | 7 +-
arch/powerpc/include/asm/book3s/64/pgtable.h | 26 +-
arch/powerpc/include/asm/pgtable.h | 30 +-
arch/powerpc/include/asm/tlb.h | 2 +
arch/powerpc/kernel/setup-common.c | 2 +-
arch/powerpc/kexec/Makefile | 1 +
arch/powerpc/kexec/core.c | 28 -
arch/powerpc/kexec/vmcore_info.c | 32 +
arch/powerpc/kvm/book3s_64_mmu_radix.c | 12 +-
arch/powerpc/mm/book3s64/pgtable.c | 4 +-
arch/powerpc/mm/book3s64/radix_pgtable.c | 16 +-
arch/powerpc/mm/hugetlbpage.c | 6 +-
arch/powerpc/mm/mmu_decl.h | 6 -
arch/powerpc/mm/nohash/kaslr_booke.c | 4 +-
arch/powerpc/mm/pgtable.c | 11 +-
arch/powerpc/mm/pgtable_32.c | 4 -
arch/powerpc/mm/pgtable_64.c | 11 +-
arch/powerpc/mm/ptdump/ptdump.c | 21 +-
arch/powerpc/platforms/powernv/opal-core.c | 2 +-
arch/powerpc/xmon/xmon.c | 6 +-
arch/riscv/Kconfig | 2 +-
.../include/asm/{crash_core.h => crash_reserve.h} | 4 +-
arch/riscv/include/asm/pgtable-64.h | 2 +-
arch/riscv/include/asm/pgtable.h | 4 +-
arch/riscv/include/asm/ptdump.h | 22 -
arch/riscv/kernel/Makefile | 2 +-
arch/riscv/kernel/elf_kexec.c | 9 +-
arch/riscv/kernel/{crash_core.c => vmcore_info.c} | 3 +-
arch/riscv/mm/init.c | 5 +-
arch/riscv/mm/ptdump.c | 12 +-
arch/s390/Kconfig | 1 +
arch/s390/boot/vmem.c | 4 +-
arch/s390/include/asm/pgalloc.h | 4 +-
arch/s390/include/asm/pgtable.h | 22 +-
arch/s390/include/asm/ptdump.h | 14 -
arch/s390/include/asm/tlb.h | 30 +-
arch/s390/kernel/Makefile | 1 +
arch/s390/kernel/kexec_elf.c | 2 +
arch/s390/kernel/kexec_image.c | 2 +
arch/s390/kernel/machine_kexec.c | 15 -
arch/s390/kernel/machine_kexec_file.c | 10 +
arch/s390/kernel/vmcore_info.c | 21 +
arch/s390/mm/dump_pagetables.c | 21 +-
arch/s390/mm/gmap.c | 52 +-
arch/s390/mm/hugetlbpage.c | 6 +-
arch/s390/mm/init.c | 5 -
arch/s390/mm/pageattr.c | 4 +-
arch/s390/mm/pgalloc.c | 8 +-
arch/s390/mm/pgtable.c | 12 +-
arch/s390/mm/vmem.c | 74 +-
arch/sh/Kconfig | 1 +
arch/sh/include/asm/cachetype.h | 9 +
arch/sh/kernel/Makefile | 1 +
arch/sh/kernel/machine_kexec.c | 14 +-
arch/sh/kernel/setup.c | 2 +-
arch/sh/kernel/vmcore_info.c | 15 +
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/cachetype.h | 14 +
arch/sparc/include/asm/pgtable_64.h | 10 +-
arch/sparc/mm/init_64.c | 6 +-
arch/x86/Kconfig | 2 +-
arch/x86/boot/compressed/ident_map_64.c | 2 +-
.../include/asm/{crash_core.h => crash_reserve.h} | 6 +-
arch/x86/include/asm/mmu.h | 2 +-
arch/x86/include/asm/pgtable.h | 37 +-
arch/x86/kernel/Makefile | 6 +-
arch/x86/kernel/alternative.c | 2 +-
arch/x86/kernel/cpu/mshyperv.c | 10 +-
arch/x86/kernel/kexec-bzimage64.c | 4 +
arch/x86/kernel/kvm.c | 4 +-
arch/x86/kernel/machine_kexec_64.c | 3 +
arch/x86/kernel/reboot.c | 4 +-
arch/x86/kernel/setup.c | 2 +-
arch/x86/kernel/smp.c | 2 +-
.../kernel/{crash_core_32.c => vmcore_info_32.c} | 2 +-
.../kernel/{crash_core_64.c => vmcore_info_64.c} | 2 +-
arch/x86/kvm/mmu/mmu.c | 6 +-
arch/x86/mm/dump_pagetables.c | 24 +-
arch/x86/mm/fault.c | 16 +-
arch/x86/mm/ident_map.c | 2 +-
arch/x86/mm/init_32.c | 4 +-
arch/x86/mm/init_64.c | 16 +-
arch/x86/mm/kasan_init_64.c | 4 +-
arch/x86/mm/mem_encrypt_identity.c | 6 +-
arch/x86/mm/pat/set_memory.c | 14 +-
arch/x86/mm/pgtable.c | 4 +-
arch/x86/mm/pti.c | 10 +-
arch/x86/mm/tlb.c | 39 +-
arch/x86/power/hibernate.c | 6 +-
arch/x86/xen/enlighten_hvm.c | 4 +
arch/x86/xen/mmu_pv.c | 14 +-
arch/xtensa/Kconfig | 1 +
arch/xtensa/include/asm/cachetype.h | 10 +
drivers/base/cacheinfo.c | 50 +-
drivers/base/cpu.c | 6 +-
drivers/base/memory.c | 23 +-
drivers/block/zram/zcomp.c | 5 +-
drivers/block/zram/zcomp.h | 1 -
drivers/block/zram/zram_drv.c | 2 +-
drivers/cpuidle/cpuidle.c | 2 +-
drivers/dax/bus.c | 293 ++-
drivers/dax/super.c | 14 +
drivers/firmware/qemu_fw_cfg.c | 14 +-
drivers/md/dm.c | 17 +-
drivers/misc/sgi-gru/grufault.c | 2 +-
drivers/nvdimm/pmem.c | 23 +-
drivers/of/kexec.c | 2 +
drivers/s390/block/dcssblk.c | 11 +-
drivers/s390/char/sclp_cmd.c | 44 +-
fs/Kconfig | 2 +-
fs/fuse/virtio_fs.c | 15 +-
fs/proc/Kconfig | 2 +-
fs/proc/kcore.c | 2 +-
fs/proc/task_mmu.c | 17 +-
fs/userfaultfd.c | 86 +-
include/asm-generic/tlb.h | 44 +-
include/crypto/acompress.h | 6 +
include/linux/buildid.h | 2 +-
include/linux/cacheinfo.h | 6 +
include/linux/cma.h | 6 +-
include/linux/crash_core.h | 152 +-
include/linux/crash_reserve.h | 48 +
include/linux/damon.h | 89 +-
include/linux/dax.h | 17 +-
include/linux/efi.h | 5 +
include/linux/gfp.h | 2 +-
include/linux/gfp_types.h | 90 +-
include/linux/highmem.h | 14 +
include/linux/huge_mm.h | 21 +-
include/linux/hugetlb.h | 2 +-
include/linux/kexec.h | 47 +-
include/linux/list_lru.h | 20 +-
include/linux/memcontrol.h | 31 +-
include/linux/memory.h | 9 +
include/linux/memory_hotplug.h | 24 +-
include/linux/memremap.h | 3 +-
include/linux/mm.h | 56 +-
include/linux/mm_types.h | 42 +-
include/linux/mmdebug.h | 2 +-
include/linux/mmu_context.h | 2 +-
include/linux/mmzone.h | 9 +-
include/linux/moduleloader.h | 8 +
include/linux/padata.h | 14 +-
include/linux/page-flags.h | 153 +-
include/linux/page_counter.h | 2 +-
include/linux/page_owner.h | 14 +-
include/linux/pagevec.h | 18 +
include/linux/pgtable.h | 143 +-
include/linux/ptdump.h | 10 +
include/linux/sched.h | 10 +-
include/linux/sched/mm.h | 55 +-
include/linux/stackdepot.h | 58 +
include/linux/swap.h | 8 +-
include/linux/swapops.h | 13 +
include/linux/userfaultfd_k.h | 75 +-
include/linux/vmalloc.h | 1 -
include/linux/vmcore_info.h | 81 +
include/linux/writeback.h | 12 +-
include/linux/zswap.h | 11 +-
include/trace/events/compaction.h | 6 +-
include/trace/events/kmem.h | 38 +
include/trace/events/oom.h | 36 +-
include/uapi/linux/mempolicy.h | 1 +
init/initramfs.c | 2 +-
init/main.c | 7 +-
kernel/Kconfig.kexec | 12 +-
kernel/Makefile | 5 +-
kernel/crash_core.c | 764 ++------
kernel/crash_reserve.c | 464 +++++
kernel/dma/contiguous.c | 6 -
kernel/{crash_dump.c => elfcorehdr.c} | 0
kernel/events/uprobes.c | 2 +-
kernel/kallsyms_selftest.c | 1 -
kernel/kexec.c | 11 +-
kernel/kexec_core.c | 250 +--
kernel/kexec_file.c | 15 +-
kernel/kexec_internal.h | 2 +
kernel/ksysfs.c | 10 +-
kernel/module/main.c | 9 +-
kernel/padata.c | 14 +-
kernel/printk/printk.c | 4 +-
kernel/sched/fair.c | 6 +
kernel/vmcore_info.c | 233 +++
lib/buildid.c | 2 +-
lib/maple_tree.c | 6 +-
lib/stackdepot.c | 65 +-
lib/test_vmalloc.c | 11 +-
lib/test_xarray.c | 230 +++
mm/Kconfig | 37 +-
mm/cma.c | 28 +-
mm/cma.h | 5 +
mm/cma_sysfs.c | 15 +
mm/compaction.c | 355 ++--
mm/damon/Kconfig | 7 +-
mm/damon/core.c | 120 +-
mm/damon/dbgfs.c | 26 +-
mm/damon/paddr.c | 2 +-
mm/damon/reclaim.c | 53 +
mm/damon/sysfs-common.h | 8 +-
mm/damon/sysfs-schemes.c | 146 +-
mm/damon/sysfs.c | 54 +-
mm/debug.c | 130 +-
mm/filemap.c | 52 +-
mm/huge_memory.c | 387 ++--
mm/hugetlb.c | 414 ++--
mm/internal.h | 119 +-
mm/kasan/common.c | 2 +-
mm/kasan/kasan_test.c | 82 +-
mm/kasan/kasan_test_module.c | 4 +-
mm/kasan/report.c | 2 +-
mm/kasan/shadow.c | 11 +-
mm/khugepaged.c | 50 +-
mm/kmsan/hooks.c | 36 +-
mm/list_lru.c | 20 +-
mm/madvise.c | 10 +-
mm/memcontrol.c | 123 +-
mm/memfd.c | 47 +-
mm/memory-tiers.c | 26 +-
mm/memory.c | 399 ++--
mm/memory_hotplug.c | 34 +-
mm/mempolicy.c | 507 ++++-
mm/memtest.c | 4 +-
mm/migrate.c | 7 +-
mm/mlock.c | 3 +-
mm/mm_init.c | 1 +
mm/mmap.c | 110 +-
mm/mmu_gather.c | 111 +-
mm/mprotect.c | 4 +-
mm/nommu.c | 2 -
mm/oom_kill.c | 6 +-
mm/page-writeback.c | 390 ++--
mm/page_alloc.c | 187 +-
mm/page_isolation.c | 2 +-
mm/page_owner.c | 210 +-
mm/ptdump.c | 22 +
mm/readahead.c | 9 +-
mm/rmap.c | 14 +-
mm/shmem.c | 18 +
mm/sparse.c | 3 +-
mm/swap.c | 197 +-
mm/swap_slots.c | 3 +
mm/swap_state.c | 32 +-
mm/swapfile.c | 45 +-
mm/userfaultfd.c | 493 +++--
mm/util.c | 6 +-
mm/vmalloc.c | 1076 +++++++---
mm/vmscan.c | 256 +--
mm/z3fold.c | 5 +-
mm/zsmalloc.c | 123 +-
mm/zswap.c | 2050 ++++++++++----------
scripts/gdb/linux/vmalloc.py | 56 +-
tools/mm/Makefile | 9 +-
tools/mm/thpmaps | 675 +++++++
tools/testing/selftests/cgroup/test_zswap.c | 122 +-
tools/testing/selftests/damon/.gitignore | 3 +
tools/testing/selftests/damon/Makefile | 5 +
tools/testing/selftests/damon/_chk_dependency.sh | 20 +-
tools/testing/selftests/damon/_damon_sysfs.py | 77 +-
tools/testing/selftests/damon/_debugfs_common.sh | 7 +
.../selftests/damon/damos_apply_interval.py | 67 +
tools/testing/selftests/damon/damos_quota.py | 67 +
.../selftests/damon/debugfs_empty_targets.sh | 12 +-
.../selftests/damon/debugfs_target_ids_pid_leak.c | 68 +
.../selftests/damon/debugfs_target_ids_pid_leak.sh | 22 +
...debugfs_target_ids_read_before_terminate_race.c | 80 +
...ebugfs_target_ids_read_before_terminate_race.sh | 14 +
.../sysfs_update_schemes_tried_regions_hang.py | 2 +-
..._update_schemes_tried_regions_wss_estimation.py | 2 +-
tools/testing/selftests/memfd/memfd_test.c | 10 -
tools/testing/selftests/mm/.gitignore | 1 +
tools/testing/selftests/mm/Makefile | 1 +
tools/testing/selftests/mm/compaction_test.c | 37 +-
tools/testing/selftests/mm/hugetlb-madvise.c | 3 +-
tools/testing/selftests/mm/hugetlb_madv_vs_map.c | 124 ++
tools/testing/selftests/mm/ksm_functional_tests.c | 4 +-
tools/testing/selftests/mm/map_fixed_noreplace.c | 96 +-
tools/testing/selftests/mm/map_hugetlb.c | 42 +-
tools/testing/selftests/mm/map_populate.c | 37 +-
tools/testing/selftests/mm/mlock-random-test.c | 136 +-
tools/testing/selftests/mm/mlock2-tests.c | 282 ++-
tools/testing/selftests/mm/mlock2.h | 11 +-
tools/testing/selftests/mm/mrelease_test.c | 80 +-
tools/testing/selftests/mm/mremap_dontunmap.c | 32 +-
tools/testing/selftests/mm/run_vmtests.sh | 35 +-
tools/testing/selftests/mm/split_huge_page_test.c | 323 ++-
tools/testing/selftests/mm/thuge-gen.c | 147 +-
tools/testing/selftests/mm/transhuge-stress.c | 36 +-
tools/testing/selftests/mm/uffd-stress.c | 6 +
tools/testing/selftests/mm/virtual_address_range.c | 44 +-
tools/testing/selftests/mm/vm_util.c | 6 +-
364 files changed, 12415 insertions(+), 6101 deletions(-)
create mode 100644 Documentation/ABI/testing/sysfs-bus-dax
create mode 100644 Documentation/ABI/testing/sysfs-kernel-mm-mempolicy
create mode 100644 Documentation/ABI/testing/sysfs-kernel-mm-mempolicy-weighted-interleave
create mode 100644 arch/arc/include/asm/cachetype.h
create mode 100644 arch/arm/kernel/vmcore_info.c
rename arch/arm64/include/asm/{crash_core.h => crash_reserve.h} (81%)
rename arch/arm64/kernel/{crash_core.c => vmcore_info.c} (92%)
create mode 100644 arch/arm64/mm/contpte.c
create mode 100644 arch/csky/include/asm/cachetype.h
create mode 100644 arch/m68k/include/asm/cachetype.h
create mode 100644 arch/mips/include/asm/cachetype.h
create mode 100644 arch/nios2/include/asm/cachetype.h
create mode 100644 arch/parisc/include/asm/cachetype.h
create mode 100644 arch/powerpc/kexec/vmcore_info.c
rename arch/riscv/include/asm/{crash_core.h => crash_reserve.h} (78%)
delete mode 100644 arch/riscv/include/asm/ptdump.h
rename arch/riscv/kernel/{crash_core.c => vmcore_info.c} (88%)
delete mode 100644 arch/s390/include/asm/ptdump.h
create mode 100644 arch/s390/kernel/vmcore_info.c
create mode 100644 arch/sh/include/asm/cachetype.h
create mode 100644 arch/sh/kernel/vmcore_info.c
create mode 100644 arch/sparc/include/asm/cachetype.h
rename arch/x86/include/asm/{crash_core.h => crash_reserve.h} (92%)
rename arch/x86/kernel/{crash_core_32.c => vmcore_info_32.c} (90%)
rename arch/x86/kernel/{crash_core_64.c => vmcore_info_64.c} (94%)
create mode 100644 arch/xtensa/include/asm/cachetype.h
create mode 100644 include/linux/crash_reserve.h
create mode 100644 include/linux/vmcore_info.h
create mode 100644 kernel/crash_reserve.c
rename kernel/{crash_dump.c => elfcorehdr.c} (100%)
create mode 100644 kernel/vmcore_info.c
create mode 100644 tools/mm/thpmaps
create mode 100644 tools/testing/selftests/damon/damos_apply_interval.py
create mode 100644 tools/testing/selftests/damon/damos_quota.py
create mode 100644 tools/testing/selftests/damon/debugfs_target_ids_pid_leak.c
create mode 100644 tools/testing/selftests/damon/debugfs_target_ids_pid_leak.sh
create mode 100644 tools/testing/selftests/damon/debugfs_target_ids_read_before_terminate_race.c
create mode 100644 tools/testing/selftests/damon/debugfs_target_ids_read_before_terminate_race.sh
create mode 100644 tools/testing/selftests/mm/hugetlb_madv_vs_map.c