Linus, please merge the MM updates for the upcoming dewvelopment cycle, thanks. I'm not seeing any conflicts at this time. Upcoming merge issues along with their linux-next resolutions are as follows: kernel/auditsc.c, vs security tree: https://lkml.kernel.org/r/20241014144648.1923104a@xxxxxxxxxxxxxxxx security/lsm_audit.c, vs security tree: https://lkml.kernel.org/r/20241023123139.127ad800@xxxxxxxxxxxxxxxx arch/arm64/mm/pageattr.c, vs arm tree: https://lkml.kernel.org/r/20241024103709.082a6950@xxxxxxxxxxxxxxxx include/linux/mm.h, vs arm tree: https://lkml.kernel.org/r/20241028111058.4419a9ed@xxxxxxxxxxxxxxxx arch/s390/include/asm/set_memory.h and arch/s390/mm/pageattr.c, vs s390 tree: https://lkml.kernel.org/r/20241028111606.5c009055@xxxxxxxxxxxxxxxx lib/Makefile, vs asm-generic tree: https://lkml.kernel.org/r/20241029095525.0fba9d23@xxxxxxxxxxxxxxxx arch/arm64/include/asm/mman.h, vs arm64 tree: https://lkml.kernel.org/r/20241031104247.65c76c00@xxxxxxxxxxxxxxxx drivers/block/zram/zram_drv.c, vs block tree: https://lkml.kernel.org/r/20241111135241.1640f547@xxxxxxxxxxxxxxxx arch/s390/mm/pageattr.c, vs s390 tree: https://lkml.kernel.org/r/20241114101639.282d82a8@xxxxxxxxxxxxxxxx The following changes since commit e7ac4daeed91a25382091e73818ea0cddb1afd5e: mm: count zeromap read and set for swapout and swapin (2024-11-11 00:00:37 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2024-11-18-19-27 for you to fetch changes up to 2532e6c74a67e65b95f310946e0c0e0a41b3a34b: cma: enforce non-zero pageblock_order during cma_init_reserved_mem() (2024-11-14 22:49:19 -0800) ---------------------------------------------------------------- - The series "zram: optimal post-processing target selection" from Sergey Senozhatsky improves zram's post-processing selection algorithm. This leads to improved memory savings. - Wei Yang has gone to town on the mapletree code, contributing several series which clean up the implementation: - "refine mas_mab_cp()" - "Reduce the space to be cleared for maple_big_node" - "maple_tree: simplify mas_push_node()" - "Following cleanup after introduce mas_wr_store_type()" - "refine storing null" - The series "selftests/mm: hugetlb_fault_after_madv improvements" from David Hildenbrand fixes this selftest for s390. - The series "introduce pte_offset_map_{ro|rw}_nolock()" from Qi Zheng implements some rationaizations and cleanups in the page mapping code. - The series "mm: optimize shadow entries removal" from Shakeel Butt optimizes the file truncation code by speeding up the handling of shadow entries. - The series "Remove PageKsm()" from Matthew Wilcox completes the migration of this flag over to being a folio-based flag. - The series "Unify hugetlb into arch_get_unmapped_area functions" from Oscar Salvador implements a bunch of consolidations and cleanups in the hugetlb code. - The series "Do not shatter hugezeropage on wp-fault" from Dev Jain takes away the wp-fault time practice of turning a huge zero page into small pages. Instead we replace the whole thing with a THP. More consistent cleaner and potentiall saves a large number of pagefaults. - The series "percpu: Add a test case and fix for clang" from Andy Shevchenko enhances and fixes the kernel's built in percpu test code. - The series "mm/mremap: Remove extra vma tree walk" from Liam Howlett optimizes mremap() by avoiding doing things which we didn't need to do. - The series "Improve the tmpfs large folio read performance" from Baolin Wang teaches tmpfs to copy data into userspace at the folio size rather than as individual pages. A 20% speedup was observed. - The series "mm/damon/vaddr: Fix issue in damon_va_evenly_split_region()" fro Zheng Yejian fixes DAMON splitting. - The series "memcg-v1: fully deprecate charge moving" from Shakeel Butt removes the long-deprecated memcgv2 charge moving feature. - The series "fix error handling in mmap_region() and refactor" from Lorenzo Stoakes cleanup up some of the mmap() error handling and addresses some potential performance issues. - The series "x86/module: use large ROX pages for text allocations" from Mike Rapoport teaches x86 to use large pages for read-only-execute module text. - The series "page allocation tag compression" from Suren Baghdasaryan is followon maintenance work for the new page allocation profiling feature. - The series "page->index removals in mm" from Matthew Wilcox remove most references to page->index in mm/. A slow march towards shrinking struct page. - The series "damon/{self,kunit}tests: minor fixups for DAMON debugfs interface tests" from Andrew Paniakin performs maintenance work for DAMON's self testing code. - The series "mm: zswap swap-out of large folios" from Kanchana Sridhar improves zswap's batching of compression and decompression. It is a step along the way towards using Intel IAA hardware acceleration for this zswap operation. - The series "kasan: migrate the last module test to kunit" from Sabyrzhan Tasbolatov completes the migration of the KASAN built-in tests over to the KUnit framework. - The series "implement lightweight guard pages" from Lorenzo Stoakes permits userapace to place fault-generating guard pages within a single VMA, rather than requiring that multiple VMAs be created for this. Improved efficiencies for userspace memory allocators are expected. - The series "memcg: tracepoint for flushing stats" from JP Kobryn uses tracepoints to provide increased visibility into memcg stats flushing activity. - The series "zram: IDLE flag handling fixes" from Sergey Senozhatsky fixes a zram buglet which potentially affected performance. - The series "mm: add more kernel parameters to control mTHP" from Maíra Canal enhances our ability to control/configuremultisize THP from the kernel boot command line. - The series "kasan: few improvements on kunit tests" from Sabyrzhan Tasbolatov has a couple of fixups for the KASAN KUnit tests. - The series "mm/list_lru: Split list_lru lock into per-cgroup scope" from Kairui Song optimizes list_lru memory utilization when lockdep is enabled. ---------------------------------------------------------------- Adrian Huang (1): mm/vmalloc: combine all TLB flush operations of KASAN shadow virtual address into one operation Alexey Klimov (1): MAINTAINERS: mailmap: update Alexey Klimov's email address Andrew Morton (3): Merge branch 'mm-hotfixes-stable' into mm-stable. mm/memory.c: remove stray newline at top of file Merge branch 'mm-hotfixes-stable' into mm-stable Andrew Paniakin (1): selftests/damon/huge_count_read_write: provide sufficiently large buffer for DEPRECATED file read Andy Shevchenko (2): x86/percpu: fix clang warning when dealing with unsigned types percpu: add a test case for the specific 64-bit value addition Anshuman Khandual (1): mm: move set_pxd_safe() helpers from generic to platform Ba Jing (1): selftests/damon/access_memory_even: remove unused variables Baolin Wang (4): mm: shmem: fix khugepaged activation policy for shmem mm: shmem: update iocb->ki_pos directly to simplify tmpfs read logic mm: shmem: improve the tmpfs large folio read performance mm: shmem: fallback to page size splice if large folio has poisoned pages Barry Song (1): mm: add per-order mTHP swpin counters Bibo Mao (1): mm: define general function pXd_init() Breno Leitao (1): mm: remove misleading 'unlikely' hint in vms_gather_munmap_vmas() Catalin Marinas (1): kmemleak: iommu/iova: fix transient kmemleak false positive Chunyan Zhang (2): selftest/mm: fix typo in virtual_address_range selftests/mm: skip virtual_address_range tests on riscv David Hildenbrand (2): selftests/mm: hugetlb_fault_after_madv: use default hugetlb page size selftests/mm: hugetlb_fault_after_madv: improve test output Dennis Zhou (1): percpu: fix data race with pcpu_nr_empty_pop_pages Dev Jain (3): mm: abstract THP allocation mm: allocate THP on hugezeropage wp-fault mm: remove redundant condition for THP folio Geert Uytterhoeven (1): zram: ZRAM_DEF_COMP should depend on ZRAM Hugh Dickins (1): mm: delete the unused put_pages_list() JP Kobryn (2): memcg: rename do_flush_stats and add force flag memcg: add flush tracepoint Jaewon Kim (1): vmscan: add a vmscan event for reclaim_pages James Houghton (1): mm: add missing mmu_notifier_clear_young for !MMU_NOTIFIER Jann Horn (1): maple_tree: fix outdated flag name in comment Jiazi Li (2): maple_tree: fix alloc node fail issue maple_tree: add some alloc node test case Jim Zhao (1): mm/page-writeback: raise wb_thresh to prevent write blocking with strictlimit Jingxiang Zeng (1): mm/memcontrol: add per-memcg pgpgin/pswpin counter John Hubbard (1): kaslr: rename physmem_end and PHYSMEM_END to direct_map_physmem_end Joshua Hahn (1): memcg/hugetlb: add hugeTLB counters to memcg Kairui Song (7): mm/zswap: avoid touching XArray for unnecessary invalidation mm/list_lru: don't pass unnecessary key parameters mm/list_lru: don't export list_lru_add mm/list_lru: code clean up for reparenting mm/list_lru: simplify reparenting and initial allocation mm/list_lru: split the lock to per-cgroup scope mm/list_lru: simplify the list_lru walk callback function Kanchana P Sridhar (8): mm: swap: make some count_mthp_stat() call-sites be THP-agnostic. mm: define obj_cgroup_get() if CONFIG_MEMCG is not defined mm: zswap: modify zswap_compress() to accept a page instead of a folio mm: zswap: rename zswap_pool_get() to zswap_pool_tryget() mm: zswap: modify zswap_stored_pages to be atomic_long_t mm: zswap: support large folios in zswap_store() mm: swap: count successful large folio zswap stores in hugepage zswpout stats mm: zswap: zswap_store_page() will initialize entry after adding to xarray. Kefeng Wang (4): mm: remove unused hugepage for vma_alloc_folio() tmpfs: don't enable large folios if not supported mm: huge_memory: move file_thp_enabled() into huge_memory.c mm: shmem: remove __shmem_huge_global_enabled() Leo Stone (1): mm/damon: fix sparse warning for zero initializer Liam R. Howlett (3): mm/mremap: cleanup vma_to_resize() mm/mremap: remove goto from mremap_to() vma: detect infinite loop in vma tree Liu Jing (1): tools/mm: free the allocated memory Liu Shixin (1): zram: fix NULL pointer in comp_algorithm_show() Lorenzo Stoakes (16): selftests/mm: add pkey_sighandler_xx, hugetlb_dio to .gitignore mm: refactor mm_access() to not return NULL mm/madvise: unrestrict process_madvise() for current process maple_tree: do not hash pointers on dump in debug mode tools: testing: fix phys_addr_t size on 64-bit systems tools: testing: add additional vma_internal.h stubs mm: isolate mmap internal logic to mm/vma.c mm: refactor __mmap_region() mm: remove unnecessary reset state logic on merge new VMA mm: defer second attempt at merge on mmap() mm: pagewalk: add the ability to install PTEs mm: add PTE_MARKER_GUARD PTE marker mm: madvise: implement lightweight guard page mechanism tools: testing: update tools UAPI header for mman-common.h selftests/mm: add self tests for guard page feature mm: remove unnecessary page_table_lock on stack expansion Luoxi Li (1): mm: remove unused has_isolate_pageblock Manas (1): mm/memory.c: simplify pfnmap_lockdep_assert Marc Dionne (1): tools/mm: fix slabinfo crash when MAX_SLABS is exceeded Matthew Wilcox (Oracle) (13): ksm: use a folio in try_to_merge_one_page() ksm: convert cmp_and_merge_page() to use a folio ksm: convert should_skip_rmap_item() to take a folio mm: add PageAnonNotKsm() mm: remove PageKsm() gup: convert FOLL_TOUCH case in follow_page_pte() to folio mm: convert page_to_pgoff() to page_pgoff() mm: use page_pgoff() in more places mm: renovate page_address_in_vma() mm: mass constification of folio/page pointers bootmem: stop using page->index mm: remove references to page->index in huge_memory.c mm: use page->private instead of page->index in percpu Maíra Canal (4): mm: shmem: control THP support through the kernel command line mm: move ``get_order_from_str()`` to internal.h mm: shmem: override mTHP shmem default with a kernel parameter mm: huge_memory: use strscpy() instead of strcpy() MengEn Sun (2): mm: add pcp high_min high_max to proc zoneinfo vmstat: call fold_vm_zone_numa_events() before show per zone NUMA event Mike Rapoport (Microsoft) (9): mm/kmemleak: fix typo in object_no_scan() comment mm: vmalloc: group declarations depending on CONFIG_MMU together mm: vmalloc: don't account for number of nodes for HUGE_VMAP allocations asm-generic: introduce text-patching.h module: prepare to handle ROX allocations for text arch: introduce set_direct_map_valid_noflush() x86/module: prepare module loading for ROX allocations of text execmem: add support for cache of large ROX pages x86/module: enable ROX caches for module text on 64 bit Nanyong Sun (1): mm: move mm flags to mm_types.h Nihar Chaithanya (1): kasan: add kunit tests for kmalloc_track_caller, kmalloc_node_track_caller Nirjhar Roy (1): mm/kfence: add a new kunit test test_use_after_free_read_nofault() Oscar Salvador (9): mm/mmap: teach generic_get_unmapped_area{_topdown} to handle hugetlb mappings arch/s390: teach arch_get_unmapped_area{_topdown} to handle hugetlb mappings arch/x86: teach arch_get_unmapped_area_vmflags to handle hugetlb mappings arch/sparc: teach arch_get_unmapped_area{_topdown} to handle hugetlb mappings arch/powerpc: teach book3s64 arch_get_unmapped_area{_topdown} to handle hugetlb mappings mm: make hugetlb mappings go through mm_get_unmapped_area_vmflags mm: drop hugetlb_get_unmapped_area{_*} functions arch/s390: clean up hugetlb definitions mm: consolidate common checks in hugetlb_get_unmapped_area Pankaj Raghav (1): mm: don't set readahead flag on a folio when lookahead_size > nr_to_read Pintu Kumar (3): mm/cma: fix useless return in void function zsmalloc: replace kmap_atomic with kmap_local_page mm/zsmalloc: use memcpy_from/to_page whereever possible Qi Zheng (13): mm: pgtable: introduce pte_offset_map_{ro|rw}_nolock() powerpc: assert_pte_locked() use pte_offset_map_ro_nolock() mm: filemap: filemap_fault_recheck_pte_none() use pte_offset_map_ro_nolock() mm: khugepaged: __collapse_huge_page_swapin() use pte_offset_map_ro_nolock() arm: adjust_pte() use pte_offset_map_rw_nolock() mm: handle_pte_fault() use pte_offset_map_rw_nolock() mm: khugepaged: collapse_pte_mapped_thp() use pte_offset_map_rw_nolock() mm: copy_pte_range() use pte_offset_map_rw_nolock() mm: mremap: move_ptes() use pte_offset_map_rw_nolock() mm: page_vma_mapped_walk: map_pte() use pte_offset_map_rw_nolock() mm: userfaultfd: move_pages_pte() use pte_offset_map_rw_nolock() mm: multi-gen LRU: walk_pte_range() use pte_offset_map_rw_nolock() mm: pgtable: remove pte_offset_map_nolock() Ritesh Harjani (IBM) (1): cma: enforce non-zero pageblock_order during cma_init_reserved_mem() Ryan Roberts (1): mm/memcontrol: fix seq_buf size to save memory when PAGE_SIZE is large Sabyrzhan Tasbolatov (6): mm, kasan, kmsan: instrument copy_from/to_kernel_nofault kasan: move checks to do_strncpy_from_user kasan: migrate copy_user_test to kunit kasan: delete CONFIG_KASAN_MODULE_TEST kasan: use EXPORT_SYMBOL_IF_KUNIT to export symbols kasan: change kasan_atomics kunit test as KUNIT_CASE_SLOW Saurabh Sengar (1): mm/vmstat: defer the refresh_zone_stat_thresholds after all CPUs bringup SeongJae Park (7): selftests/damon/huge_count_read_write: remove unnecessary debugging message selftests/damon/_debugfs_common: hide expected error message from test_write_result() selftests/damon/debugfs_duplicate_context_creation: hide errors from expected file write failures mm/damon/Kconfig: update DBGFS_KUNIT prompt copy for SYSFS_KUNIT mm/damon/tests/dbgfs-kunit: fix the header double inclusion guarding ifdef comment Docs/mm/damon: recommend academic papers to read and/or cite MAINTAINERS/MEMORY MANAGEMENT: add document files for mm Sergey Senozhatsky (10): zram: introduce ZRAM_PP_SLOT flag zram: permit only one post-processing operation at a time zram: rework recompress target selection strategy zram: rework writeback target selection strategy zram: do not mark idle slots that cannot be idle zram: reshuffle zram_free_page() flags operations zram: remove UNDER_WB and simplify writeback zram: do not open-code comp priority 0 zram: clear IDLE flag after recompression zram: clear IDLE flag in mark_idle() Shakeel Butt (11): mm: optimize truncation of shadow entries mm: optimize invalidation of shadow entries mm/truncate: reset xa_has_values flag on each iteration memcg: add tracing for memcg stat updates memcg-v1: fully deprecate move_charge_at_immigrate memcg-v1: remove charge move code memcg-v1: no need for memcg locking for dirty tracking memcg-v1: no need for memcg locking for writeback tracking memcg-v1: no need for memcg locking for MGLRU memcg-v1: remove memcg move locking code memcg: workingset: remove folio_memcg_rcu usage Sidhartha Kumar (1): maple_tree: refactor mas_wr_store_type() Sourav Panda (1): mm/codetag: fix arg in pgalloc_tag_copy alloc_tag_sub Suren Baghdasaryan (7): maple_tree: add mas_for_each_rev() helper alloc_tag: introduce shutdown_mem_profiling helper function alloc_tag: load module tags into separate contiguous memory alloc_tag: populate memory for module tags as needed alloc_tag: introduce pgtag_ref_handle to abstract page tag references alloc_tag: support for page allocation tag compression mm/codetag: uninline and move pgalloc_tag_copy and pgalloc_tag_split Tanya Agarwal (1): mm/mempolicy: fix comments for better documentation Thorsten Blum (3): mm: swap: use str_true_false() helper function mm/page_alloc: use str_off_on() helper in build_all_zonelists() mm/show_mem: use str_yes_no() helper in show_free_areas() Vlastimil Babka (1): mm: mmap_lock: check trace_mmap_lock_$type_enabled() instead of regcount Wei Xu (1): mm/mglru: reset page lru tier bits when activating Wei Yang (16): maple_tree: i is always less than or equal to mas_end maple_tree: goto complete directly on a pivot of 0 maple_tree: remove maple_big_node.parent maple_tree: memset maple_big_node as a whole maple_tree: root node could be handled by !p_slot too maple_tree: clear request_count for new allocated one maple_tree: total is not changed for nomem_one case maple_tree: simplify mas_push_node() maple_tree: calculate new_end when needed maple_tree: remove sanity check from mas_wr_slot_store() mm/vma: the pgoff is correct if can_merge_right maple_tree: print empty for an empty tree on mt_dump() maple_tree: the return value of mas_root_expand() is not used maple_tree: not necessary to check index/last again maple_tree: refine mas_store_root() on storing NULL maple_tree: add a test checking storing null Xiu Jianfeng (1): memcg: factor out mem_cgroup_stat_aggregate() Zeng Jingxiang (1): mm/vmscan: wake up flushers conditionally to avoid cgroup OOM Zhaoyang Huang (1): mm: migrate LRU_REFS_MASK bits in folio_migrate_flags Zheng Yejian (2): mm/damon/vaddr: fix issue in damon_va_evenly_split_region() mm/damon/vaddr: add 'nr_piece == 1' check in damon_va_evenly_split_region() Zhiguo Jiang (1): mm: fix shrink nr.unqueued_dirty counter issue Zi Yan (1): mm: avoid zeroing user movable page twice with init_on_alloc=1 suhua (1): mm/hugetlb: perform vmemmap optimization batchly for specific node allocation zhangguopeng (1): mm/memory-failure: replace sprintf() with sysfs_emit() .mailmap | 1 + Documentation/admin-guide/blockdev/zram.rst | 2 + Documentation/admin-guide/cgroup-v1/memory.rst | 82 +- Documentation/admin-guide/cgroup-v2.rst | 5 + Documentation/admin-guide/kernel-parameters.txt | 17 + Documentation/admin-guide/mm/transhuge.rst | 35 +- Documentation/dev-tools/kasan.rst | 23 +- Documentation/dev-tools/kmemleak.rst | 1 + Documentation/mm/allocation-profiling.rst | 7 +- Documentation/mm/damon/index.rst | 6 + Documentation/mm/split_page_table_lock.rst | 6 +- .../translations/zh_CN/dev-tools/kasan.rst | 20 +- .../translations/zh_TW/dev-tools/kasan.rst | 21 +- MAINTAINERS | 8 +- arch/Kconfig | 8 + arch/alpha/include/asm/Kbuild | 1 + arch/alpha/include/asm/page.h | 2 +- arch/alpha/include/uapi/asm/mman.h | 3 + arch/arc/include/asm/Kbuild | 1 + arch/arm/include/asm/{patch.h => text-patching.h} | 0 arch/arm/kernel/ftrace.c | 2 +- arch/arm/kernel/jump_label.c | 2 +- arch/arm/kernel/kgdb.c | 2 +- arch/arm/kernel/patch.c | 2 +- arch/arm/mm/fault-armv.c | 53 +- arch/arm/probes/kprobes/core.c | 2 +- arch/arm/probes/kprobes/opt-arm.c | 2 +- arch/arm64/include/asm/memory.h | 2 +- arch/arm64/include/asm/set_memory.h | 1 + .../include/asm/{patching.h => text-patching.h} | 0 arch/arm64/kernel/ftrace.c | 2 +- arch/arm64/kernel/jump_label.c | 2 +- arch/arm64/kernel/kgdb.c | 2 +- arch/arm64/kernel/patching.c | 2 +- arch/arm64/kernel/probes/kprobes.c | 2 +- arch/arm64/kernel/traps.c | 2 +- arch/arm64/mm/fault.c | 2 +- arch/arm64/mm/pageattr.c | 10 + arch/arm64/net/bpf_jit_comp.c | 2 +- arch/csky/include/asm/Kbuild | 1 + arch/hexagon/include/asm/Kbuild | 1 + arch/loongarch/include/asm/Kbuild | 1 + arch/loongarch/include/asm/hugetlb.h | 5 - arch/loongarch/include/asm/pgtable.h | 3 + arch/loongarch/include/asm/set_memory.h | 1 + arch/loongarch/mm/pageattr.c | 19 + arch/m68k/include/asm/Kbuild | 1 + arch/m68k/include/asm/page_no.h | 2 +- arch/microblaze/include/asm/Kbuild | 1 + arch/mips/include/asm/Kbuild | 1 + arch/mips/include/asm/hugetlb.h | 5 - arch/mips/include/asm/pgtable-64.h | 2 + arch/mips/include/uapi/asm/mman.h | 3 + arch/nios2/include/asm/Kbuild | 1 + arch/openrisc/include/asm/Kbuild | 1 + arch/parisc/include/asm/hugetlb.h | 15 - .../include/asm/{patch.h => text-patching.h} | 0 arch/parisc/include/uapi/asm/mman.h | 3 + arch/parisc/kernel/ftrace.c | 2 +- arch/parisc/kernel/jump_label.c | 2 +- arch/parisc/kernel/kgdb.c | 2 +- arch/parisc/kernel/kprobes.c | 2 +- arch/parisc/kernel/patch.c | 2 +- arch/parisc/mm/hugetlbpage.c | 21 - arch/powerpc/include/asm/kprobes.h | 2 +- .../asm/{code-patching.h => text-patching.h} | 0 arch/powerpc/kernel/crash_dump.c | 2 +- arch/powerpc/kernel/epapr_paravirt.c | 2 +- arch/powerpc/kernel/jump_label.c | 2 +- arch/powerpc/kernel/kgdb.c | 2 +- arch/powerpc/kernel/kprobes.c | 2 +- arch/powerpc/kernel/module_32.c | 2 +- arch/powerpc/kernel/module_64.c | 2 +- arch/powerpc/kernel/optprobes.c | 2 +- arch/powerpc/kernel/process.c | 2 +- arch/powerpc/kernel/security.c | 2 +- arch/powerpc/kernel/setup_32.c | 2 +- arch/powerpc/kernel/setup_64.c | 2 +- arch/powerpc/kernel/static_call.c | 2 +- arch/powerpc/kernel/trace/ftrace.c | 2 +- arch/powerpc/kernel/trace/ftrace_64_pg.c | 2 +- arch/powerpc/lib/code-patching.c | 2 +- arch/powerpc/lib/feature-fixups.c | 2 +- arch/powerpc/lib/test-code-patching.c | 2 +- arch/powerpc/lib/test_emulate_step.c | 2 +- arch/powerpc/mm/book3s32/mmu.c | 2 +- arch/powerpc/mm/book3s64/hash_utils.c | 2 +- arch/powerpc/mm/book3s64/slb.c | 2 +- arch/powerpc/mm/book3s64/slice.c | 50 +- arch/powerpc/mm/kasan/init_32.c | 2 +- arch/powerpc/mm/mem.c | 2 +- arch/powerpc/mm/nohash/44x.c | 2 +- arch/powerpc/mm/nohash/book3e_pgtable.c | 2 +- arch/powerpc/mm/nohash/tlb.c | 2 +- arch/powerpc/mm/nohash/tlb_64e.c | 2 +- arch/powerpc/mm/pgtable.c | 2 +- arch/powerpc/net/bpf_jit_comp.c | 2 +- arch/powerpc/perf/8xx-pmu.c | 2 +- arch/powerpc/perf/core-book3s.c | 2 +- arch/powerpc/platforms/85xx/smp.c | 2 +- arch/powerpc/platforms/86xx/mpc86xx_smp.c | 2 +- arch/powerpc/platforms/cell/smp.c | 2 +- arch/powerpc/platforms/powermac/smp.c | 2 +- arch/powerpc/platforms/powernv/idle.c | 2 +- arch/powerpc/platforms/powernv/smp.c | 2 +- arch/powerpc/platforms/pseries/smp.c | 2 +- arch/powerpc/xmon/xmon.c | 2 +- arch/riscv/errata/andes/errata.c | 2 +- arch/riscv/errata/sifive/errata.c | 2 +- arch/riscv/errata/thead/errata.c | 2 +- arch/riscv/include/asm/pgtable.h | 19 + arch/riscv/include/asm/set_memory.h | 1 + .../riscv/include/asm/{patch.h => text-patching.h} | 0 arch/riscv/include/asm/uprobes.h | 2 +- arch/riscv/kernel/alternative.c | 2 +- arch/riscv/kernel/cpufeature.c | 3 +- arch/riscv/kernel/ftrace.c | 2 +- arch/riscv/kernel/jump_label.c | 2 +- arch/riscv/kernel/patch.c | 2 +- arch/riscv/kernel/probes/kprobes.c | 2 +- arch/riscv/mm/pageattr.c | 15 + arch/riscv/net/bpf_jit_comp64.c | 2 +- arch/riscv/net/bpf_jit_core.c | 2 +- arch/s390/include/asm/hugetlb.h | 73 +- arch/s390/include/asm/page.h | 2 +- arch/s390/include/asm/set_memory.h | 1 + arch/s390/mm/hugetlbpage.c | 85 -- arch/s390/mm/mmap.c | 9 +- arch/s390/mm/pageattr.c | 11 + arch/sh/include/asm/Kbuild | 1 + arch/sh/include/asm/hugetlb.h | 15 - arch/sparc/include/asm/Kbuild | 1 + arch/sparc/kernel/sys_sparc_32.c | 17 +- arch/sparc/kernel/sys_sparc_64.c | 37 +- arch/sparc/mm/hugetlbpage.c | 108 -- arch/um/kernel/um_arch.c | 16 +- arch/x86/Kconfig | 1 + arch/x86/entry/vdso/vma.c | 3 +- arch/x86/include/asm/alternative.h | 14 +- arch/x86/include/asm/page.h | 2 +- arch/x86/include/asm/page_64.h | 2 +- arch/x86/include/asm/percpu.h | 7 +- arch/x86/include/asm/pgtable.h | 37 + arch/x86/include/asm/pgtable_64_types.h | 2 +- arch/x86/include/asm/set_memory.h | 1 + arch/x86/include/asm/text-patching.h | 1 + arch/x86/kernel/alternative.c | 181 +-- arch/x86/kernel/ftrace.c | 30 +- arch/x86/kernel/module.c | 45 +- arch/x86/kernel/sys_x86_64.c | 24 +- arch/x86/mm/hugetlbpage.c | 101 -- arch/x86/mm/init.c | 37 +- arch/x86/mm/init_64.c | 30 +- arch/x86/mm/kaslr.c | 14 +- arch/x86/mm/pat/set_memory.c | 8 + arch/xtensa/include/asm/Kbuild | 1 + arch/xtensa/include/uapi/asm/mman.h | 3 + drivers/android/binder_alloc.c | 8 +- drivers/android/binder_alloc.h | 2 +- drivers/block/zram/Kconfig | 1 + drivers/block/zram/zram_drv.c | 384 ++++-- drivers/block/zram/zram_drv.h | 3 +- drivers/iommu/iova.c | 6 + fs/buffer.c | 5 - fs/dcache.c | 4 +- fs/gfs2/quota.c | 2 +- fs/hugetlbfs/inode.c | 94 +- fs/inode.c | 5 +- fs/nfs/nfs42xattr.c | 4 +- fs/nfsd/filecache.c | 5 +- fs/proc/base.c | 26 +- fs/proc/meminfo.c | 2 +- fs/xfs/xfs_buf.c | 2 - fs/xfs/xfs_qm.c | 6 +- include/asm-generic/codetag.lds.h | 19 + include/asm-generic/hugetlb.h | 15 +- include/asm-generic/text-patching.h | 5 + include/linux/alloc_tag.h | 21 +- include/linux/bootmem_info.h | 35 +- include/linux/codetag.h | 40 +- include/linux/execmem.h | 49 + include/linux/gfp.h | 6 +- include/linux/highmem.h | 8 +- include/linux/huge_mm.h | 16 +- include/linux/hugetlb.h | 22 +- include/linux/kasan.h | 12 +- include/linux/khugepaged.h | 2 - include/linux/kmemleak.h | 4 + include/linux/ksm.h | 8 +- include/linux/list_lru.h | 26 +- include/linux/maple_tree.h | 16 +- include/linux/memcontrol.h | 97 +- include/linux/mempolicy.h | 2 +- include/linux/mm.h | 77 +- include/linux/mm_inline.h | 27 +- include/linux/mm_types.h | 84 ++ include/linux/mmu_notifier.h | 7 + include/linux/mmzone.h | 5 + include/linux/module.h | 16 + include/linux/moduleloader.h | 4 + include/linux/oom.h | 1 - include/linux/page-flags-layout.h | 7 + include/linux/page-flags.h | 18 +- include/linux/page-isolation.h | 8 - include/linux/pagemap.h | 31 +- include/linux/pagewalk.h | 18 +- include/linux/pgalloc_tag.h | 202 +++- include/linux/pgtable.h | 59 +- include/linux/rmap.h | 17 +- include/linux/sched/coredump.h | 82 -- include/linux/set_memory.h | 6 + include/linux/shmem_fs.h | 6 + include/linux/swapops.h | 24 +- include/linux/text-patching.h | 15 + include/linux/vmalloc.h | 63 +- include/linux/zswap.h | 2 +- include/trace/events/memcg.h | 106 ++ include/trace/events/mmap_lock.h | 14 +- include/trace/events/vmscan.h | 45 + include/uapi/asm-generic/mman-common.h | 3 + kernel/events/uprobes.c | 1 - kernel/fork.c | 6 +- kernel/futex/core.c | 2 +- kernel/module/debug_kmemleak.c | 3 +- kernel/module/main.c | 148 ++- kernel/module/strict_rwx.c | 3 + kernel/resource.c | 4 +- lib/Kconfig.debug | 1 + lib/Kconfig.kasan | 7 - lib/alloc_tag.c | 515 +++++++- lib/codetag.c | 104 +- lib/maple_tree.c | 249 ++-- lib/percpu_test.c | 11 +- lib/strncpy_from_user.c | 5 +- lib/test_maple_tree.c | 90 ++ mm/bootmem_info.c | 11 +- mm/cma.c | 12 +- mm/damon/Kconfig | 2 +- mm/damon/tests/dbgfs-kunit.h | 2 +- mm/damon/tests/vaddr-kunit.h | 4 +- mm/damon/vaddr.c | 9 +- mm/execmem.c | 352 +++++- mm/filemap.c | 5 +- mm/gup.c | 8 +- mm/huge_memory.c | 227 ++-- mm/hugetlb.c | 17 +- mm/internal.h | 52 +- mm/kasan/Makefile | 2 - mm/kasan/hw_tags.c | 7 +- mm/kasan/init.c | 12 - mm/kasan/kasan.h | 2 +- mm/kasan/kasan_test_c.c | 118 +- mm/kasan/kasan_test_module.c | 81 -- mm/kasan/report.c | 19 +- mm/kasan/shadow.c | 14 +- mm/kfence/kfence_test.c | 17 + mm/khugepaged.c | 31 +- mm/kmemleak.c | 41 +- mm/kmsan/kmsan_test.c | 17 + mm/ksm.c | 111 +- mm/list_lru.c | 383 +++--- mm/maccess.c | 11 +- mm/madvise.c | 298 ++++- mm/memcontrol-v1.c | 983 +--------------- mm/memcontrol-v1.h | 6 - mm/memcontrol.c | 210 ++-- mm/memory-failure.c | 32 +- mm/memory.c | 67 +- mm/memory_hotplug.c | 2 +- mm/mempolicy.c | 7 +- mm/migrate.c | 3 +- mm/mm_init.c | 5 +- mm/mmap.c | 276 +---- mm/mmap_lock.c | 39 +- mm/mprotect.c | 6 +- mm/mremap.c | 104 +- mm/mseal.c | 1 + mm/oom_kill.c | 1 - mm/page-writeback.c | 45 +- mm/page_alloc.c | 2 +- mm/page_io.c | 10 +- mm/page_vma_mapped.c | 32 +- mm/pagewalk.c | 246 ++-- mm/percpu.c | 11 +- mm/pgtable-generic.c | 41 +- mm/process_vm_access.c | 4 +- mm/readahead.c | 15 +- mm/rmap.c | 45 +- mm/shmem.c | 345 ++++-- mm/show_mem.c | 3 +- mm/sparse-vmemmap.c | 12 - mm/sparse.c | 10 +- mm/swap.c | 31 - mm/swap_state.c | 3 +- mm/truncate.c | 103 +- mm/userfaultfd.c | 17 +- mm/util.c | 2 +- mm/vma.c | 447 ++++++- mm/vma.h | 97 +- mm/vma_internal.h | 5 + mm/vmalloc.c | 52 +- mm/vmscan.c | 68 +- mm/vmstat.c | 28 +- mm/workingset.c | 34 +- mm/zsmalloc.c | 86 +- mm/zswap.c | 245 ++-- scripts/module.lds.S | 5 +- tools/include/uapi/asm-generic/mman-common.h | 3 + tools/mm/page_owner_sort.c | 1 + tools/mm/slabinfo.c | 10 +- tools/testing/radix-tree/maple.c | 22 + tools/testing/selftests/damon/_debugfs_common.sh | 7 +- tools/testing/selftests/damon/access_memory_even.c | 2 - .../damon/debugfs_duplicate_context_creation.sh | 2 +- .../selftests/damon/huge_count_read_write.c | 4 +- tools/testing/selftests/mm/.gitignore | 4 + tools/testing/selftests/mm/Makefile | 3 + tools/testing/selftests/mm/guard-pages.c | 1243 ++++++++++++++++++++ .../selftests/mm/hugetlb_fault_after_madv.c | 48 +- tools/testing/selftests/mm/run_vmtests.sh | 10 +- tools/testing/selftests/mm/virtual_address_range.c | 4 +- tools/testing/shared/shared.mk | 1 + tools/testing/vma/vma.c | 2 + tools/testing/vma/vma_internal.h | 115 +- 324 files changed, 7348 insertions(+), 4394 deletions(-) rename arch/arm/include/asm/{patch.h => text-patching.h} (100%) rename arch/arm64/include/asm/{patching.h => text-patching.h} (100%) rename arch/parisc/include/asm/{patch.h => text-patching.h} (100%) rename arch/powerpc/include/asm/{code-patching.h => text-patching.h} (100%) rename arch/riscv/include/asm/{patch.h => text-patching.h} (100%) create mode 100644 include/asm-generic/text-patching.h create mode 100644 include/linux/text-patching.h create mode 100644 include/trace/events/memcg.h delete mode 100644 mm/kasan/kasan_test_module.c create mode 100644 tools/testing/selftests/mm/guard-pages.c