[GIT PULL] MM updates for 6.2-rc1

From: Andrew Morton
Date: Tue Dec 13 2022 - 17:26:25 EST



Linus, please merge the MM updates for this release cycle.

I'm seeing two minor conflicts here:

- a clash with the block tree in mm/hugetlb.c. Stephen resolved it
thusly:
https://lkml.kernel.org/r/20221110172246.32792d6a@xxxxxxxxxxxxxxxx

- also drivers/media/common/videobuf2/frame_vector.c, Stephen's fix
is at
https://lkml.kernel.org/r/20221207130140.7c014015@xxxxxxxxxxxxxxxx


Thanks.


The following changes since commit 4a7ba45b1a435e7097ca0f79a847d0949d0eb088:

memcg: fix possible use-after-free in memcg_write_event_control() (2022-12-09 18:41:17 -0800)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2022-12-13

for you to fetch changes up to c45bc55a99957b20e4e0333bcd42e12d1833a7f5:

mm/hugetlb: set head flag before setting compound_order in __prep_compound_gigantic_folio (2022-12-12 16:47:11 -0800)

----------------------------------------------------------------
MM patches for 6.2-rc1.

- More userfaultfs work from Peter Xu.

- Several convert-to-folios series from Sidhartha Kumar and Huang Ying.

- Some filemap cleanups from Vishal Moola.

- David Hildenbrand added the ability to selftest anon memory COW handling.

- Some cpuset simplifications from Liu Shixin.

- Addition of vmalloc tracing support by Uladzislau Rezki.

- Some pagecache folioifications and simplifications from Matthew Wilcox.

- A pagemap cleanup from Kefeng Wang: we have VM_ACCESS_FLAGS, so use it.

- Miguel Ojeda contributed some cleanups for our use of the
__no_sanitize_thread__ gcc keyword. This series shold have been in the
non-MM tree, my bad.

- Naoya Horiguchi improved the interaction between memory poisoning and
memory section removal for huge pages.

- DAMON cleanups and tuneups from SeongJae Park

- Tony Luck fixed the handling of COW faults against poisoned pages.

- Peter Xu utilized the PTE marker code for handling swapin errors.

- Hugh Dickins reworked compound page mapcount handling, simplifying it
and making it more efficient.

- Removal of the autonuma savedwrite infrastructure from Nadav Amit and
David Hildenbrand.

- zram support for multiple compression streams from Sergey Senozhatsky.

- David Hildenbrand reworked the GUP code's R/O long-term pinning so
that drivers no longer need to use the FOLL_FORCE workaround which
didn't work very well anyway.

- Mel Gorman altered the page allocator so that local IRQs can remnain
enabled during per-cpu page allocations.

- Vishal Moola removed the try_to_release_page() wrapper.

- Stefan Roesch added some per-BDI sysfs tunables which are used to
prevent network block devices from dirtying excessive amounts of
pagecache.

- David Hildenbrand did some cleanup and repair work on KSM COW
breaking.

- Nhat Pham and Johannes Weiner have implemented writeback in zswap's
zsmalloc backend.

- Brian Foster has fixed a longstanding corner-case oddity in
file[map]_write_and_wait_range().

- sparse-vmemmap changes for MIPS, LoongArch and NIOS2 from Feiyang
Chen.

- Shiyang Ruan has done some work on fsdax, to make its reflink mode
work better under xfstests. Better, but still not perfect.

- Christoph Hellwig has removed the .writepage() method from several
filesystems. They only need .writepages().

- Yosry Ahmed wrote a series which fixes the memcg reclaim target
beancounting.

- David Hildenbrand has fixed some of our MM selftests for 32-bit
machines.

- Many singleton patches, as usual.

----------------------------------------------------------------
Alexander Gordeev (1):
mm: mmu_gather: do not expose delayed_rmap flag

Alexander Potapenko (4):
Revert "kmsan: unpoison @tlb in arch_tlb_gather_mmu()"
lockdep: allow instrumenting lockdep.c with KMSAN
kmsan: allow using __msan_instrument_asm_store() inside runtime
kmsan: fix memcpy tests

Alexey Romanov (1):
zram: add size class equals check into recompression

Alistair Popple (1):
mm/mmap: properly unaccount memory on mas_preallocate() failure

Andrew Morton (2):
Merge branch 'mm-hotfixes-stable' into mm-stable
Merge branch 'mm-hotfixes-stable' into mm-stable

Andrey Konovalov (4):
kasan: switch kunit tests to console tracepoints
kasan: migrate kasan_rcu_uaf test to kunit
kasan: migrate workqueue_uaf test to kunit
kasan: fail non-kasan KUnit tests on KASAN reports

Anshuman Khandual (3):
documentation/mm: update pmd_present() in arch_pgtable_helpers.rst
mm/thp: rename pmd_to_page() as pmd_pgtable_page()
s390/mm: use pmd_pgtable_page() helper in __gmap_segment_gaddr()

