Linus, please pull this cycle's MM updates, thanks. Conflicts which I saw during a test merge, along with their linux-next resolutions are: arch/powerpc/mm/nohash/Makefile, vs powerpc tree: https://lkml.kernel.org/r/20240703094857.3f489d4f@xxxxxxxxxxxxxxxx fs/nfs/write.c, fs/nfs/nfstrace.h, vs fs-next tree: https://lkml.kernel.org/r/20240715105836.6d6e6e50@xxxxxxxxxxxxxxxx include/linux/hid_bpf.h, vs hid tree: https://lkml.kernel.org/r/20240709112544.190ffda4@xxxxxxxxxxxxxxxx Upcoming conflicts include: include/linux/interrupt.h, vs input tree: https://lkml.kernel.org/r/20240612103235.5ef64950@xxxxxxxxxxxxxxxx include/linux/cacheinfo.h, vs tip tree: https://lkml.kernel.org/r/20240612112746.3130d68b@xxxxxxxxxxxxxxxx drivers/fsi/fsi-occ.c, vs driver-core tree: https://lkml.kernel.org/r/20240612123640.68ae0310@xxxxxxxxxxxxxxxx This one is a bit vague, but might help: arch/s390/include/asm/kmsan.h, arch/s390/include/asm/lowcore.h, vs s390 tree: https://lkml.kernel.org/r/20240627150405.27663-1-iii@xxxxxxxxxxxxx mm/rmap.c, vs random tree: https://lkml.kernel.org/r/20240702164041.60a19dfb@xxxxxxxxxxxxxxxx https://lkml.kernel.org/r/20240709174053.051a46a4@xxxxxxxxxxxxxxxx tools/testing/selftests/mm/Makefile, vs random tree: https://lkml.kernel.org/r/20240709174340.5c03c2b9@xxxxxxxxxxxxxxxx fs/bcachefs/clock.c, vs bcachefs tree: https://lkml.kernel.org/r/20240712105711.6dc900a2@xxxxxxxxxxxxxxxx The following changes since commit 1e3d28fe03cdac1f58402e4da1e1e59fb70d145f: MAINTAINERS: mailmap: update Lorenzo Stoakes's email address (2024-07-06 11:39:51 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2024-07-21-14-50 for you to fetch changes up to 30d77b7eef019fa4422980806e8b7cdc8674493e: mm/mglru: fix ineffective protection calculation (2024-07-17 21:08:55 -0700) ---------------------------------------------------------------- - 875fa64577da ("mm/hugetlb_vmemmap: fix race with speculative PFN walkers") is known to cause a performance regression (https://lore.kernel.org/all/3acefad9-96e5-4681-8014-827d6be71c7a@xxxxxxxxxxxxx/T/#mfa809800a7862fb5bdf834c6f71a3a5113eb83ff). Yu has a fix which I'll send along later via the hotfixes branch. - In the series "mm: Avoid possible overflows in dirty throttling" Jan Kara addresses a couple of issues in the writeback throttling code. These fixes are also targetted at -stable kernels. - Ryusuke Konishi's series "nilfs2: fix potential issues related to reserved inodes" does that. This should actually be in the mm-nonmm-stable tree, along with the many other nilfs2 patches. My bad. - More folio conversions from Kefeng Wang in the series "mm: convert to folio_alloc_mpol()" - Kemeng Shi has sent some cleanups to the writeback code in the series "Add helper functions to remove repeated code and improve readability of cgroup writeback" - Kairui Song has made the swap code a little smaller and a little faster in the series "mm/swap: clean up and optimize swap cache index". - In the series "mm/memory: cleanly support zeropage in vm_insert_page*(), vm_map_pages*() and vmf_insert_mixed()" David Hildenbrand has reworked the rather sketchy handling of the use of the zeropage in MAP_SHARED mappings. I don't see any runtime effects here - more a cleanup/understandability/maintainablity thing. - Dev Jain has improved selftests/mm/va_high_addr_switch.c's handling of higher addresses, for aarch64. The (poorly named) series is "Restructure va_high_addr_switch". - The core TLB handling code gets some cleanups and possible slight optimizations in Bang Li's series "Add update_mmu_tlb_range() to simplify code". - Jane Chu has improved the handling of our fake-an-unrecoverable-memory-error testing feature MADV_HWPOISON in the series "Enhance soft hwpoison handling and injection". - Jeff Johnson has sent a billion patches everywhere to add MODULE_DESCRIPTION() to everything. Some landed in this pull. - In the series "mm: cleanup MIGRATE_SYNC_NO_COPY mode", Kefeng Wang has simplified migration's use of hardware-offload memory copying. - Yosry Ahmed performs more folio API conversions in his series "mm: zswap: trivial folio conversions". - In the series "large folios swap-in: handle refault cases first", Chuanhua Han inches us forward in the handling of large pages in the swap code. This is a cleanup and optimization, working toward the end objective of full support of large folio swapin/out. - In the series "mm,swap: cleanup VMA based swap readahead window calculation", Huang Ying has contributed some cleanups and a possible fixlet to his VMA based swap readahead code. - In the series "add mTHP support for anonymous shmem" Baolin Wang has taught anonymous shmem mappings to use multisize THP. By default this is a no-op - users must opt in vis sysfs controls. Dramatic improvements in pagefault latency are realized. - David Hildenbrand has some cleanups to our remaining use of page_mapcount() in the series "fs/proc: move page_mapcount() to fs/proc/internal.h". - David also has some highmem accounting cleanups in the series "mm/highmem: don't track highmem pages manually". - Build-time fixes and cleanups from John Hubbard in the series "cleanups, fixes, and progress towards avoiding "make headers"". - Cleanups and consolidation of the core pagemap handling from Barry Song in the series "mm: introduce pmd|pte_needs_soft_dirty_wp helpers and utilize them". - Lance Yang's series "Reclaim lazyfree THP without splitting" has reduced the latency of the reclaim of pmd-mapped THPs under fairly common circumstances. A 10x speedup is seen in a microbenchmark. It does this by punting to aother CPU but I guess that's a win unless all CPUs are pegged. - hugetlb_cgroup cleanups from Xiu Jianfeng in the series "mm/hugetlb_cgroup: rework on cftypes". - Miaohe Lin's series "Some cleanups for memory-failure" does just that thing. - Is anyone reading this stuff? If so, email me! - Someone other than SeongJae has developed a DAMON feature in Honggyu Kim's series "DAMON based tiered memory management for CXL memory". This adds DAMON features which may be used to help determine the efficiency of our placement of CXL/PCIe attached DRAM. - DAMON user API centralization and simplificatio work in SeongJae Park's series "mm/damon: introduce DAMON parameters online commit function". - In the series "mm: page_type, zsmalloc and page_mapcount_reset()" David Hildenbrand does some maintenance work on zsmalloc - partially modernizing its use of pageframe fields. - Kefeng Wang provides more folio conversions in the series "mm: remove page_maybe_dma_pinned() and page_mkclean()". - More cleanup from David Hildenbrand, this time in the series "mm/memory_hotplug: use PageOffline() instead of PageReserved() for !ZONE_DEVICE". It "enlightens memory hotplug more about PageOffline() pages" and permits the removal of some virtio-mem hacks. - Barry Song's series "mm: clarify folio_add_new_anon_rmap() and __folio_add_anon_rmap()" is a cleanup to the anon folio handling in preparation for mTHP (multisize THP) swapin. - Kefeng Wang's series "mm: improve clear and copy user folio" implements more folio conversions, this time in the area of large folio userspace copying. - The series "Docs/mm/damon/maintaier-profile: document a mailing tool and community meetup series" tells people how to get better involved with other DAMON developers. From SeongJae Park. - A large series ("kmsan: Enable on s390") from Ilya Leoshkevich does that. - David Hildenbrand sends along more cleanups, this time against the migration code. The series is "mm/migrate: move NUMA hinting fault folio isolation + checks under PTL". - Jan Kara has found quite a lot of strangenesses and minor errors in the readahead code. He addresses this in the series "mm: Fix various readahead quirks". - SeongJae Park's series "selftests/damon: test DAMOS tried regions and {min,max}_nr_regions" adds features and addresses errors in DAMON's self testing code. - Gavin Shan has found a userspace-triggerable WARN in the pagecache code. The series "mm/filemap: Limit page cache size to that supported by xarray" addresses this. The series is marked cc:stable. - Chengming Zhou's series "mm/ksm: cmp_and_merge_page() optimizations and cleanup" cleans up and slightly optimizes KSM. - Roman Gushchin has separated the memcg-v1 and memcg-v2 code - lots of code motion. The series (which also makes the memcg-v1 code Kconfigurable) are "mm: memcg: separate legacy cgroup v1 code and put under config option" and "mm: memcg: put cgroup v1-specific memcg data under CONFIG_MEMCG_V1" - Dan Schatzberg's series "Add swappiness argument to memory.reclaim" adds an additional feature to this cgroup-v2 control file. - The series "Userspace controls soft-offline pages" from Jiaqi Yan permits userspace to stop the kernel's automatic treatment of excessive correctable memory errors. In order to permit userspace to monitor and handle this situation. - Kefeng Wang's series "mm: migrate: support poison recover from migrate folio" teaches the kernel to appropriately handle migration from poisoned source folios rather than simply panicing. - SeongJae Park's series "Docs/damon: minor fixups and improvements" does those things. - In the series "mm/zsmalloc: change back to per-size_class lock" Chengming Zhou improves zsmalloc's scalability and memory utilization. - Vivek Kasireddy's series "mm/gup: Introduce memfd_pin_folios() for pinning memfd folios" makes the GUP code use FOLL_PIN rather than bare refcount increments. So these paes can first be moved aside if they reside in the movable zone or a CMA block. - Andrii Nakryiko has added a binary ioctl()-based API to /proc/pid/maps for much faster reading of vma information. The series is "query VMAs from /proc/<pid>/maps". - In the series "mm: introduce per-order mTHP split counters" Lance Yang improves the kernel's presentation of developer information related to multisize THP splitting. - Michael Ellerman has developed the series "Reimplement huge pages without hugepd on powerpc (8xx, e500, book3s/64)". This permits userspace to use all available huge page sizes. - In the series "revert unconditional slab and page allocator fault injection calls" Vlastimil Babka removes a performance-affecting and not very useful feature from slab fault injection. ---------------------------------------------------------------- Anastasia Belova (1): mm/memory_hotplug: prevent accessing by index=-1 Andrew Morton (3): mm/huge_memory.c: fix used-uninitialized Merge branch 'mm-hotfixes-stable' into mm-stable to pick up "mm: fix crashes from deferred split racing folio migration", needed by "mm: migrate: split folio_migrate_mapping()". mm/hugetlb.c: undo errant change Andrii Nakryiko (6): fs/procfs: extract logic for getting VMA name constituents fs/procfs: implement efficient VMA querying API for /proc/<pid>/maps fs/procfs: add build ID fetching to PROCMAP_QUERY API docs/procfs: call out ioctl()-based PROCMAP_QUERY command existence tools: sync uapi/linux/fs.h header into tools subdir selftests/proc: add PROCMAP_QUERY ioctl tests Aristeu Rozanski (1): hugetlb: force allocating surplus hugepages on mempolicy allowed nodes Arnd Bergmann (1): udmabuf: add CONFIG_MMU dependency Audra Mitchell (2): mm: update uffd-stress to handle EINVAL for unset config features mm: turn off test_uffdio_wp if CONFIG_PTE_MARKER_UFFD_WP is not configured. Bang Li (5): mm: add update_mmu_tlb_range() mm: implement update_mmu_tlb() using update_mmu_tlb_range() mm: use update_mmu_tlb_range() to simplify code mm/shmem: fix input and output inconsistencies mm: thp: support "THPeligible" semantics for mTHP with anonymous shmem Baolin Wang (7): mm: memory: extend finish_fault() to support large folio mm: shmem: add THP validation for PMD-mapped THP related statistics mm: shmem: add multi-size THP sysfs interface for anonymous shmem mm: shmem: add mTHP support for anonymous shmem mm: shmem: add mTHP size alignment in shmem_get_unmapped_area mm: shmem: add mTHP counters for anonymous shmem mm: memcontrol: add VM_BUG_ON_FOLIO() to catch lru folio in mem_cgroup_migrate() Barry Song (12): mm: remove the implementation of swap_free() and always use swap_free_nr() mm: introduce pte_move_swp_offset() helper which can move offset bidirectionally mm: introduce arch_do_swap_page_nr() which allows restore metadata for nr pages mm: swap: reuse exclusive folio directly instead of wp page faults mm: introduce pmd|pte_needs_soft_dirty_wp helpers for softdirty write-protect mm: set pte writable while pte_soft_dirty() is true in do_swap_page() mm: extend rmap flags arguments for folio_add_new_anon_rmap mm: use folio_add_new_anon_rmap() if folio_test_anon(folio)==false mm: remove folio_test_anon(folio)==false path in __folio_add_anon_rmap() tools/mm: introduce a tool to assess swap entry allocation for thp_swapout mm/vmscan: drop checking if _deferred_list is empty before using TTU_SYNC mm: zswap: fix zswap_never_enabled() for CONFIG_ZSWAP==N Brian Johannesmeyer (1): kmsan: introduce test_unpoison_memory() Chengming Zhou (7): mm/ksm: refactor out try_to_merge_with_zero_page() mm/ksm: don't waste time searching stable tree for fast changing page mm/ksm: optimize the chain()/chain_prune() interfaces mm/zsmalloc: change back to per-size_class lock mm/zswap: use only one pool in zswap mm/zsmalloc: clarify class per-fullness zspage counts mm/zsmalloc: move record_obj() into obj_malloc() Christoph Hellwig (1): mm: unexport vmf_insert_mixed_mkwrite Christophe Leroy (17): mm: define __pte_leaf_size() to also take a PMD entry mm: provide mm_struct and address to huge_ptep_get() powerpc/mm: remove _PAGE_PSIZE powerpc/mm: fix __find_linux_pte() on 32 bits with PMD leaf entries powerpc/mm: allow hugepages without hugepd powerpc/8xx: fix size given to set_huge_pte_at() powerpc/8xx: rework support for 8M pages using contiguous PTE entries powerpc/8xx: simplify struct mmu_psize_def powerpc/e500: remove enc and ind fields from struct mmu_psize_def powerpc/e500: switch to 64 bits PGD on 85xx (32 bits) powerpc/e500: encode hugepage size in PTE bits powerpc/e500: don't pre-check write access on data TLB error powerpc/e500: free r10 for FIND_PTE powerpc/e500: use contiguous PMD instead of hugepd powerpc/64s: use contiguous PMD/PUD instead of HUGEPD powerpc/mm: remove hugepd leftovers mm: remove CONFIG_ARCH_HAS_HUGEPD Chuanhua Han (3): mm: swap: introduce swap_free_nr() for batched swap_free() mm: swap: make should_try_to_free_swap() support large-folio mm: swap: entirely map large folios found in swapcache Dan Carpenter (1): mm/zswap: fix a white space issue Dan Schatzberg (2): mm: add defines for min/max swappiness mm: add swappiness= arg to memory.reclaim David Hildenbrand (23): mm/memory: move page_count() check into validate_page_before_insert() mm/memory: cleanly support zeropage in vm_insert_page*(), vm_map_pages*() and vmf_insert_mixed() mm/rmap: sanity check that zeropages are not passed to RMAP fs/proc/task_mmu: indicate PM_FILE for PMD-mapped file THP fs/proc/task_mmu: don't indicate PM_MMAP_EXCLUSIVE without PM_PRESENT fs/proc/task_mmu: properly detect PM_MMAP_EXCLUSIVE per page of PMD-mapped THPs fs/proc/task_mmu: account non-present entries as "maybe shared, but no idea how often" fs/proc: move page_mapcount() to fs/proc/internal.h Documentation/admin-guide/mm/pagemap.rst: drop "Using pagemap to do something useful" mm/highmem: reimplement totalhigh_pages() by walking zones mm/highmem: make nr_free_highpages() return "unsigned long" mm: update _mapcount and page_type documentation mm: allow reuse of the lower 16 bit of the page type with an actual type mm/zsmalloc: use a proper page type mm/page_alloc: clear PageBuddy using __ClearPageBuddy() for bad pages mm/filemap: reinitialize folio->_mapcount directly mm/mm_init: initialize page->_mapcount directly in __init_single_page() mm: pass meminit_context to __free_pages_core() mm/memory_hotplug: initialize memmap of !ZONE_DEVICE with PageOffline() instead of PageReserved() mm/memory_hotplug: skip adjust_managed_page_count() for PageOffline() pages when offlining mm: read page_type using READ_ONCE mm/migrate: make migrate_misplaced_folio() return 0 on success mm/migrate: move NUMA hinting fault folio isolation + checks under PTL Dev Jain (3): selftests/mm: va_high_addr_switch: reduce test noise selftests/mm: va_high_addr_switch: dynamically initialize testcases to enable LPA2 testing mm: sparse: consistently use _nr Donet Tom (2): selftest: mm: Test if hugepage does not get leaked during __bio_release_pages() hugetlbfs: ensure generic_hugetlb_get_unmapped_area() returns higher address than mmap_min_addr Edward Liaw (3): selftests/mm: include linux/mman.h selftests/mm: guard defines from shm selftests: centralize -D_GNU_SOURCE= to CFLAGS in lib.mk Eric Chanudet (1): mm/mm_init: use node's number of cpus in deferred_page_init_max_threads Ho-Ren (Jack) Chuang (1): memory tier: consolidate the initialization of memory tiers Hongfu Li (1): khugepaged: simplify the allocation of slab caches Honggyu Kim (5): mm: make alloc_demote_folio externally invokable for migration mm: rename alloc_demote_folio to alloc_migrate_folio mm/migrate: add MR_DAMON to migrate_reason mm/damon/paddr: introduce DAMOS_MIGRATE_COLD action for demotion Docs/damon: document damos_migrate_{hot,cold} Huang Ying (3): mm,swap: fix a theoretical underflow in readahead window calculation mm,swap: remove struct vma_swap_readahead mm,swap: simplify VMA based swap readahead window calculation Hugh Dickins (1): mm: simplify folio_migrate_mapping() Hyeongtak Ji (2): mm/damon/sysfs-schemes: add target_nid on sysfs-schemes mm/damon/paddr: introduce DAMOS_MIGRATE_HOT action for promotion Illia Ostapyshyn (1): mm/vmscan: update stale references to shrink_page_list Ilya Leoshkevich (40): ftrace: unpoison ftrace_regs in ftrace_ops_list_func() kmsan: make the tests compatible with kmsan.panic=1 kmsan: disable KMSAN when DEFERRED_STRUCT_PAGE_INIT is enabled kmsan: increase the maximum store size to 4096 kmsan: fix is_bad_asm_addr() on arches with overlapping address spaces kmsan: fix kmsan_copy_to_user() on arches with overlapping address spaces kmsan: remove a useless assignment from kmsan_vmap_pages_range_noflush() kmsan: remove an x86-specific #include from kmsan.h kmsan: expose kmsan_get_metadata() kmsan: export panic_on_kmsan kmsan: allow disabling KMSAN checks for the current task kmsan: introduce memset_no_sanitize_memory() kmsan: support SLAB_POISON kmsan: use ALIGN_DOWN() in kmsan_get_metadata() kmsan: do not round up pg_data_t size kmsan: expose KMSAN_WARN_ON() mm: slub: let KMSAN access metadata mm: slub: disable KMSAN when checking the padding bytes mm: kfence: disable KMSAN when checking the canary lib/zlib: unpoison DFLTCC output buffers kmsan: accept ranges starting with 0 on s390 s390/boot: turn off KMSAN s390: use a larger stack for KMSAN s390/boot: add the KMSAN runtime stub s390/checksum: add a KMSAN check s390/cpacf: unpoison the results of cpacf_trng() s390/cpumf: unpoison STCCTM output buffer s390/diag: unpoison diag224() output buffer s390/ftrace: unpoison ftrace_regs in kprobe_ftrace_handler() s390/irqflags: do not instrument arch_local_irq_*() with KMSAN s390/mm: define KMSAN metadata for vmalloc and modules s390/string: add KMSAN support s390/traps: unpoison the kernel_stack_overflow()'s pt_regs s390/uaccess: add KMSAN support to put_user() and get_user() s390/uaccess: add the missing linux/instrumented.h #include s390/unwind: disable KMSAN checks s390/kmsan: implement the architecture-specific functions kmsan: enable on s390 kmsan: add missing __user tags kmsan: do not pass NULL pointers as 0 JaeJoon Jung (1): maple_tree: modified return type of mas_wr_store_entry() Jan Kara (12): Revert "mm/writeback: fix possible divide-by-zero in wb_dirty_limits(), again" mm: avoid overflows in dirty throttling logic readahead: make sure sync readahead reads needed page filemap: fix page_cache_next_miss() when no hole found readahead: properly shorten readahead when falling back to do_page_cache_ra() readahead: drop pointless index from force_page_cache_ra() readahead: drop index argument of page_cache_async_readahead() readahead: drop dead code in page_cache_ra_order() readahead: drop dead code in ondemand_readahead() readahead: disentangle async and sync readahead readahead: fold try_context_readahead() into its single caller readahead: simplify gotos in page_cache_sync_ra() Jane Chu (5): mm/memory-failure: try to send SIGBUS even if unmap failed mm/madvise: add MF_ACTION_REQUIRED to madvise(MADV_HWPOISON) mm/memory-failure: improve memory failure action_result messages mm/memory-failure: move hwpoison_filter() higher up mm/memory-failure: send SIGBUS in the event of thp split fail Javier Martinez Canillas (1): mm/Kconfig: mention arm64 in DEFAULT_MMAP_MIN_ADDR symbol help text Jeff Johnson (9): mm/hwpoison: add MODULE_DESCRIPTION() mm/dmapool: add MODULE_DESCRIPTION() mm/kfence: add MODULE_DESCRIPTION() mm/zsmalloc: add MODULE_DESCRIPTION() kmemleak-test: add missing MODULE_DESCRIPTION() macro test_xarray: add missing MODULE_DESCRIPTION() macro ubsan: add missing MODULE_DESCRIPTION() macro test_maple_tree: add the missing MODULE_DESCRIPTION() macro lib: test_hmm: add missing MODULE_DESCRIPTION() macro Jiapeng Chong (1): mm: userfaultfd: use swap() in double_pt_lock() Jiaqi Yan (5): mm/memory-failure: refactor log format in unpoison_memory mm/memory-failure: refactor log format in soft offline code mm/memory-failure: userspace controls soft-offlining pages selftest/mm: test enable_soft_offline behaviors docs: mm: add enable_soft_offline sysctl Jinliang Zheng (1): mm: optimize the redundant loop of mm_update_owner_next() Johannes Weiner (2): mm: vmscan: restore incremental cgroup iteration mm: remove CONFIG_MEMCG_KMEM John Hubbard (6): selftests/mm: mseal, self_elf: fix missing __NR_mseal selftests/mm: mseal, self_elf: factor out test macros and other duplicated items selftests/mm: mseal, self_elf: rename TEST_END_CHECK to REPORT_TEST_PASS selftests/mm: fix vm_util.c build failures: add snapshot of fs.h selftests/mm: kvm, mdwe fixes to avoid requiring "make headers" selftests/mm: remove local __NR_* definitions Jonathan Cameron (1): mm/memory_hotplug: drop memblock_phys_free() call in try_remove_memory() Kairui Song (10): nilfs2: drop usage of page_index ceph: drop usage of page_index NFS: remove nfs_page_lengthg and usage of page_index afs: drop usage of folio_file_pos netfs: drop usage of folio_file_pos nfs: drop usage of folio_file_pos mm/swap: get the swap device offset directly mm: remove page_file_offset and folio_file_pos mm: drop page_index and simplify folio_index mm/swap: reduce swap cache search space Kees Cook (1): mm/kmemleak: replace strncpy() with strscpy() Kefeng Wang (28): mm: add folio_alloc_mpol() mm: mempolicy: use folio_alloc_mpol_noprof() in vma_alloc_folio_noprof() mm: mempolicy: use folio_alloc_mpol() in alloc_migration_target_by_mpol() mm: shmem: use folio_alloc_mpol() in shmem_alloc_folio() mm: memcontrol: remove page_memcg() rmap: remove DEFINE_PAGE_VMA_WALK() mm: migrate: simplify __buffer_migrate_folio() mm: migrate_device: use a newfolio in __migrate_device_pages() mm: migrate_device: unify migrate folio for MIGRATE_SYNC_NO_COPY mm: migrate: remove migrate_folio_extra() mm: remove MIGRATE_SYNC_NO_COPY mode mm: ksm: drop KSM_KMEM_CACHE() fs/proc/task_mmu: use folio API in pte_is_pinned() mm: remove page_maybe_dma_pinned() fb_defio: use a folio in fb_deferred_io_work() mm: remove page_mkclean() mm: memory: convert clear_huge_page() to folio_zero_user() mm: memory: use folio in struct copy_subpage_arg mm: memory: improve copy_user_large_folio() mm: memory: rename pages_per_huge_page to nr_pages mm: refactor folio_undo_large_rmappable() mm: move memory_failure_queue() into copy_mc_[user]_highpage() mm: add folio_mc_copy() mm: migrate: split folio_migrate_mapping() mm: migrate: support poisoned recover from migrate folio fs: hugetlbfs: support poisoned recover from hugetlbfs_migrate_folio() mm: migrate: remove folio_migrate_copy() mm: swap_state: use folio_alloc_mpol() in __read_swap_cache_async() Kemeng Shi (8): writeback: factor out wb_bg_dirty_limits to remove repeated code writeback: add general function domain_dirty_avail to calculate dirty and avail of domain writeback: factor out domain_over_bg_thresh to remove repeated code writeback: factor out code of freerun to remove repeated code writeback: factor out wb_dirty_freerun to remove more repeated freerun code writeback: factor out balance_domain_limits to remove repeated code writeback: factor out wb_dirty_exceeded to remove repeated code writeback: factor out balance_wb_limits to remove repeated code Lance Yang (6): mm/rmap: remove duplicated exit code in pagewalk loop mm/rmap: integrate PMD-mapped folio splitting into pagewalk loop mm/vmscan: avoid split lazyfree THP during shrink_folio_list() mm/mlock: implement folio_mlock_step() using folio_pte_batch() mm: add per-order mTHP split counters mm: add docs for per-order mTHP split counters Leesoo Ahn (1): mm/sparse: use MEMBLOCK_ALLOC_ACCESSIBLE enum instead of 0 Maarten Lankhorst (1): mm/page_counter: move calculating protection values to page_counter Mateusz Guzik (1): mm: batch unlink_file_vma calls in free_pgd_range Matthew Wilcox (Oracle) (2): mm: remove page_mapping() mm/memory-failure: stop setting the folio error flag Miaohe Lin (16): mm/memory-failure: simplify put_ref_page() mm/memory-failure: remove MF_MSG_SLAB mm/memory-failure: add macro GET_PAGE_MAX_RETRY_NUM mm/memory-failure: save some page_folio() calls mm/memory-failure: remove unneeded empty string mm/memory-failure: remove confusing initialization to count mm/memory-failure: don't export hwpoison_filter() when !CONFIG_HWPOISON_INJECT mm/memory-failure: use helper macro task_pid_nr() mm/memory-failure: remove obsolete comment in unpoison_memory() mm/memory-failure: move some function declarations into internal.h mm/memory-failure: fix comment of get_hwpoison_page() mm/memory-failure: remove obsolete comment in kill_proc() mm/memory-failure: correct comment in me_swapcache_dirty mm/memory-failure: remove obsolete MF_MSG_DIFFERENT_COMPOUND mm/hugetlb: fix possible recursive locking detected warning mm/hugetlb: fix kernel NULL pointer dereference when migrating hugetlb folio Michael Ellerman (6): powerpc/64e: remove unused IBM HTW code powerpc/64e: split out nohash Book3E 64-bit code powerpc/64e: drop E500 ifdefs in 64-bit code powerpc/64e: drop MMU_FTR_TYPE_FSL_E checks in 64-bit code powerpc/64e: consolidate TLB miss handler patching powerpc/64e: drop unused TLB miss handlers Muhammad Usama Anjum (1): selftests: mm: check return values Oleg Nesterov (3): memcg: mm_update_next_owner: kill the "retry" logic memcg: mm_update_next_owner: move for_each_thread() into try_to_set_owner() get_task_mm: check PF_KTHREAD lockless Oscar Salvador (3): mm/hugetlb: drop node_alloc_noretry from alloc_fresh_hugetlb_folio arch/x86: do not explicitly clear Reserved flag in free_pagetable mm/hugetlb: guard dequeue_hugetlb_folio_nodemask against NUMA_NO_NODE uses Pankaj Raghav (1): selftests/mm: use asm volatile to not optimize mmap read variable Pei Li (1): mm: ignore data-race in __swap_writepage Peter Xu (2): mm: drop leftover comment references to pxx_huge() mm/migrate: putback split folios when numa hint migration fails Ran Xiaokai (2): mm/huge_memory: mark racy access onhuge_anon_orders_always kpageflags: detect isolated KPF_THP folios Roman Gushchin (26): mm: memcg: introduce memcontrol-v1.c mm: memcg: move soft limit reclaim code to memcontrol-v1.c mm: memcg: rename soft limit reclaim-related functions mm: memcg: move charge migration code to memcontrol-v1.c mm: memcg: rename charge move-related functions mm: memcg: move legacy memcg event code into memcontrol-v1.c mm: memcg: rename memcg_check_events() mm: memcg: move cgroup v1 oom handling code into memcontrol-v1.c mm: memcg: rename memcg_oom_recover() mm: memcg: move cgroup v1 interface files to memcontrol-v1.c mm: memcg: make memcg1_update_tree() static mm: memcg: group cgroup v1 memcg related declarations mm: memcg: put cgroup v1-specific code under a config option MAINTAINERS: add mm/memcontrol-v1.c/h to the list of maintained files mm: memcg: move memcg_account_kmem() to memcontrol-v1.c mm: memcg: factor out legacy socket memory accounting code mm: memcg: guard cgroup v1-specific code in mem_cgroup_print_oom_meminfo() mm: memcg: gather memcg1-specific fields initialization in memcg1_memcg_init() mm: memcg: guard memcg1-specific fields accesses in mm/memcontrol.c mm: memcg: put memcg1-specific struct mem_cgroup's members under CONFIG_MEMCG_V1 mm: memcg: guard memcg1-specific members of struct mem_cgroup_per_node mm: memcg: put struct task_struct::memcg_in_oom under CONFIG_MEMCG_V1 mm: memcg: put struct task_struct::in_user_fault under CONFIG_MEMCG_V1 mm: memcg: drop obsolete cache line padding in struct mem_cgroup mm: memcg: add cache line padding to mem_cgroup_per_node mm: memcg1: convert charge move flags to unsigned long long Ryan Roberts (2): mm: fix khugepaged activation policy mm: shmem: rename mTHP shmem counters Ryusuke Konishi (3): nilfs2: fix inode number range checks nilfs2: add missing check for inode numbers on directory entries nilfs2: fix incorrect inode allocation from reserved inodes SeongJae Park (32): mm/damon/core: implement DAMOS quota goals online commit function mm/damon/core: implement DAMON context commit function mm/damon/sysfs: use damon_commit_ctx() mm/damon/sysfs-schemes: use damos_commit_quota_goals() mm/damon/sysfs: remove unnecessary online tuning handling code mm/damon/sysfs: rename damon_sysfs_set_targets() to ...add_targets() mm/damon/sysfs-schemes: remove unnecessary online tuning handling code mm/damon/sysfs-schemes: rename *_set_{schemes,scheme_filters,quota_score,schemes}() mm/damon/reclaim: use damon_commit_ctx() mm/damon/reclaim: remove unnecessary code for online tuning mm/damon/lru_sort: use damon_commit_ctx() mm/damon/lru_sort: remove unnecessary online tuning handling code Docs/mm/damon/maintainer-profile: introduce HacKerMaiL Docs/mm/damon/maintainer-profile: document DAMON community meetups selftests/damon/access_memory: use user-defined region size selftests/damon/_damon_sysfs: support schemes_update_tried_regions selftests/damon: implement a program for even-numbered memory regions access selftests/damon: implement DAMOS tried regions test selftests/damon/_damon_sysfs: implement kdamonds stop function selftests/damon: implement test for min/max_nr_regions _damon_sysfs: implement commit() for online parameters update selftests/damon/damon_nr_regions: test online-tuned max_nr_regions mm/damon/paddr: initialize nr_succeeded in __damon_pa_migrate_folio_list() Docs/mm/damon/design: fix two typos Docs/mm/damon/design: clarify regions merging operation Docs/admin-guide/mm/damon/start: add access pattern snapshot example Docs/mm/damon/design: add links from overall architecture to sections of details Docs/mm/damon/design: move 'Configurable Operations Set' section into 'Operations Set Layer' section Docs/mm/damon/design: remove 'Programmable Modules' section in favor of 'Modules' section Docs/mm/damon/design: add links to sections of DAMON sysfs interface usage doc Docs/mm/damon/index: add links to design Docs/mm/damon/index: add links to admin-guide doc Sergey Senozhatsky (1): zsmalloc: rename class stat mutators Shakeel Butt (2): mm: vmscan: reset sc->priority on retry memcg: rearrange fields of mem_cgroup_per_node Shubhang Kaushik OS (1): vmalloc: modify the alloc_vmap_area() error message for better diagnostics Sidhartha Kumar (2): mm/hugetlb: remove {Set,Clear}Hpage macros mm/hugetlb: mm/memory_hotplug: use a folio in scan_movable_pages() Sourav Panda (1): mm: report per-page metadata information Suren Baghdasaryan (4): mm: add comments for allocation helpers explaining why they are macros lib: add missing newline character in the warning message lib: reuse page_ext_data() to obtain codetag_ref alloc_tag: fix page_ext_get/page_ext_put sequence during page splitting Tetsuo Handa (1): mm: mmap_lock: replace get_memcg_path_buf() with on-stack buffer Thomas Weißschuh (1): mm/hugetlb: constify ctl_table arguments of utility functions Tvrtko Ursulin (1): mm/numa_balancing: teach mpol_to_str about the balancing mode Uros Bizjak (2): percpu: add __this_cpu_try_cmpxchg() mm/vmalloc: use __this_cpu_try_cmpxchg() in preload_this_cpu_lock() Usama Arif (1): mm: do not start/end writeback for pages stored in zswap Vivek Kasireddy (8): mm/gup: introduce unpin_folio/unpin_folios helpers mm/gup: introduce check_and_migrate_movable_folios() mm/gup: introduce memfd_pin_folios() for pinning memfd folios udmabuf: use vmf_insert_pfn and VM_PFNMAP for handling mmap udmabuf: add back support for mapping hugetlb pages udmabuf: convert udmabuf driver to use folios udmabuf: pin the pages using memfd_pin_folios() API selftests/udmabuf: add tests to verify data after page migration Vlastimil Babka (2): mm, slab: put should_failslab() back behind CONFIG_SHOULD_FAILSLAB mm, page_alloc: put should_fail_alloc_page() back behing CONFIG_FAIL_PAGE_ALLOC Wei Yang (10): mm/mm_init.c: print mem_init info after defer_init is done mm/mm_init.c: simplify logic of deferred_[init|free]_pages mm/sparse: nr_pages won't be 0 mm/mm_init.c: move build check on MAX_ZONELISTS out of ifdef mm/page_alloc: fix a typo in comment about GFP flag mm/page_alloc: reword the comment of buddy_merge_likely() kernel/fork.c: get totalram_pages from memblock to calculate max_threads kernel/fork.c: put set_max_threads()/task_struct_whitelist() in __init section mm/page_alloc: remove prefetchw() on freeing page to buddy system mm/page_alloc: put __free_pages_core() in __meminit section Xiu Jianfeng (5): mm/hugetlb_cgroup: identify the legacy using cgroup_subsys_on_dfl() mm/hugetlb_cgroup: prepare cftypes based on template mm/hugetlb_cgroup: switch to the new cftypes mm: memcg: remove redundant seq_buf_has_overflowed() mm: memcg: adjust the warning when seq_buf overflows Yifei Li (1): mm/memory-failure: use helper llist_for_each_entry() Yosry Ahmed (8): mm: zswap: use sg_set_folio() in zswap_{compress/decompress}() mm :zswap: use kmap_local_folio() in zswap_load() mm: zswap: make same_filled functions folio-friendly mm: rmap: abstract updating per-node and per-memcg stats mm: swap: remove 'synchronous' argument to swap_read_folio() mm: zswap: rename is_zswap_enabled() to zswap_is_enabled() mm: zswap: add zswap_never_enabled() mm: zswap: handle incorrect attempts to load large folios Yu Zhao (4): mm/truncate: batch-clear shadow entries mm/mglru: fix div-by-zero in vmpressure_calc_level() mm/mglru: fix overshooting shrinker memory mm/mglru: fix ineffective protection calculation yangge (1): mm/gup: clear the LRU flag of a page before adding to LRU batch Documentation/ABI/testing/sysfs-kernel-mm-damon | 6 + Documentation/admin-guide/cgroup-v2.rst | 18 +- Documentation/admin-guide/kernel-parameters.txt | 9 +- Documentation/admin-guide/mm/damon/start.rst | 46 +- Documentation/admin-guide/mm/damon/usage.rst | 10 +- Documentation/admin-guide/mm/pagemap.rst | 25 +- Documentation/admin-guide/mm/transhuge.rst | 85 +- Documentation/admin-guide/sysctl/vm.rst | 38 + Documentation/core-api/pin_user_pages.rst | 18 +- Documentation/dev-tools/kmsan.rst | 11 +- Documentation/filesystems/proc.rst | 9 + Documentation/mm/arch_pgtable_helpers.rst | 4 - Documentation/mm/damon/design.rst | 149 +- Documentation/mm/damon/index.rst | 22 +- Documentation/mm/damon/maintainer-profile.rst | 36 + Documentation/mm/unevictable-lru.rst | 10 +- MAINTAINERS | 2 + arch/arm/include/asm/cacheflush.h | 2 +- arch/arm/include/asm/hugetlb-3level.h | 4 +- arch/arm64/include/asm/cacheflush.h | 2 +- arch/arm64/include/asm/hugetlb.h | 2 +- arch/arm64/mm/hugetlbpage.c | 2 +- arch/loongarch/include/asm/pgtable.h | 4 +- arch/mips/include/asm/pgtable.h | 4 +- arch/mips/mm/cache.c | 2 +- arch/powerpc/Kconfig | 1 - arch/powerpc/include/asm/book3s/32/pgalloc.h | 2 - arch/powerpc/include/asm/book3s/64/hash-4k.h | 15 - arch/powerpc/include/asm/book3s/64/hash.h | 40 +- arch/powerpc/include/asm/book3s/64/hugetlb.h | 38 - arch/powerpc/include/asm/book3s/64/pgtable-4k.h | 47 - arch/powerpc/include/asm/book3s/64/pgtable-64k.h | 20 - arch/powerpc/include/asm/book3s/64/pgtable.h | 22 +- arch/powerpc/include/asm/hugetlb.h | 15 +- arch/powerpc/include/asm/nohash/32/hugetlb-8xx.h | 38 +- arch/powerpc/include/asm/nohash/32/mmu-8xx.h | 9 +- arch/powerpc/include/asm/nohash/32/pte-44x.h | 3 - arch/powerpc/include/asm/nohash/32/pte-85xx.h | 3 - arch/powerpc/include/asm/nohash/32/pte-8xx.h | 58 +- arch/powerpc/include/asm/nohash/hugetlb-e500.h | 39 +- arch/powerpc/include/asm/nohash/mmu-e500.h | 6 +- arch/powerpc/include/asm/nohash/pgalloc.h | 2 - arch/powerpc/include/asm/nohash/pgtable.h | 46 +- arch/powerpc/include/asm/nohash/pte-e500.h | 63 +- arch/powerpc/include/asm/page.h | 32 - arch/powerpc/include/asm/pgtable-be-types.h | 10 - arch/powerpc/include/asm/pgtable-types.h | 13 +- arch/powerpc/include/asm/pgtable.h | 3 + arch/powerpc/kernel/exceptions-64e.S | 4 +- arch/powerpc/kernel/head_85xx.S | 70 +- arch/powerpc/kernel/head_8xx.S | 10 +- arch/powerpc/kernel/setup_64.c | 6 +- arch/powerpc/mm/book3s64/hash_utils.c | 11 +- arch/powerpc/mm/book3s64/hugetlbpage.c | 10 + arch/powerpc/mm/book3s64/pgtable.c | 12 - arch/powerpc/mm/hugetlbpage.c | 455 +- arch/powerpc/mm/init-common.c | 8 +- arch/powerpc/mm/kasan/8xx.c | 21 +- arch/powerpc/mm/nohash/8xx.c | 43 +- arch/powerpc/mm/nohash/Makefile | 2 +- arch/powerpc/mm/nohash/book3e_pgtable.c | 4 +- arch/powerpc/mm/nohash/tlb.c | 407 +- arch/powerpc/mm/nohash/tlb_64e.c | 314 ++ arch/powerpc/mm/nohash/tlb_low_64e.S | 428 +- arch/powerpc/mm/pgtable.c | 94 +- arch/powerpc/mm/pgtable_32.c | 2 +- arch/riscv/include/asm/hugetlb.h | 2 +- arch/riscv/include/asm/pgtable.h | 4 +- arch/riscv/mm/hugetlbpage.c | 2 +- arch/s390/Kconfig | 1 + arch/s390/Makefile | 2 +- arch/s390/boot/Makefile | 3 + arch/s390/boot/kmsan.c | 6 + arch/s390/boot/startup.c | 7 + arch/s390/boot/string.c | 16 + arch/s390/include/asm/checksum.h | 2 + arch/s390/include/asm/cpacf.h | 3 + arch/s390/include/asm/cpu_mf.h | 6 + arch/s390/include/asm/hugetlb.h | 4 +- arch/s390/include/asm/irqflags.h | 17 +- arch/s390/include/asm/kmsan.h | 59 + arch/s390/include/asm/pgtable.h | 12 + arch/s390/include/asm/string.h | 20 +- arch/s390/include/asm/thread_info.h | 2 +- arch/s390/include/asm/uaccess.h | 112 +- arch/s390/kernel/diag.c | 10 +- arch/s390/kernel/ftrace.c | 2 + arch/s390/kernel/traps.c | 6 + arch/s390/kernel/unwind_bc.c | 4 + arch/s390/mm/hugetlbpage.c | 4 +- arch/sparc/mm/init_64.c | 2 +- arch/x86/mm/init_64.c | 14 - arch/x86/mm/pat/set_memory.c | 4 +- arch/xtensa/include/asm/pgtable.h | 6 +- arch/xtensa/mm/tlb.c | 6 +- drivers/acpi/numa/hmat.c | 5 +- drivers/block/zram/Kconfig | 1 + drivers/dma-buf/Kconfig | 1 + drivers/dma-buf/udmabuf.c | 232 +- drivers/hv/hv_balloon.c | 5 +- drivers/s390/char/sclp.c | 2 +- drivers/video/fbdev/core/fb_defio.c | 13 +- drivers/virtio/virtio_mem.c | 29 +- drivers/xen/balloon.c | 9 +- fs/afs/dir.c | 6 +- fs/afs/dir_edit.c | 4 +- fs/aio.c | 15 +- fs/btrfs/relocation.c | 3 +- fs/btrfs/send.c | 2 +- fs/ceph/dir.c | 2 +- fs/ceph/inode.c | 2 +- fs/hugetlbfs/inode.c | 20 +- fs/netfs/buffered_read.c | 4 +- fs/netfs/buffered_write.c | 2 +- fs/nfs/file.c | 2 +- fs/nfs/internal.h | 19 - fs/nfs/iostat.h | 4 + fs/nfs/nfstrace.h | 4 +- fs/nfs/write.c | 6 +- fs/nilfs2/bmap.c | 10 +- fs/proc/internal.h | 33 + fs/proc/page.c | 42 +- fs/proc/task_mmu.c | 503 ++- fs/userfaultfd.c | 2 +- include/acpi/platform/aclinuxex.h | 9 +- include/asm-generic/hugetlb.h | 2 +- include/linux/alloc_tag.h | 2 +- include/linux/bpf.h | 8 +- include/linux/buffer_head.h | 2 +- include/linux/cgroup-defs.h | 2 - include/linux/damon.h | 17 +- include/linux/dma-fence-chain.h | 4 + include/linux/fault-inject.h | 11 +- include/linux/gfp.h | 8 + include/linux/hid_bpf.h | 5 + include/linux/highmem-internal.h | 17 +- include/linux/highmem.h | 8 +- include/linux/huge_mm.h | 53 +- include/linux/hugetlb.h | 30 +- include/linux/jbd2.h | 10 + include/linux/kmsan.h | 76 + include/linux/kmsan_types.h | 2 +- include/linux/list_lru.h | 2 +- include/linux/memblock.h | 2 - include/linux/memcontrol.h | 363 +- include/linux/memfd.h | 5 + include/linux/memory-tiers.h | 2 + include/linux/memory_hotplug.h | 4 +- include/linux/migrate.h | 10 +- include/linux/migrate_mode.h | 6 +- include/linux/mm.h | 81 +- include/linux/mm_types.h | 33 +- include/linux/mmzone.h | 2 + include/linux/page-flags.h | 82 +- include/linux/page_counter.h | 4 + include/linux/pagemap.h | 33 +- include/linux/percpu-defs.h | 6 + include/linux/pgalloc_tag.h | 7 +- include/linux/pgtable.h | 40 +- include/linux/rmap.h | 45 +- include/linux/sched.h | 9 +- include/linux/shmem_fs.h | 9 + include/linux/skbuff.h | 8 + include/linux/skmsg.h | 5 + include/linux/slab.h | 12 +- include/linux/swap.h | 14 +- include/linux/swapops.h | 4 +- include/linux/vmstat.h | 4 + include/linux/zswap.h | 10 +- include/ras/ras_event.h | 4 +- include/trace/events/kmem.h | 4 +- include/trace/events/migrate.h | 3 +- include/uapi/linux/fs.h | 158 +- init/Kconfig | 18 +- kernel/bpf/memalloc.c | 9 +- kernel/bpf/syscall.c | 6 +- kernel/bpf/verifier.c | 4 + kernel/events/core.c | 2 +- kernel/events/uprobes.c | 2 +- kernel/exit.c | 81 +- kernel/fork.c | 18 +- kernel/power/swap.c | 5 +- kernel/trace/ftrace.c | 1 + lib/maple_tree.c | 15 +- lib/test_hmm.c | 1 + lib/test_maple_tree.c | 1 + lib/test_ubsan.c | 1 + lib/test_xarray.c | 1 + lib/zlib_dfltcc/dfltcc.h | 1 + lib/zlib_dfltcc/dfltcc_util.h | 28 + mm/Kconfig | 23 +- mm/Makefile | 2 + mm/balloon_compaction.c | 8 - mm/damon/core.c | 338 +- mm/damon/dbgfs.c | 2 +- mm/damon/lru_sort.c | 56 +- mm/damon/paddr.c | 157 + mm/damon/reclaim.c | 65 +- mm/damon/sysfs-common.h | 2 +- mm/damon/sysfs-schemes.c | 127 +- mm/damon/sysfs-test.h | 10 +- mm/damon/sysfs.c | 81 +- mm/damon/vaddr.c | 6 +- mm/dmapool_test.c | 1 + mm/fail_page_alloc.c | 4 +- mm/failslab.c | 14 +- mm/filemap.c | 8 +- mm/folio-compat.c | 6 - mm/gup.c | 510 +-- mm/highmem.c | 21 +- mm/hmm.c | 2 +- mm/huge_memory.c | 193 +- mm/hugetlb.c | 137 +- mm/hugetlb_cgroup.c | 305 +- mm/hugetlb_vmemmap.c | 17 +- mm/hwpoison-inject.c | 1 + mm/internal.h | 75 +- mm/kfence/core.c | 17 +- mm/kfence/kfence.h | 2 +- mm/kfence/kfence_test.c | 1 + mm/khugepaged.c | 40 +- mm/kmemleak.c | 6 +- mm/kmsan/core.c | 5 +- mm/kmsan/hooks.c | 38 +- mm/kmsan/init.c | 9 +- mm/kmsan/instrumentation.c | 15 +- mm/kmsan/kmsan.h | 39 +- mm/kmsan/kmsan_test.c | 32 + mm/kmsan/report.c | 10 +- mm/kmsan/shadow.c | 9 +- mm/ksm.c | 261 +- mm/list_lru.c | 14 +- mm/madvise.c | 2 +- mm/memcontrol-v1.c | 2969 +++++++++++++ mm/memcontrol-v1.h | 147 + mm/memcontrol.c | 4417 +++----------------- mm/memfd.c | 45 + mm/memory-failure.c | 259 +- mm/memory-tiers.c | 54 +- mm/memory.c | 376 +- mm/memory_hotplug.c | 52 +- mm/mempolicy.c | 38 +- mm/migrate.c | 213 +- mm/migrate_device.c | 24 +- mm/mincore.c | 4 +- mm/mlock.c | 19 +- mm/mm_init.c | 96 +- mm/mmap.c | 41 + mm/mmap_lock.c | 175 +- mm/mprotect.c | 4 +- mm/mremap.c | 2 +- mm/page-writeback.c | 319 +- mm/page_alloc.c | 78 +- mm/page_counter.c | 173 + mm/page_ext.c | 32 +- mm/page_io.c | 22 +- mm/pagewalk.c | 57 +- mm/percpu-internal.h | 6 +- mm/percpu.c | 6 +- mm/readahead.c | 276 +- mm/rmap.c | 169 +- mm/shmem.c | 359 +- mm/slab.h | 2 +- mm/slab_common.c | 10 +- mm/slub.c | 51 +- mm/sparse-vmemmap.c | 8 + mm/sparse.c | 28 +- mm/swap.c | 51 +- mm/swap.h | 30 +- mm/swap_state.c | 120 +- mm/swapfile.c | 75 +- mm/truncate.c | 70 +- mm/userfaultfd.c | 14 +- mm/util.c | 17 + mm/vmalloc.c | 9 +- mm/vmscan.c | 188 +- mm/vmstat.c | 26 +- mm/zsmalloc.c | 175 +- mm/zswap.c | 126 +- samples/kmemleak/kmemleak-test.c | 1 + tools/include/uapi/linux/fs.h | 552 +++ tools/include/uapi/linux/prctl.h | 331 ++ tools/mm/Makefile | 2 +- tools/mm/thp_swap_allocator_test.c | 234 ++ tools/objtool/check.c | 2 + tools/testing/selftests/cgroup/config | 1 - tools/testing/selftests/damon/Makefile | 3 +- tools/testing/selftests/damon/_damon_sysfs.py | 65 +- tools/testing/selftests/damon/access_memory.c | 2 +- tools/testing/selftests/damon/access_memory_even.c | 42 + tools/testing/selftests/damon/damon_nr_regions.py | 145 + .../testing/selftests/damon/damos_tried_regions.py | 65 + tools/testing/selftests/drivers/dma-buf/udmabuf.c | 214 +- tools/testing/selftests/exec/Makefile | 1 - tools/testing/selftests/futex/functional/Makefile | 2 +- tools/testing/selftests/intel_pstate/Makefile | 2 +- tools/testing/selftests/iommu/Makefile | 2 - tools/testing/selftests/kvm/Makefile | 2 +- tools/testing/selftests/lib.mk | 3 + tools/testing/selftests/mm/.gitignore | 1 + tools/testing/selftests/mm/Makefile | 3 + tools/testing/selftests/mm/hugepage-mremap.c | 2 +- tools/testing/selftests/mm/hugetlb-soft-offline.c | 228 + tools/testing/selftests/mm/hugetlb_dio.c | 117 + tools/testing/selftests/mm/ksm_functional_tests.c | 8 +- tools/testing/selftests/mm/memfd_secret.c | 14 +- tools/testing/selftests/mm/mkdirty.c | 8 +- tools/testing/selftests/mm/mlock2.h | 1 + tools/testing/selftests/mm/mseal_helpers.h | 41 + tools/testing/selftests/mm/mseal_test.c | 143 +- tools/testing/selftests/mm/pagemap_ioctl.c | 6 +- tools/testing/selftests/mm/protection_keys.c | 2 +- tools/testing/selftests/mm/run_vmtests.sh | 7 + tools/testing/selftests/mm/seal_elf.c | 37 +- tools/testing/selftests/mm/split_huge_page_test.c | 3 +- tools/testing/selftests/mm/thuge-gen.c | 15 +- tools/testing/selftests/mm/uffd-common.c | 4 - tools/testing/selftests/mm/uffd-stress.c | 31 +- tools/testing/selftests/mm/uffd-unit-tests.c | 14 +- tools/testing/selftests/mm/va_high_addr_switch.c | 454 +- tools/testing/selftests/mm/va_high_addr_switch.sh | 4 - tools/testing/selftests/net/Makefile | 2 +- tools/testing/selftests/net/tcp_ao/Makefile | 2 +- tools/testing/selftests/proc/Makefile | 2 +- tools/testing/selftests/proc/proc-pid-vm.c | 86 + tools/testing/selftests/resctrl/Makefile | 2 +- tools/testing/selftests/ring-buffer/Makefile | 1 - tools/testing/selftests/riscv/mm/Makefile | 2 +- tools/testing/selftests/sgx/Makefile | 2 +- tools/testing/selftests/tmpfs/Makefile | 1 - 330 files changed, 12969 insertions(+), 9745 deletions(-) delete mode 100644 arch/powerpc/include/asm/book3s/64/pgtable-4k.h create mode 100644 arch/powerpc/mm/nohash/tlb_64e.c create mode 100644 arch/s390/boot/kmsan.c create mode 100644 arch/s390/include/asm/kmsan.h create mode 100644 mm/memcontrol-v1.c create mode 100644 mm/memcontrol-v1.h create mode 100644 tools/include/uapi/linux/fs.h create mode 100644 tools/include/uapi/linux/prctl.h create mode 100644 tools/mm/thp_swap_allocator_test.c create mode 100644 tools/testing/selftests/damon/access_memory_even.c create mode 100644 tools/testing/selftests/damon/damon_nr_regions.py create mode 100644 tools/testing/selftests/damon/damos_tried_regions.py create mode 100644 tools/testing/selftests/mm/hugetlb-soft-offline.c create mode 100644 tools/testing/selftests/mm/hugetlb_dio.c create mode 100644 tools/testing/selftests/mm/mseal_helpers.h