Baolin Wang (2):
mm: migrate: try again if THP split is failed due to page refcnt
Revert "mm: migration: fix the FOLL_GET failure on following huge page"

Brian Foster (2):
filemap: skip write and wait if end offset precedes start
mm/fadvise: use LLONG_MAX instead of -1 for eof

Christoph Hellwig (7):
extfat: remove ->writepage
fat: remove ->writepage
hfs: remove ->writepage
hfsplus: remove ->writepage
hpfs: remove ->writepage
jfs: remove ->writepage
omfs: remove ->writepage

Christophe JAILLET (2):
mm/damon: use kstrtobool() instead of strtobool()
mm: use kstrtobool() instead of strtobool()

David Hildenbrand (46):
selftests/vm: anon_cow: test COW handling of anonymous memory
selftests/vm: factor out pagemap_is_populated() into vm_util
selftests/vm: anon_cow: THP tests
selftests/vm: anon_cow: hugetlb tests
selftests/vm: anon_cow: add liburing test cases
mm/gup_test: start/stop/read functionality for PIN LONGTERM test
selftests/vm: anon_cow: add R/O longterm tests via gup_test
mm/mprotect: minor can_change_pte_writable() cleanups
mm/huge_memory: try avoiding write faults when changing PMD protection
mm/mprotect: factor out check whether manual PTE write upgrades are required
mm/autonuma: use can_change_(pte|pmd)_writable() to replace savedwrite
mm: remove unused savedwrite infrastructure
selftests/vm: anon_cow: add mprotect() optimization tests
selftests/vm: anon_cow: prepare for non-anonymous COW tests
selftests/vm: cow: basic COW tests for non-anonymous pages
selftests/vm: cow: R/O long-term pinning reliability tests for non-anon pages
mm: add early FAULT_FLAG_UNSHARE consistency checks
mm: add early FAULT_FLAG_WRITE consistency checks
mm: rework handling in do_wp_page() based on private vs. shared mappings
mm: don't call vm_ops->huge_fault() in wp_huge_pmd()/wp_huge_pud() for private mappings
mm: extend FAULT_FLAG_UNSHARE support to anything in a COW mapping
mm/gup: reliable R/O long-term pinning in COW mappings
RDMA/umem: remove FOLL_FORCE usage
RDMA/usnic: remove FOLL_FORCE usage
RDMA/siw: remove FOLL_FORCE usage
media: videobuf-dma-sg: remove FOLL_FORCE usage
drm/etnaviv: remove FOLL_FORCE usage
media: pci/ivtv: remove FOLL_FORCE usage
mm/frame-vector: remove FOLL_FORCE usage
drm/exynos: remove FOLL_FORCE usage
RDMA/hw/qib/qib_user_pages: remove FOLL_FORCE usage
habanalabs: remove FOLL_FORCE usage
mm/gup: disallow FOLL_FORCE|FOLL_WRITE on hugetlb mappings
selftests/vm: add KSM unmerge tests
mm/pagewalk: don't trigger test_walk() in walk_page_vma()
selftests/vm: add test to measure MADV_UNMERGEABLE performance
mm/ksm: simplify break_ksm() to not rely on VM_FAULT_WRITE
mm: remove VM_FAULT_WRITE
mm/ksm: fix KSM COW breaking with userfaultfd-wp via FAULT_FLAG_UNSHARE
mm/pagewalk: add walk_page_range_vma()
mm/ksm: convert break_ksm() to use walk_page_range_vma()
mm/gup: remove FOLL_MIGRATION
mm/gup_test: fix PIN_LONGTERM_TEST_READ with highmem
selftests/vm: madv_populate: fix missing MADV_POPULATE_(READ|WRITE) definitions
selftests/vm: cow: fix compile warning on 32bit
selftests/vm: ksm_functional_tests: fixes for 32bit

Deming Wang (2):
mm/mincore.c: use vma_lookup() instead of find_vma()
zsmalloc: replace IS_ERR() with IS_ERR_VALUE()

Deyan Wang (1):
mm/page_alloc: update comments in __free_pages_ok()

Feiyang Chen (4):
MIPS&LoongArch&NIOS2: adjust prototypes of p?d_init()
LoongArch: add sparse memory vmemmap support
mm/sparse-vmemmap: generalise vmemmap_populate_hugepages()
LoongArch: enable ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP

Gautam Menghani (1):
mm/khugepaged: add tracepoint to collapse_file()

Hawkins Jiawei (1):
hugetlbfs: fix null-ptr-deref in hugetlbfs_parse_param()

Huang Ying (2):
migrate: convert unmap_and_move() to use folios
migrate: convert migrate_pages() to use folios

Hugh Dickins (9):
mm,hugetlb: use folio fields in second tail page
mm,thp,rmap: simplify compound page mapcount handling
mm,thp,rmap: lock_compound_mapcounts() on THP mapcounts
mm,thp,rmap: handle the normal !PageCompound case first
mm,thp,rmap: subpages_mapcount of PTE-mapped subpages
mm,thp,rmap: subpages_mapcount COMPOUND_MAPPED if PMD-mapped
mm,thp,rmap: clean up the end of __split_huge_pmd_locked()
mm: memcg: fix swapcached stat accounting
mm,thp,rmap: fix races between updates of subpages_mapcount

Jan Kara (1):
mm: make drop_caches keep reclaiming on all nodes

Jason A. Donenfeld (1):
mm: do not show fs mm pc for VM_LOCKONFAULT pages

Jason Gunthorpe (1):
mm/gup: remove the restriction on locked with FOLL_LONGTERM

Jian Wen (1):
docs: admin-guide: cgroup-v1: update description of inactive_file

Joao Martins (1):
mm/hugetlb_vmemmap: remap head page to newly allocated page

Joel Savitz (1):
selftests/vm: enable running select groups of tests

Johannes Weiner (4):
mm: vmscan: make rotations a secondary factor in balancing anon vs file
mm: vmscan: split khugepaged stats from direct reclaim stats
zswap: fix writeback lock ordering for zsmalloc
zpool: clean out dead code

Kairui Song (1):
swap: add a limit for readahead page-cluster value

Kamalesh Babulal (1):
mm: memcontrol: use mem_cgroup_is_root() helper

Kees Cook (1):
mempool: do not use ksize() for poisoning

Kefeng Wang (11):
mm: rmap: rename page_not_mapped() to folio_not_mapped()
mm: remove kern_addr_valid() completely
nios2: remove unused INIT_MMAP
x86/sgx: use VM_ACCESS_FLAGS
mm: mprotect: use VM_ACCESS_FLAGS
mm: debug_vm_pgtable: use VM_ACCESS_FLAGS
amdgpu: use VM_ACCESS_FLAGS
mm: memory-failure: make put_ref_page() more useful
mm: memory-failure: avoid pfn_valid() twice in soft_offline_page()
mm: memory-failure: make action_result() return int
mm: add cond_resched() in swapin_walk_pmd_entry()

Li zeming (1):
hugetlbfs: inode: remove unnecessary (void*) conversions

Liam Howlett (1):
maple_tree: mte_set_full() and mte_clear_full() clang-analyzer clean up

Linus Torvalds (5):
mm: introduce 'encoded' page pointers with embedded extra bits
mm: teach release_pages() to take an array of encoded page pointers too
mm: mmu_gather: prepare to gather encoded page pointers with flags
mm: delay page_remove_rmap() until after the TLB has been flushed
mm: mmu_gather: allow more than one batch of delayed rmaps

Liu Shixin (8):
cgroup/cpuset: use hotplug_memory_notifier() directly
fs/proc/kcore.c: use hotplug_memory_notifier() directly
mm/slub.c: use hotplug_memory_notifier() directly
mm/mmap: use hotplug_memory_notifier() directly
mm/mm_init.c: use hotplug_memory_notifier() directly
ACPI: HMAT: use hotplug_memory_notifier() directly
memory: remove unused register_hotmemory_notifier()
memory: move hotplug memory notifier priority to same file for easy sorting

Lukas Bulwahn (2):
mm/shmem: remove unneeded assignments in shmem_get_folio_gfp()
mm: Kconfig: make config SECRETMEM visible with EXPERT

Ma Wupeng (2):
mm/rmap: fix comment in anon_vma_clone()
mm/memory-failure.c: cleanup in unpoison_memory

Matthew Wilcox (Oracle) (4):
mm/huge_memory: convert split_huge_pages_in_file() to use a folio
mm/swap: convert find_get_incore_page to use folios
mm: convert find_get_incore_page() to filemap_get_incore_folio()
mm: remove FGP_HEAD

Mel Gorman (3):
mm/page_alloc: always remove pages from temporary list
mm/page_alloc: leave IRQs enabled for per-cpu page allocations
mm/page_alloc: simplify locking during free_unref_page_list

Miaoqian Lin (1):
mm/demotion: fix NULL vs IS_ERR checking in memory_tier_init

Miguel Ojeda (5):
compiler-gcc: be consistent with underscores use for `no_sanitize`
compiler-gcc: remove attribute support check for `__no_sanitize_address__`
compiler-gcc: remove attribute support check for `__no_sanitize_thread__`
compiler-gcc: remove attribute support check for `__no_sanitize_undefined__`
compiler-gcc: document minimum version for `__no_sanitize_coverage__`

Mike Kravetz (3):
hugetlb: simplify hugetlb handling in follow_page_mask
selftests/vm: update hugetlb madvise
hugetlb: remove duplicate mmu notifications

Mina Almasry (2):
mm: disable top-tier fallback to reclaim on proactive reclaim
mm: add nodes= arg to memory.reclaim

Muchun Song (1):
mm: hugetlb_vmemmap: remove redundant list_del()

NARIBAYASHI Akira (1):
mm, compaction: fix fast_isolate_around() to stay within boundaries

Nadav Amit (1):
mm/mprotect: allow clean exclusive anon pages to be writable

Naoya Horiguchi (4):
mm,hwpoison,hugetlb,memory_hotplug: hotremove memory section with hwpoisoned hugepage
mm/hwpoison: move definitions of num_poisoned_pages_* to memory-failure.c
mm/hwpoison: pass pfn to num_poisoned_pages_*()
mm/hwpoison: introduce per-memory_block hwpoison counter

Nhat Pham (4):
zsmalloc: consolidate zs_pool's migrate_lock and size_class's locks
zsmalloc: add a LRU to zs_pool to keep track of zspages in LRU order
zsmalloc: add zpool_ops field to zs_pool to store evict handlers
zsmalloc: implement writeback mechanism for zsmalloc

Pasha Tatashin (1):
mm: anonymous shared memory naming

Pavankumar Kondeti (2):
mm/kfence: remove hung_task cruft
mm/madvise: fix madvise_pageout for private file mappings

Peter Xu (11):
selftests/vm: use memfd for uffd hugetlb tests
selftests/vm: use memfd for hugetlb-madvise test
selftests/vm: use memfd for hugepage-mremap test
selftests/vm: drop mnt point for hugetlb in run_vmtests.sh
mm/hugetlb: unify clearing of RestoreReserve for private pages
Revert "mm/uffd: fix warning without PTE_MARKER_UFFD_WP compiled in"
mm: always compile in pte markers
mm: use pte markers for swap errors
mm/uffd: sanity check write bit for uffd-wp protected ptes
selftests/vm: use memfd for hugepage-mmap test
mm/thp: re-apply mkdirty for small pages after split

Randy Dunlap (1):
maple_tree: allow TEST_MAPLE_TREE only when DEBUG_KERNEL is set

Rolf Eike Beer (1):
mm: fix typo in struct vm_operations_struct comments

Rong Tao (2):
tools/vm/page_owner: ignore page_owner_sort binary
selftests/damon: fix unnecessary compilation warnings

SeongJae Park (28):
mm/damon/core: split out DAMOS-charged region skip logic into a new function
mm/damon/core: split damos application logic into a new function
mm/damon/core: split out scheme stat update logic into a new function
mm/damon/core: split out scheme quota adjustment logic into a new function
mm/damon/sysfs: use damon_addr_range for region's start and end values
mm/damon/sysfs: remove parameters of damon_sysfs_region_alloc()
mm/damon/sysfs: move sysfs_lock to common module
mm/damon/sysfs: move unsigned long range directory to common module
mm/damon/sysfs: split out kdamond-independent schemes stats update logic into a new function
mm/damon/sysfs: split out schemes directory implementation to separate file
mm/damon/modules: deduplicate init steps for DAMON context setup
mm/damon/{reclaim,lru_sort}: remove unnecessarily included headers
mm/damon/reclaim: enable and disable synchronously
selftests/damon: add tests for DAMON_RECLAIM's enabled parameter
mm/damon/lru_sort: enable and disable synchronously
selftests/damon: add tests for DAMON_LRU_SORT's enabled parameter
Docs/admin-guide/mm/damon/usage: describe the rules of sysfs region directories
Docs/admin-guide/mm/damon/usage: fix wrong usage example of init_regions file
mm/damon/core: add a callback for scheme target regions check
mm/damon/sysfs-schemes: implement schemes/tried_regions directory
mm/damon/sysfs-schemes: implement scheme region directory
mm/damon/sysfs: implement DAMOS tried regions update command
mm/damon/sysfs-schemes: implement DAMOS-tried regions clear command
tools/selftets/damon/sysfs: test tried_regions directory existence
Docs/admin-guide/mm/damon/usage: document schemes/<s>/tried_regions sysfs directory
Docs/ABI/damon: document 'schemes/<s>/tried_regions' sysfs directory
selftests/damon: test non-context inputs to rm_contexts file
selftests/damon: test removed scheme sysfs dir access bug

Sergey Senozhatsky (15):
zram: preparation for multi-zcomp support
zram: add recompression algorithm sysfs knob
zram: factor out WB and non-WB zram read functions
zram: introduce recompress sysfs knob
zram: add recompress flag to read_block_state()
zram: clarify writeback_store() comment
zram: use IS_ERR_VALUE() to check for zs_malloc() errors
zram: remove redundant checks from zram_recompress()
zram: add algo parameter support to zram_recompress()
documentation: add zram recompression documentation
zram: add incompressible writeback
zram: add incompressible flag to read_block_state()
Docs/ABI/zram: document zram recompress sysfs knobs
zram: remove unused stats fields
zswap: do not allocate from atomic pool

Shakeel Butt (2):
mm: convert mm's rss stats into percpu_counter
percpu_counter: add percpu_counter_sum_all interface

Shiyang Ruan (8):
fsdax: introduce page->share for fsdax in reflink mode
fsdax: invalidate pages when CoW
fsdax: zero the edges if source is HOLE or UNWRITTEN
fsdax,xfs: set the shared flag when file extent is shared
fsdax: dedupe: iter two files at the same time
xfs: use dax ops for zero and truncate in fsdax mode
fsdax,xfs: port unshare to fsdax
xfs: remove restrictions for fsdax and reflink

Sidhartha Kumar (25):
mm/hugetlb: add folio support to hugetlb specific flag macros
mm: add private field of first tail to struct page and struct folio
mm/hugetlb: add hugetlb_folio_subpool() helpers
hugetlbfs: convert hugetlb_delete_from_page_cache() to use folios
mm/hugetlb: add folio_hstate()
mm/hugetlb_cgroup: convert __set_hugetlb_cgroup() to folios
mm/hugetlb_cgroup: convert hugetlb_cgroup_from_page() to folios
mm/hugetlb_cgroup: convert set_hugetlb_cgroup*() to folios
mm/hugetlb_cgroup: convert hugetlb_cgroup_migrate to folios
mm/hugetlb: convert isolate_or_dissolve_huge_page to folios
mm/hugetlb: convert free_huge_page to folios
mm/hugetlb_cgroup: convert hugetlb_cgroup_uncharge_page() to folios
mm/hugeltb_cgroup: convert hugetlb_cgroup_commit_charge*() to folios
mm/hugetlb: convert move_hugetlb_state() to folios
mm: add folio dtor and order setter functions
mm/hugetlb: convert destroy_compound_gigantic_page() to folios
mm/hugetlb: convert dissolve_free_huge_page() to folios
mm/hugetlb: convert remove_hugetlb_page() to folios
mm/hugetlb: convert update_and_free_page() to folios
mm/hugetlb: convert add_hugetlb_page() to folios and add hugetlb_cma_folio()
mm/hugetlb: convert enqueue_huge_page() to folios
mm/hugetlb: convert free_gigantic_page() to folios
mm/hugetlb: convert hugetlb prep functions to folios
mm/hugetlb: change hugetlb allocation functions to return a folio
mm/hugetlb: set head flag before setting compound_order in __prep_compound_gigantic_folio

Stefan Roesch (20):
mm: add bdi_set_strict_limit() function
mm: add knob /sys/class/bdi/<bdi>/strict_limit
mm: document /sys/class/bdi/<bdi>/strict_limit knob
mm: use part per 1000000 for bdi ratios
mm: add bdi_get_max_bytes() function
mm: split off __bdi_set_max_ratio() function
mm: add bdi_set_max_bytes() function
mm: add knob /sys/class/bdi/<bdi>/max_bytes
mm: document /sys/class/bdi/<bdi>/max_bytes knob
mm: add bdi_get_min_bytes() function
mm: split off __bdi_set_min_ratio() function
mm: add bdi_set_min_bytes() function
mm: add /sys/class/bdi/<bdi>/min_bytes knob
mm: document /sys/class/bdi/<bdi>/min_bytes knob
mm: add bdi_set_max_ratio_no_scale() function
mm: add /sys/class/bdi/<bdi>/max_ratio_fine knob
mm: document /sys/class/bdi/<bdi>/max_ratio_fine knob
mm: add bdi_set_min_ratio_no_scale() function
mm: add /sys/class/bdi/<bdi>/min_ratio_fine knob
mm: document /sys/class/bdi/<bdi>/min_ratio_fine knob

T.J. Mercier (1):
mm: shrinkers: add missing includes for undeclared types

Thomas Weißschuh (1):
tmpfs: ensure O_LARGEFILE with generic_file_open()

Tony Luck (2):
mm, hwpoison: try to recover from copy-on write faults
mm, hwpoison: when copy-on-write hits poison, take page offline

Uladzislau Rezki (Sony) (7):
mm: vmalloc: add alloc_vmap_area trace event
mm: vmalloc: add purge_vmap_area_lazy trace event
mm: vmalloc: add free_vmap_area_noflush trace event
mm: vmalloc: use trace_alloc_vmap_area event
mm: vmalloc: use trace_purge_vmap_area_lazy event
mm: vmalloc: use trace_free_vmap_area_noflush event
vmalloc: add reviewers for vmalloc code

Uros Bizjak (1):
zram: use try_cmpxchg in update_used_max

Vishal Moola (Oracle) (11):
filemap: find_lock_entries() now updates start offset
filemap: find_get_entries() now updates start offset
ext4: convert move_extent_per_page() to use folios
khugepage: replace try_to_release_page() with filemap_release_folio()
memory-failure: convert truncate_error_page() to use folio
folio-compat: remove try_to_release_page()
filemap: convert replace_page_cache_page() to replace_page_cache_folio()
fuse: convert fuse_try_move_page() to use folios
userfaultfd: replace lru_cache functions with folio_add functions
khugepage: replace lru_cache_add() with folio_add_lru()
folio-compat: remove lru_cache_add()

Wang Yong (1):
mm: fix typo in struct pglist_data code comment

Xu Panda (1):
mm: vmscan: use sysfs_emit() to instead of scnprintf()

Yang Li (1):
mm/migrate.c: stop using 0 as NULL pointer

Yixuan Cao (1):
mm/kmemleak.c: fix a comment

Yosry Ahmed (3):
mm: memcg: fix stale protection of reclaim target memcg
selftests: cgroup: refactor proactive reclaim code to reclaim_until()
selftests: cgroup: make sure reclaim target memcg is unprotected

Yu Zhao (1):
mm: multi-gen LRU: remove NULL checks on NODE_DATA()

zhang songyi (1):
include/linux/pgtable.h: : remove redundant pte variable

Documentation/ABI/testing/sysfs-block-zram | 14 +
Documentation/ABI/testing/sysfs-class-bdi | 68 +
Documentation/ABI/testing/sysfs-kernel-mm-damon | 32 +
Documentation/admin-guide/blockdev/zram.rst | 100 +-
Documentation/admin-guide/cgroup-v1/memory.rst | 3 +-
Documentation/admin-guide/cgroup-v2.rst | 21 +-
Documentation/admin-guide/mm/damon/usage.rst | 59 +-
Documentation/filesystems/proc.rst | 8 +-
Documentation/mm/arch_pgtable_helpers.rst | 2 +-
Documentation/mm/transhuge.rst | 34 +-
MAINTAINERS | 12 +-
arch/alpha/include/asm/pgtable.h | 2 -
arch/arc/include/asm/pgtable-bits-arcv2.h | 2 -
arch/arm/include/asm/pgtable-nommu.h | 2 -
arch/arm/include/asm/pgtable.h | 4 -
arch/arm64/include/asm/pgtable.h | 2 -
arch/arm64/mm/mmu.c | 102 +-
arch/arm64/mm/pageattr.c | 3 +-
arch/csky/include/asm/pgtable.h | 3 -
arch/hexagon/include/asm/page.h | 7 -
arch/ia64/include/asm/pgtable.h | 16 -
arch/ia64/mm/hugetlbpage.c | 15 -
arch/loongarch/Kconfig | 2 +
arch/loongarch/include/asm/pgalloc.h | 13 +-
arch/loongarch/include/asm/pgtable.h | 17 +-
arch/loongarch/include/asm/sparsemem.h | 8 +
arch/loongarch/kernel/numa.c | 4 +-
arch/loongarch/mm/init.c | 45 +-
arch/loongarch/mm/pgtable.c | 23 +-
arch/m68k/include/asm/pgtable_mm.h | 2 -
arch/m68k/include/asm/pgtable_no.h | 1 -
arch/microblaze/include/asm/pgtable.h | 3 -
arch/mips/include/asm/pgalloc.h | 10 +-
arch/mips/include/asm/pgtable-64.h | 8 +-
arch/mips/include/asm/pgtable.h | 2 -
arch/mips/kvm/mmu.c | 3 +-
arch/mips/mm/pgtable-32.c | 9 +-
arch/mips/mm/pgtable-64.c | 18 +-
arch/mips/mm/pgtable.c | 2 +-
arch/nios2/include/asm/pgalloc.h | 5 -
arch/nios2/include/asm/pgtable.h | 2 -
arch/nios2/include/asm/processor.h | 3 -
arch/openrisc/include/asm/pgtable.h | 2 -
arch/parisc/include/asm/pgtable.h | 15 -
arch/parisc/kernel/pdt.c | 5 +-
arch/powerpc/include/asm/book3s/64/pgtable.h | 80 +-
arch/powerpc/include/asm/pgtable.h | 7 -
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 2 +-
arch/powerpc/mm/hugetlbpage.c | 37 -
arch/riscv/include/asm/pgtable.h | 2 -
arch/s390/include/asm/pgtable.h | 2 -
arch/s390/include/asm/tlb.h | 11 +-
arch/s390/mm/gmap.c | 5 +-
arch/sh/include/asm/pgtable.h | 2 -
arch/sparc/include/asm/pgtable_32.h | 6 -
arch/sparc/mm/init_32.c | 3 +-
arch/sparc/mm/init_64.c | 1 -
arch/um/include/asm/pgtable.h | 2 -
arch/x86/include/asm/pgtable.h | 18 +-
arch/x86/include/asm/pgtable_32.h | 9 -
arch/x86/include/asm/pgtable_64.h | 1 -
arch/x86/kernel/cpu/sgx/encl.c | 4 +-
arch/x86/mm/init_64.c | 133 +-
arch/xtensa/include/asm/pgtable.h | 2 -
drivers/acpi/numa/hmat.c | 7 +-
drivers/base/memory.c | 38 +
drivers/block/zram/Kconfig | 9 +
drivers/block/zram/zcomp.c | 6 +-
drivers/block/zram/zcomp.h | 2 +-
drivers/block/zram/zram_drv.c | 619 ++++++--
drivers/block/zram/zram_drv.h | 24 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +-
drivers/gpu/drm/etnaviv/etnaviv_gem.c | 8 +-
drivers/gpu/drm/exynos/exynos_drm_g2d.c | 2 +-
drivers/infiniband/core/umem.c | 8 +-
drivers/infiniband/hw/qib/qib_user_pages.c | 2 +-
drivers/infiniband/hw/usnic/usnic_uiom.c | 9 +-
drivers/infiniband/sw/siw/siw_mem.c | 9 +-
drivers/media/common/videobuf2/frame_vector.c | 2 +-
drivers/media/pci/ivtv/ivtv-udma.c | 2 +-
drivers/media/pci/ivtv/ivtv-yuv.c | 5 +-
drivers/media/v4l2-core/videobuf-dma-sg.c | 14 +-
drivers/misc/habanalabs/common/memory.c | 3 +-
fs/dax.c | 221 ++-
fs/exfat/inode.c | 9 +-
fs/ext4/move_extent.c | 52 +-
fs/fat/inode.c | 9 +-
fs/fuse/dev.c | 55 +-
fs/hfs/inode.c | 2 +-
fs/hfsplus/inode.c | 2 +-
fs/hpfs/file.c | 9 +-
fs/hugetlbfs/inode.c | 28 +-
fs/jfs/inode.c | 7 +-
fs/omfs/file.c | 7 +-
fs/proc/kcore.c | 33 +-
fs/proc/task_mmu.c | 16 +-
fs/xfs/xfs_ioctl.c | 4 -
fs/xfs/xfs_iomap.c | 6 +-
fs/xfs/xfs_iops.c | 4 -
fs/xfs/xfs_reflink.c | 8 +-
include/asm-generic/tlb.h | 38 +-
include/linux/backing-dev.h | 10 +
include/linux/compiler-gcc.h | 21 +-
include/linux/damon.h | 5 +
include/linux/dax.h | 2 +
include/linux/highmem.h | 26 +
include/linux/hugetlb.h | 143 +-
include/linux/hugetlb_cgroup.h | 86 +-
include/linux/khugepaged.h | 6 +
include/linux/memcontrol.h | 31 +-
include/linux/memory-tiers.h | 1 -
include/linux/memory.h | 18 +-
include/linux/mm.h | 276 +++-
include/linux/mm_types.h | 162 ++-
include/linux/mm_types_task.h | 13 -
include/linux/mmzone.h | 2 +-
include/linux/page-flags.h | 23 +-
include/linux/pagemap.h | 9 +-
include/linux/pagewalk.h | 5 +
include/linux/percpu_counter.h | 7 +-
include/linux/pgtable.h | 28 +-
include/linux/sched.h | 3 -
include/linux/shrinker.h | 3 +
include/linux/swap.h | 27 +-
include/linux/swapops.h | 73 +-
include/linux/vm_event_item.h | 3 +
include/linux/zsmalloc.h | 2 +
include/trace/events/huge_memory.h | 38 +
include/trace/events/kmem.h | 8 +-
include/trace/events/vmalloc.h | 123 ++
kernel/cgroup/cpuset.c | 7 +-
kernel/fork.c | 21 +-
kernel/locking/Makefile | 1 -
kernel/sysctl.c | 1 +
lib/Kconfig.debug | 1 +
lib/Kconfig.kasan | 2 +-
lib/maple_tree.c | 13 +-
lib/percpu_counter.c | 29 +-
mm/Kconfig | 17 +-
mm/backing-dev.c | 133 +-
mm/compaction.c | 18 +-
mm/damon/Makefile | 6 +-
mm/damon/core.c | 266 ++--
mm/damon/lru_sort.c | 71 +-
mm/damon/modules-common.c | 42 +
mm/damon/modules-common.h | 3 +
mm/damon/reclaim.c | 73 +-
mm/damon/sysfs-common.c | 107 ++
mm/damon/sysfs-common.h | 56 +
mm/damon/sysfs-schemes.c | 1338 +++++++++++++++++
mm/damon/sysfs.c | 1273 ++--------------
mm/debug.c | 5 +-
mm/debug_vm_pgtable.c | 40 +-
mm/fadvise.c | 2 +-
mm/filemap.c | 89 +-
mm/folio-compat.c | 25 +-
mm/gup.c | 255 +---
mm/gup_test.c | 145 ++
mm/gup_test.h | 12 +
mm/huge_memory.c | 157 +-
mm/hugetlb.c | 747 +++++-----
mm/hugetlb_cgroup.c | 63 +-
mm/hugetlb_vmemmap.c | 45 +-
mm/internal.h | 12 +-
mm/kasan/kasan.h | 20 +-
mm/kasan/kasan_test.c | 152 +-
mm/kasan/kasan_test_module.c | 60 -
mm/kasan/report.c | 64 +-
mm/kasan/shadow.c | 2 +-
mm/kfence/core.c | 12 +-
mm/khugepaged.c | 57 +-
mm/kmemleak.c | 2 +-
mm/kmsan/instrumentation.c | 8 +-
mm/kmsan/kmsan_test.c | 3 +
mm/ksm.c | 89 +-
mm/madvise.c | 61 +-
mm/memcontrol.c | 113 +-
mm/memory-failure.c | 172 ++-
mm/memory-tiers.c | 4 +-
mm/memory.c | 260 ++--
mm/mempool.c | 18 +-
mm/migrate.c | 285 ++--
mm/mincore.c | 14 +-
mm/mm_init.c | 8 +-
mm/mmap.c | 12 +-
mm/mmu_gather.c | 58 +-
mm/mprotect.c | 55 +-
mm/page-writeback.c | 130 +-
mm/page_alloc.c | 167 +--
mm/page_ext.c | 2 +-
mm/page_table_check.c | 3 +-
mm/pagewalk.c | 27 +-
mm/rmap.c | 332 +++--
mm/shmem.c | 54 +-
mm/slub.c | 7 +-
mm/sparse-vmemmap.c | 73 +
mm/sparse.c | 2 -
mm/swap.c | 41 +-
mm/swap.h | 8 +-
mm/swap_state.c | 39 +-
mm/swapfile.c | 2 +-
mm/truncate.c | 32 +-
mm/usercopy.c | 3 +-
mm/userfaultfd.c | 6 +-
mm/util.c | 79 -
mm/vmalloc.c | 20 +-
mm/vmscan.c | 125 +-
mm/vmstat.c | 3 +
mm/workingset.c | 7 +-
mm/z3fold.c | 36 +-
mm/zbud.c | 32 +-
mm/zpool.c | 17 +-
mm/zsmalloc.c | 365 ++++-
mm/zswap.c | 39 +-
tools/testing/selftests/cgroup/test_memcontrol.c | 91 +-
tools/testing/selftests/damon/Makefile | 4 +-
.../selftests/damon/debugfs_rm_non_contexts.sh | 19 +
.../selftests/damon/huge_count_read_write.c | 9 +
tools/testing/selftests/damon/lru_sort.sh | 41 +
tools/testing/selftests/damon/reclaim.sh | 42 +
tools/testing/selftests/damon/sysfs.sh | 7 +
.../damon/sysfs_update_removed_scheme_dir.sh | 58 +
tools/testing/selftests/vm/.gitignore | 1 +
tools/testing/selftests/vm/Makefile | 27 +-
tools/testing/selftests/vm/check_config.sh | 31 +
tools/testing/selftests/vm/cow.c | 1536 ++++++++++++++++++++
tools/testing/selftests/vm/hugepage-mmap.c | 10 +-
tools/testing/selftests/vm/hugepage-mremap.c | 21 +-
tools/testing/selftests/vm/hugetlb-madvise.c | 19 +-
tools/testing/selftests/vm/ksm_functional_tests.c | 279 ++++
tools/testing/selftests/vm/ksm_tests.c | 76 +-
tools/testing/selftests/vm/madv_populate.c | 15 +-
tools/testing/selftests/vm/run_vmtests.sh | 220 ++-
tools/testing/selftests/vm/userfaultfd.c | 62 +-
tools/testing/selftests/vm/vm_util.c | 25 +
tools/testing/selftests/vm/vm_util.h | 3 +
tools/vm/.gitignore | 1 +
237 files changed, 9281 insertions(+), 5046 deletions(-)
create mode 100644 include/trace/events/vmalloc.h
create mode 100644 mm/damon/modules-common.c
create mode 100644 mm/damon/sysfs-common.c
create mode 100644 mm/damon/sysfs-common.h
create mode 100644 mm/damon/sysfs-schemes.c
create mode 100644 tools/testing/selftests/damon/debugfs_rm_non_contexts.sh
create mode 100644 tools/testing/selftests/damon/lru_sort.sh
create mode 100644 tools/testing/selftests/damon/reclaim.sh
create mode 100644 tools/testing/selftests/damon/sysfs_update_removed_scheme_dir.sh
create mode 100644 tools/testing/selftests/vm/check_config.sh
create mode 100644 tools/testing/selftests/vm/cow.c
create mode 100644 tools/testing/selftests/vm/ksm_functional_tests.c