[GIT PULL] MM updates for 6.7-rc1

From: Andrew Morton
Date: Wed Nov 01 2023 - 17:54:57 EST



Linus, please merge the MM updates for this cycle.

Current or upcoming conflicts or build/runtime issues of which I am
aware, and their linux-next resolutions are:

vs bcachefs tree
https://lkml.kernel.org/r/20230913093553.4290421e@xxxxxxxxxxxxxxxx
I shall send Stephen's conversion patch in reply to this email.

drivers/scsi/qla2xxx/qla_dfs.c: vs scsi-mkp tree
https://lkml.kernel.org/r/20230906103905.0752736e@xxxxxxxxxxxxxxxx

fs/btrfs/super.c: vs btrfs tree
https://lkml.kernel.org/r/20230915091421.58207f2c@xxxxxxxxxxxxxxxx

arch/ia64/kernel/setup.c: vs asm-generic tree
https://lkml.kernel.org/r/20230918101027.7506b71e@xxxxxxxxxxxxxxxx
(this one is easy!)

mm/shmem.c: vs vfs-brauner tree
https://lkml.kernel.org/r/20230921091352.01306900@xxxxxxxxxxxxxxxx

fs/btrfs/super.c: vs btrfs tree
https://lkml.kernel.org/r/20230926101717.0237a18a@xxxxxxxxxxxxxxxx

fs/xfs/xfs_buf.c: vs vfs-brauner
https://lkml.kernel.org/r/20230928102504.5c751249@xxxxxxxxxxxxxxxx

arch/arm64/include/asm/tlb.h: vs arm64 tree
https://lkml.kernel.org/r/20231024095234.1118e7dd@xxxxxxxxxxxxxxxx

drivers/gpu/drm/msm/msm_drv.c: vs drm tree
https://lkml.kernel.org/r/20231024115206.4ce24d96@xxxxxxxxxxxxxxxx

fs/bcachefs/btree_cache.c
fs/bcachefs/btree_key_cache.c vs bcachefs tree
https://lkml.kernel.org/r/20231101095002.737cedb8@xxxxxxxxxxxxxxxx


Thanks.


The following changes since commit 099d7439ce03d0e7bc8f0c3d7878b562f3a48d3d:

maple_tree: add GFP_KERNEL to allocations in mas_expected_entries() (2023-10-18 12:12:41 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2023-11-01-14-33

for you to fetch changes up to 9732336006764e2ee61225387e3c70eae9139035:

mm/damon/sysfs: update monitoring target regions for online input commit (2023-11-01 12:38:35 -0700)

----------------------------------------------------------------
Many singleton patches against the MM code. The patch series which are
included in this merge do the following:

- Kemeng Shi has contributed some compation maintenance work in the
series "Fixes and cleanups to compaction".

- Joel Fernandes has a patchset ("Optimize mremap during mutual
alignment within PMD") which fixes an obscure issue with mremap()'s
pagetable handling during a subsequent exec(), based upon an
implementation which Linus suggested.

- More DAMON/DAMOS maintenance and feature work from SeongJae Park i the
following patch series:

mm/damon: misc fixups for documents, comments and its tracepoint
mm/damon: add a tracepoint for damos apply target regions
mm/damon: provide pseudo-moving sum based access rate
mm/damon: implement DAMOS apply intervals
mm/damon/core-test: Fix memory leaks in core-test
mm/damon/sysfs-schemes: Do DAMOS tried regions update for only one apply interval

- In the series "Do not try to access unaccepted memory" Adrian Hunter
provides some fixups for the recently-added "unaccepted memory' feature.
To increase the feature's checking coverage. "Plug a few gaps where
RAM is exposed without checking if it is unaccepted memory".

- In the series "cleanups for lockless slab shrink" Qi Zheng has done
some maintenance work which is preparation for the lockless slab
shrinking code.

- Qi Zheng has redone the earlier (and reverted) attempt to make slab
shrinking lockless in the series "use refcount+RCU method to implement
lockless slab shrink".

- David Hildenbrand contributes some maintenance work for the rmap code
in the series "Anon rmap cleanups".

- Kefeng Wang does more folio conversions and some maintenance work in
the migration code. Series "mm: migrate: more folio conversion and
unification".

- Matthew Wilcox has fixed an issue in the buffer_head code which was
causing long stalls under some heavy memory/IO loads. Some cleanups
were added on the way. Series "Add and use bdev_getblk()".

- In the series "Use nth_page() in place of direct struct page
manipulation" Zi Yan has fixed a potential issue with the direct
manipulation of hugetlb page frames.

- In the series "mm: hugetlb: Skip initialization of gigantic tail
struct pages if freed by HVO" has improved our handling of gigantic
pages in the hugetlb vmmemmep optimizaton code. This provides
significant boot time improvements when significant amounts of gigantic
pages are in use.

- Matthew Wilcox has sent the series "Small hugetlb cleanups" - code
rationalization and folio conversions in the hugetlb code.

- Yin Fengwei has improved mlock()'s handling of large folios in the
series "support large folio for mlock"

- In the series "Expose swapcache stat for memcg v1" Liu Shixin has
added statistics for memcg v1 users which are available (and useful)
under memcg v2.

- Florent Revest has enhanced the MDWE (Memory-Deny-Write-Executable)
prctl so that userspace may direct the kernel to not automatically
propagate the denial to child processes. The series is named "MDWE
without inheritance".

- Kefeng Wang has provided the series "mm: convert numa balancing
functions to use a folio" which does what it says.

- In the series "mm/ksm: add fork-exec support for prctl" Stefan Roesch
makes is possible for a process to propagate KSM treatment across
exec().

- Huang Ying has enhanced memory tiering's calculation of memory
distances. This is used to permit the dax/kmem driver to use "high
bandwidth memory" in addition to Optane Data Center Persistent Memory
Modules (DCPMM). The series is named "memory tiering: calculate
abstract distance based on ACPI HMAT"

- In the series "Smart scanning mode for KSM" Stefan Roesch has
optimized KSM by teaching it to retain and use some historical
information from previous scans.

- Yosry Ahmed has fixed some inconsistencies in memcg statistics in the
series "mm: memcg: fix tracking of pending stats updates values".

- In the series "Implement IOCTL to get and optionally clear info about
PTEs" Peter Xu has added an ioctl to /proc/<pid>/pagemap which permits
us to atomically read-then-clear page softdirty state. This is mainly
used by CRIU.

- Hugh Dickins contributed the series "shmem,tmpfs: general maintenance"
- a bunch of relatively minor maintenance tweaks to this code.

- Matthew Wilcox has increased the use of the VMA lock over file-backed
page faults in the series "Handle more faults under the VMA lock". Some
rationalizations of the fault path became possible as a result.

- In the series "mm/rmap: convert page_move_anon_rmap() to
folio_move_anon_rmap()" David Hildenbrand has implemented some cleanups
and folio conversions.

- In the series "various improvements to the GUP interface" Lorenzo
Stoakes has simplified and improved the GUP interface with an eye to
providing groundwork for future improvements.

- Andrey Konovalov has sent along the series "kasan: assorted fixes and
improvements" which does those things.

- Some page allocator maintenance work from Kemeng Shi in the series
"Two minor cleanups to break_down_buddy_pages".

- In thes series "New selftest for mm" Breno Leitao has developed
another MM self test which tickles a race we had between madvise() and
page faults.

- In the series "Add folio_end_read" Matthew Wilcox provides cleanups
and an optimization to the core pagecache code.

- Nhat Pham has added memcg accounting for hugetlb memory in the series
"hugetlb memcg accounting".

- Cleanups and rationalizations to the pagemap code from Lorenzo
Stoakes, in the series "Abstract vma_merge() and split_vma()".

- Audra Mitchell has fixed issues in the procfs page_owner code's new
timestamping feature which was causing some misbehaviours. In the
series "Fix page_owner's use of free timestamps".

- Lorenzo Stoakes has fixed the handling of new mappings of sealed files
in the series "permit write-sealed memfd read-only shared mappings".

- Mike Kravetz has optimized the hugetlb vmemmap optimization in the
series "Batch hugetlb vmemmap modification operations".

- Some buffer_head folio conversions and cleanups from Matthew Wilcox in
the series "Finish the create_empty_buffers() transition".

- As a page allocator performance optimization Huang Ying has added
automatic tuning to the allocator's per-cpu-pages feature, in the series
"mm: PCP high auto-tuning".

- Roman Gushchin has contributed the patchset "mm: improve performance
of accounted kernel memory allocations" which improves their performance
by ~30% as measured by a micro-benchmark.

- folio conversions from Kefeng Wang in the series "mm: convert page
cpupid functions to folios".

- Some kmemleak fixups in Liu Shixin's series "Some bugfix about
kmemleak".

- Qi Zheng has improved our handling of memoryless nodes by keeping them
off the allocation fallback list. This is done in the series "handle
memoryless nodes more appropriately".

- khugepaged conversions from Vishal Moola in the series "Some
khugepaged folio conversions".

----------------------------------------------------------------
Adrian Hunter (2):
efi/unaccepted: do not let /proc/vmcore try to access unaccepted memory
proc/kcore: do not try to access unaccepted memory

Aleksa Sarai (1):
memfd: drop warning for missing exec-related flags

Alexander Potapenko (4):
kmsan: simplify kmsan_internal_memmove_metadata()
kmsan: prevent optimizations in memcpy tests
kmsan: merge test_memcpy_aligned_to_unaligned{,2}() together
kmsan: introduce test_memcpy_initialized_gap()

Andrew Morton (1):
Merge mm-hotfixes-stable into mm-stable to pick up depended-upon changes.

Andrey Konovalov (6):
arm64, kasan: update comment in kasan_init
kasan: unify printk prefixes
kasan: use unchecked __memset internally
kasan: fix and update KUNIT_EXPECT_KASAN_FAIL comment
Documentation: *san: drop "the" from article titles
Documentation: ubsan: drop "the" from article title

Angus Chen (1):
mm/vmscan: print err before panic

Anthony Yznaga (2):
mm/mremap: fix unaccount of memory on vma_merge() failure
mm: fix unaccount of memory on vma_link() failure

Audra Mitchell (5):
mm/page_owner: remove free_ts from page_owner output
tools/mm: remove references to free_ts from page_owner_sort
tools/mm: filter out timestamps for correct collation
tools/mm: fix the default case for page_owner_sort
tools/mm: update the usage output to be more organized

Baolin Wang (2):
mm: add statistics for PUD level pagetable
mm: migrate: record the mlocked page status to remove unnecessary lru drain

Baoquan He (1):
mm/vmalloc: fix the unchecked dereference warning in vread_iter()

Breno Leitao (2):
selftests/mm: export get_free_hugepages()
selftests/mm: add a new test for madv and hugetlb

David Hildenbrand (9):
mm/rmap: drop stale comment in page_add_anon_rmap and hugepage_add_anon_rmap()
mm/rmap: move SetPageAnonExclusive out of __page_set_anon_rmap()
mm/rmap: move folio_test_anon() check out of __folio_set_anon()
mm/rmap: warn on new PTE-mapped folios in page_add_anon_rmap()
mm/rmap: simplify PageAnonExclusive sanity checks when adding anon rmap
mm/rmap: pass folio to hugepage_add_anon_rmap()
mm/rmap: move SetPageAnonExclusive() out of page_move_anon_rmap()
mm/rmap: convert page_move_anon_rmap() to folio_move_anon_rmap()
memory: move exclusivity detection in do_wp_page() into wp_can_reuse_anon_folio()

Ding Xiang (1):
selftests/mm: gup_longterm: fix a resource leak

Florent Revest (6):
kselftest: vm: fix tabs/spaces inconsistency in the mdwe test
kselftest: vm: fix mdwe's mmap_FIXED test case
kselftest: vm: check errnos in mdwe_test
mm: make PR_MDWE_REFUSE_EXEC_GAIN an unsigned long
mm: add a NO_INHERIT flag to the PR_SET_MDWE prctl
kselftest: vm: add tests for no-inherit memory-deny-write-execute

Frank van der Linden (1):
mm, hugetlb: remove HUGETLB_CGROUP_MIN_ORDER

Gregory Price (1):
mm/migrate: remove unused mm argument from do_move_pages_to_node

Huan Yang (1):
mm/damon/core: remove unnecessary si_meminfo invoke.

Huang Ying (14):
memory tiering: add abstract distance calculation algorithms management
acpi, hmat: refactor hmat_register_target_initiators()
acpi, hmat: calculate abstract distance with HMAT
dax, kmem: calculate abstract distance with general interface
mm: fix draining remote pageset
mm, pcp: avoid to drain PCP when process exit
cacheinfo: calculate size of per-CPU data cache slice
mm, pcp: reduce lock contention for draining high-order pages
mm: restrict the pcp batch scale factor to avoid too long latency
mm, page_alloc: scale the number of pages that are batch allocated
mm: add framework for PCP high auto-tuning
mm: tune PCP high automatically
mm, pcp: decrease PCP high if free pages < high watermark
mm, pcp: reduce detecting time of consecutive high order page freeing

Hugh Dickins (23):
shmem: shrink shmem_inode_info: dir_offsets in a union
shmem: remove vma arg from shmem_get_folio_gfp()
shmem: factor shmem_falloc_wait() out of shmem_fault()
shmem: trivial tidyups, removing extra blank lines, etc
shmem: shmem_acct_blocks() and shmem_inode_acct_blocks()
shmem: move memcg charge out of shmem_add_to_page_cache()
shmem: _add_to_page_cache() before shmem_inode_acct_blocks()
shmem,percpu_counter: add _limited_add(fbc, limit, amount)
percpu_counter: extend _limited_add() to negative amounts
ext4: add __GFP_NOWARN to GFP_NOWAIT in readahead
mm: mlock: avoid folio_within_range() on KSM pages
hugetlbfs: drop shared NUMA mempolicy pretence
kernfs: drop shared NUMA mempolicy hooks
mempolicy: fix migrate_pages(2) syscall return nr_failed
mempolicy trivia: delete those ancient pr_debug()s
mempolicy trivia: slightly more consistent naming
mempolicy trivia: use pgoff_t in shared mempolicy tree
mempolicy: mpol_shared_policy_init() without pseudo-vma
mempolicy: remove confusing MPOL_MF_LAZY dead code
mm: add page_rmappable_folio() wrapper
mempolicy: alloc_pages_mpol() for NUMA policy without vma
mempolicy: mmap_lock is not needed while migrating folios
mempolicy: migration attempt to match interleave nodes

Hyesoo Yu (1):
mm: page_alloc: check the order of compound page even when the order is zero

Jaewon Kim (1):
mm: multi-gen LRU: reuse some legacy trace events

Jann Horn (1):
mm: document mmu_notifier_invalidate_range_start_nonblock()

Jianguo Bao (1):
mm/writeback: update filemap_dirty_folio() comment

Jinjie Ruan (2):
mm/damon/core-test: fix memory leak in damon_new_region()
mm/damon/core-test: fix memory leak in damon_new_ctx()

Joao Martins (2):
hugetlb: batch PMD split for bulk vmemmap dedup
hugetlb: batch TLB flushes when freeing vmemmap

Joel Fernandes (1):
selftests: mm: add a test for moving from an offset from start of mapping

Joel Fernandes (Google) (6):
mm/mremap: optimize the start addresses in move_page_tables()
mm/mremap: allow moves within the same VMA for stack moves
selftests: mm: fix failure case when new remap region was not found
selftests: mm: add a test for mutually aligned moves > PMD size
selftests: mm: add a test for remapping to area immediately after existing mapping
selftests: mm: add a test for remapping within a range

Kairui Song (2):
mm/oom_killer: simplify OOM killer info dump helper
mm/swap: avoid a xa load for swapout path

Kees Cook (1):
mm/memcg: annotate struct mem_cgroup_threshold_ary with __counted_by

Kefeng Wang (33):
mm: migrate: remove PageTransHuge check in numamigrate_isolate_page()
mm: migrate: remove THP mapcount check in numamigrate_isolate_page()
mm: migrate: convert numamigrate_isolate_page() to numamigrate_isolate_folio()
mm: migrate: convert migrate_misplaced_page() to migrate_misplaced_folio()
mm: migrate: use __folio_test_movable()
mm: migrate: use a folio in add_page_for_migration()
mm: migrate: remove PageHead() check for HugeTLB in add_page_for_migration()
mm: migrate: remove isolated variable in add_page_for_migration()
mm: memory: add vm_normal_folio_pmd()
mm: huge_memory: use a folio in do_huge_pmd_numa_page()
mm: memory: use a folio in do_numa_page()
mm: memory: make numa_migrate_prep() to take a folio
mm: mempolicy: make mpol_misplaced() to take a folio
sched/numa, mm: make numa migrate functions to take a folio
mm_types: add virtual and _last_cpupid into struct folio
mm: add folio_last_cpupid()
mm: memory: use folio_last_cpupid() in do_numa_page()
mm: huge_memory: use folio_last_cpupid() in do_huge_pmd_numa_page()
mm: huge_memory: use folio_last_cpupid() in __split_huge_page_tail()
mm: remove page_cpupid_last()
mm: add folio_xchg_access_time()
sched/fair: use folio_xchg_access_time() in numa_hint_fault_latency()
mm: mprotect: use a folio in change_pte_range()
mm: huge_memory: use a folio in change_huge_pmd()
mm: remove xchg_page_access_time()
mm: add folio_xchg_last_cpupid()
sched/fair: use folio_xchg_last_cpupid() in should_numa_migrate_memory()
mm: migrate: use folio_xchg_last_cpupid() in folio_migrate_flags()
mm: huge_memory: use folio_xchg_last_cpupid() in __split_huge_page_tail()
mm: make finish_mkwrite_fault() static
mm: convert wp_page_reuse() and finish_mkwrite_fault() to take a folio
mm: use folio_xchg_last_cpupid() in wp_page_reuse()
mm: remove page_cpupid_xchg_last()

Kemeng Shi (8):
mm/compaction: use correct list in move_freelist_{head}/{tail}
mm/compaction: call list_is_{first}/{last} more intuitively in move_freelist_{head}/{tail}
mm/compaction: correctly return failure with bogus compound_order in strict mode
mm/compaction: remove repeat compact_blockskip_flush check in reset_isolation_suitable
mm/compaction: improve comment of is_via_compact_memory
mm/compaction: factor out code to test if we should run compaction for target order
mm/page_alloc: remove unnecessary check in break_down_buddy_pages
mm/page_alloc: remove unnecessary next_page in break_down_buddy_pages

Li Zhijian (1):
acpi,mm: fix typo sibiling -> sibling

Liam R. Howlett (2):
radix tree test suite: fix allocation calculation in kmem_cache_alloc_bulk()
mmap: add clarifying comment to vma_merge() code

Liu Shixin (10):
memcg: expose swapcache stat for memcg v1
memcg: remove unused do_memsw_account in memcg1_stat_format
bootmem: use kmemleak_free_part_phys in put_page_bootmem
bootmem: use kmemleak_free_part_phys in free_bootmem_page
mm/kmemleak: fix print format of pointer in pr_debug()
mm: kmemleak: split __create_object into two functions
mm: kmemleak: use mem_pool_free() to free object
mm: kmemleak: add __find_and_remove_object()
mm/kmemleak: fix partially freeing unknown object warning
mm/kmemleak: move the initialisation of object to __link_object

Lorenzo Stoakes (15):
mm: refactor si_mem_available()
mm/filemap: clarify filemap_fault() comments for not uptodate case
mm: make __access_remote_vm() static
mm/gup: explicitly define and check internal GUP flags, disallow FOLL_TOUCH
mm/gup: make failure to pin an error if FOLL_NOWAIT not specified
mm/gup: adapt get_user_page_vma_remote() to never return NULL
mm/mprotect: allow unfaulted VMAs to be unaccounted on mprotect()
mm: move vma_policy() and anon_vma_name() decls to mm_types.h
mm: abstract the vma_merge()/split_vma() pattern for mprotect() et al.
mm: make vma_merge() and split_vma() internal
mm: abstract merge for new VMAs into vma_merge_new_vma()
mm: abstract VMA merge and extend into vma_merge_extend() helper
mm: drop the assumption that VM_SHARED always implies writable
mm: update memfd seal write check to include F_SEAL_WRITE
mm: perform the mapping_map_writable() check after call_mmap()

Lucy Mielke (1):
mm: add printf attribute to shrinker_debugfs_name_alloc

Mark-PK Tsai (1):
zsmalloc: use copy_page for full page copy

Mateusz Guzik (1):
mm: remove remnants of SPLIT_RSS_COUNTING

Matthew Wilcox (Oracle) (63):
mm: convert DAX lock/unlock page to lock/unlock folio
buffer: pass GFP flags to folio_alloc_buffers()
buffer: hoist GFP flags from grow_dev_page() to __getblk_gfp()
ext4: use bdev_getblk() to avoid memory reclaim in readahead path
buffer: use bdev_getblk() to avoid memory reclaim in readahead path
buffer: convert getblk_unmovable() and __getblk() to use bdev_getblk()
buffer: convert sb_getblk() to call __getblk()
ext4: call bdev_getblk() from sb_getblk_gfp()
buffer: remove __getblk_gfp()
hugetlb: use a folio in free_hpage_workfn()
hugetlb: remove a few calls to page_folio()
hugetlb: convert remove_pool_huge_page() to remove_pool_hugetlb_folio()
mm: make lock_folio_maybe_drop_mmap() VMA lock aware
mm: call wp_page_copy() under the VMA lock
mm: handle shared faults under the VMA lock
mm: handle COW faults under the VMA lock
mm: handle read faults under the VMA lock
mm: handle write faults to RO pages under the VMA lock
iomap: hold state_lock over call to ifs_set_range_uptodate()
iomap: protect read_bytes_pending with the state_lock
mm: add folio_end_read()
ext4: use folio_end_read()
buffer: use folio_end_read()
iomap: use folio_end_read()
bitops: add xor_unlock_is_negative_byte()
alpha: implement xor_unlock_is_negative_byte
m68k: implement xor_unlock_is_negative_byte
mips: implement xor_unlock_is_negative_byte
powerpc: implement arch_xor_unlock_is_negative_byte on 32-bit
riscv: implement xor_unlock_is_negative_byte
s390: implement arch_xor_unlock_is_negative_byte
mm: delete checks for xor_unlock_is_negative_byte()
mm: add folio_xor_flags_has_waiters()
mm: make __end_folio_writeback() return void
mm: use folio_xor_flags_has_waiters() in folio_end_writeback()
filemap: remove use of wait bookmarks
sched: remove wait bookmarks
buffer: make folio_create_empty_buffers() return a buffer_head
mpage: convert map_buffer_to_folio() to folio_create_empty_buffers()
ext4: convert to folio_create_empty_buffers
buffer: add get_nth_bh()
gfs2: convert inode unstuffing to use a folio
gfs2: convert gfs2_getbuf() to folios
gfs2: convert gfs2_getjdatabuf to use a folio
gfs2: convert gfs2_write_buf_to_page() to use a folio
nilfs2: convert nilfs_mdt_freeze_buffer to use a folio
nilfs2: convert nilfs_grab_buffer() to use a folio
nilfs2: convert nilfs_copy_page() to nilfs_copy_folio()
nilfs2: convert nilfs_mdt_forget_block() to use a folio
nilfs2: convert nilfs_mdt_get_frozen_buffer to use a folio
nilfs2: remove nilfs_page_get_nth_block
nilfs2: convert nilfs_lookup_dirty_data_buffers to use folio_create_empty_buffers
ntfs: convert ntfs_read_block() to use a folio
ntfs: convert ntfs_writepage to use a folio
ntfs: convert ntfs_prepare_pages_for_non_resident_write() to folios
ntfs3: convert ntfs_zero_range() to use a folio
ocfs2: convert ocfs2_map_page_blocks to use a folio
reiserfs: convert writepage to use a folio
ufs: add ufs_get_locked_folio and ufs_put_locked_folio
ufs: use ufs_get_locked_folio() in ufs_alloc_lastblock()
ufs: convert ufs_change_blocknr() to use folios
ufs: remove ufs_get_locked_page()
buffer: remove folio_create_empty_buffers()

Mike Kravetz (8):
hugetlb: set hugetlb page flag before optimizing vmemmap
hugetlb: check for hugetlb folio before vmemmap_restore
hugetlb: optimize update_and_free_pages_bulk to avoid lock cycles
hugetlb: restructure pool allocations
hugetlb: perform vmemmap optimization on a list of pages
hugetlb: perform vmemmap restoration on a list of pages
hugetlb: batch freeing of vmemmap pages
hugetlb: batch TLB flushes when restoring vmemmap

Minjie Du (1):
mm/filemap: increase usage of folio_next_index() helper

Muhammad Muzammil (1):
mm: fix multiple typos in multiple files

Muhammad Usama Anjum (5):
fs/proc/task_mmu: implement IOCTL to get and optionally clear info about PTEs
fs/proc/task_mmu: add fast paths to get/clear PAGE_IS_WRITTEN flag
tools headers UAPI: update linux/fs.h with the kernel sources
mm/pagemap: add documentation of PAGEMAP_SCAN IOCTL
selftests: mm: add pagemap ioctl tests

Nhat Pham (7):
zswap: change zswap's default allocator to zsmalloc
memcontrol: add helpers for hugetlb memcg accounting
memcontrol: only transfer the memcg data for migration
hugetlb: memcg: account hugetlb-backed memory in memory controller
selftests: add a selftest to verify hugetlb usage in memcg
zswap: export compression failure stats
selftests: add a sanity check for zswap

Pankaj Raghav (1):
filemap: call filemap_get_folios_tag() from filemap_get_folios()

Pedro Falcato (1):
mm: kmsan: panic on failure to allocate early boot metadata

Peter Xu (1):
userfaultfd: UFFD_FEATURE_WP_ASYNC

Qi Zheng (51):
mm: move some shrinker-related function declarations to mm/internal.h
mm: vmscan: move shrinker-related code into a separate file
mm: shrinker: remove redundant shrinker_rwsem in debugfs operations
drm/ttm: introduce pool_shrink_rwsem
mm: shrinker: add infrastructure for dynamically allocating shrinker
kvm: mmu: dynamically allocate the x86-mmu shrinker
binder: dynamically allocate the android-binder shrinker
drm/ttm: dynamically allocate the drm-ttm_pool shrinker
xenbus/backend: dynamically allocate the xen-backend shrinker
erofs: dynamically allocate the erofs-shrinker
f2fs: dynamically allocate the f2fs-shrinker
gfs2: dynamically allocate the gfs2-glock shrinker
gfs2: dynamically allocate the gfs2-qd shrinker
NFSv4.2: dynamically allocate the nfs-xattr shrinkers
nfs: dynamically allocate the nfs-acl shrinker
nfsd: dynamically allocate the nfsd-filecache shrinker
quota: dynamically allocate the dquota-cache shrinker
ubifs: dynamically allocate the ubifs-slab shrinker
rcu: dynamically allocate the rcu-lazy shrinker
rcu: dynamically allocate the rcu-kfree shrinker
mm: thp: dynamically allocate the thp-related shrinkers
sunrpc: dynamically allocate the sunrpc_cred shrinker
mm: workingset: dynamically allocate the mm-shadow shrinker
drm/i915: dynamically allocate the i915_gem_mm shrinker
drm/msm: dynamically allocate the drm-msm_gem shrinker
drm/panfrost: dynamically allocate the drm-panfrost shrinker
dm: dynamically allocate the dm-bufio shrinker
dm zoned: dynamically allocate the dm-zoned-meta shrinker
md/raid5: dynamically allocate the md-raid5 shrinker
bcache: dynamically allocate the md-bcache shrinker
vmw_balloon: dynamically allocate the vmw-balloon shrinker
virtio_balloon: dynamically allocate the virtio-balloon shrinker
mbcache: dynamically allocate the mbcache shrinker
ext4: dynamically allocate the ext4-es shrinker
jbd2,ext4: dynamically allocate the jbd2-journal shrinker
nfsd: dynamically allocate the nfsd-client shrinker
nfsd: dynamically allocate the nfsd-reply shrinker
xfs: dynamically allocate the xfs-buf shrinker
xfs: dynamically allocate the xfs-inodegc shrinker
xfs: dynamically allocate the xfs-qm shrinker
zsmalloc: dynamically allocate the mm-zspool shrinker
fs: super: dynamically allocate the s_shrink
mm: shrinker: remove old APIs
mm: shrinker: add a secondary array for shrinker_info::{map, nr_deferred}
mm: shrinker: rename {prealloc|unregister}_memcg_shrinker() to shrinker_memcg_{alloc|remove}()
mm: shrinker: make global slab shrink lockless
mm: shrinker: make memcg slab shrink lockless
mm: shrinker: hold write lock to reparent shrinker nr_deferred
mm: shrinker: convert shrinker_rwsem to mutex
mm: page_alloc: skip memoryless nodes entirely
mm: memory_hotplug: drop memoryless node from fallback lists

Roman Gushchin (6):
mm: kmem: optimize get_obj_cgroup_from_current()
mm: kmem: add direct objcg pointer to task_struct
mm: kmem: make memcg keep a reference to the original objcg
mm: kmem: scoped objcg protection
percpu: scoped objcg protection
mm: kmem: reimplement get_obj_cgroup_from_current()

SeongJae Park (42):
Docs/admin-guide/mm/damon/usage: fixup missed :ref: keyword
Docs/admin-guide/mm/damon/usage: place debugfs usage at the bottom
Docs/admin-guide/mm/damon/usage: move debugfs intro to the bottom of the section
Docs/mm/damon/design: explicitly introduce ``nr_accesses``
Docs/admin-guide/mm/damon/usage: explain the format of damon_aggregate tracepoint
Docs/mm/damon/design: add a section for kdamond and DAMON context
Docs/admin-guide/mm/damon/usage: link design doc for details of kdamond and context
mm/damon/core: fix a comment about damon_set_attrs() call timings
mm/damon/core: add more comments for nr_accesses
mm/damon/core: remove duplicated comment for watermarks-based deactivation
mm/damon/core: remove 'struct target *' parameter from damon_aggregated tracepoint
mm/damon/core: add a tracepoint for damos apply target regions
Docs/admin-guide/mm/damon/usage: document damos_before_apply tracepoint
mm/damon/core: use number of passed access sampling as a timer
mm/damon/core: define and use a dedicated function for region access rate update
mm/damon/vaddr: call damon_update_region_access_rate() always
mm/damon/core: implement a pseudo-moving sum function
mm/damon/core-test: add a unit test for damon_moving_sum()
mm/damon/core: introduce nr_accesses_bp
mm/damon/core: use pseudo-moving sum for nr_accesses_bp
mm/damon/core: skip updating nr_accesses_bp for each aggregation interval
mm/damon/core: mark damon_moving_sum() as a static function
mm/damon/core: make DAMOS uses nr_accesses_bp instead of nr_accesses
mm/damon/sysfs-schemes: use nr_accesses_bp as the source of tried_regions/<N>/nr_accesses
mm/damon/core: use nr_accesses_bp as a source of damos_before_apply tracepoint
mm/damon/core: implement scheme-specific apply interval
Docs/mm/damon/design: document DAMOS apply intervals
mm/damon/sysfs-schemes: support DAMOS apply interval
selftests/damon/sysfs: test DAMOS apply intervals
Docs/admin-guide/mm/damon/usage: update for DAMOS apply intervals
Docs/ABI/damon: update for DAMOS apply intervals
mm/damon/sysfs-schemes: do not update tried regions more than one DAMON snapshot
mm/damon/sysfs: avoid empty scheme tried regions for large apply interval
Docs/admin-guide/mm/damon/usage: update for tried regions update time interval
mm/damon: implement a function for max nr_accesses safe calculation
mm/damon/core: avoid divide-by-zero during monitoring results update
mm/damon/ops-common: avoid divide-by-zero during region hotness calculation
mm/damon/lru_sort: avoid divide-by-zero in hot threshold calculation
mm/damon/core: avoid divide-by-zero from pseudo-moving window length calculation
mm/damon/sysfs-test: add a unit test for damon_sysfs_set_targets()
mm/damon/sysfs: remove requested targets when online-commit inputs
mm/damon/sysfs: update monitoring target regions for online input commit

Sidhartha Kumar (2):
mm/filemap: remove hugetlb special casing in filemap.c
mm/hugetlb: replace page_ref_freeze() with folio_ref_freeze() in hugetlb_folio_init_vmemmap()

Stefan Roesch (6):
mm/ksm: support fork/exec for prctl
mm/ksm: test case for prctl fork/exec workflow
mm/ksm: add "smart" page scanning mode
mm/ksm: add pages_skipped metric
mm/ksm: document smart scan mode
mm/ksm: document pages_skipped sysfs knob

Tiezhu Yang (1):
selftests/clone3: Fix broken test under !CONFIG_TIME_NS

Tom Yang (1):
Documentation: maple_tree: fix word spelling error

Uros Bizjak (1):
mm/vmstat: use this_cpu_try_cmpxchg in mod_{zone,node}_state

Usama Arif (5):
mm: hugetlb_vmemmap: use nid of the head page to reallocate it
memblock: pass memblock_type to memblock_setclr_flag
memblock: introduce MEMBLOCK_RSRV_NOINIT flag
mm: hugetlb: skip initialization of gigantic tail struct pages if freed by HVO
hugetlb_vmemmap: use folio argument for hugetlb_vmemmap_* functions

Vegard Nossum (1):
mm: hugetlb_vmemmap: fix reference to nonexistent file

Vern Hao (1):
mm/vmscan: use folio_migratetype() instead of get_pageblock_migratetype()

Vishal Moola (Oracle) (5):
mm/khugepaged: convert __collapse_huge_page_isolate() to use folios
mm/khugepaged: convert hpage_collapse_scan_pmd() to use folios
mm/khugepaged: convert is_refcount_suitable() to use folios
mm/khugepaged: convert alloc_charge_hpage() to use folios
mm/khugepaged: convert collapse_pte_mapped_thp() to use folios

Vlastimil Babka (2):
trace-vmscan-postprocess: sync with tracepoints updates
mm, vmscan: remove ISOLATE_UNMAPPED

Xin Hao (1):
mm: memcg: add THP swap out info for anonymous reclaim

Xiu Jianfeng (1):
mm: remove duplicated vma->vm_flags check when expanding stack

Xueshi Hu (1):
mm/hugetlb: fix nodes huge page allocation when there are surplus pages

Yajun Deng (1):
mm/mm_init.c: remove redundant pr_info when node is memoryless

Yin Fengwei (3):
mm: add functions folio_in_range() and folio_within_vma()
mm: handle large folio when large folio in VM_LOCKED VMA range
mm: mlock: update mlock_pte_range to handle large folio

Ying Sun (1):
mm/shmem: remove dead code can not be satisfied by "(CONFIG_SHMEM)&&(!(CONFIG_SHMEM))"

Yosry Ahmed (2):
mm: memcg: refactor page state unit helpers
mm: memcg: normalize the value passed into memcg_rstat_updated()

Yuan Can (2):
mm: hugetlb_vmemmap: fix hugetlb page number decrease failed on movable nodes
mm: hugetlb_vmemmap: allow alloc vmemmap pages fallback to other nodes

Zach O'Keefe (1):
mm/thp: fix "mm: thp: kill __transhuge_page_enabled()"

Zi Yan (7):
mm/cma: use nth_page() in place of direct struct page manipulation
mm/hugetlb: use nth_page() in place of direct struct page manipulation
mm/memory_hotplug: use pfn math in place of direct struct page manipulation
fs: use nth_page() in place of direct struct page manipulation
mips: use nth_page() in place of direct struct page manipulation
mm/migrate: correct nr_failed in migrate_pages_sync()
mm/migrate: add nr_split to trace_mm_migrate_pages stats.

liujinlong (1):
mm: vmscan: modify an easily misunderstood function name

liwenyu (1):
delayacct: add memory reclaim delay in get_page_from_freelist

Documentation/ABI/testing/sysfs-kernel-mm-damon | 7 +
Documentation/admin-guide/cgroup-v1/memory.rst | 1 +
Documentation/admin-guide/cgroup-v2.rst | 38 +
Documentation/admin-guide/mm/damon/usage.rst | 124 +-
Documentation/admin-guide/mm/ksm.rst | 11 +
Documentation/admin-guide/mm/pagemap.rst | 89 ++
Documentation/admin-guide/mm/userfaultfd.rst | 35 +
Documentation/core-api/maple_tree.rst | 2 +-
Documentation/dev-tools/kasan.rst | 7 +-
Documentation/dev-tools/kcsan.rst | 4 +-
Documentation/dev-tools/kmsan.rst | 6 +-
Documentation/dev-tools/ubsan.rst | 6 +-
Documentation/mm/damon/design.rst | 26 +-
.../trace/postprocess/trace-vmscan-postprocess.pl | 42 +-
MAINTAINERS | 2 +
arch/alpha/include/asm/bitops.h | 20 +
arch/arm64/include/asm/tlb.h | 5 +-
arch/arm64/kernel/mte.c | 4 +-
arch/arm64/mm/kasan_init.c | 6 +-
arch/loongarch/include/asm/pgalloc.h | 1 +
arch/m68k/include/asm/bitops.h | 21 +
arch/mips/include/asm/bitops.h | 25 +-
arch/mips/include/asm/pgalloc.h | 1 +
arch/mips/lib/bitops.c | 14 +
arch/mips/mm/cache.c | 2 +-
arch/powerpc/include/asm/bitops.h | 21 +-
arch/riscv/include/asm/bitops.h | 12 +
arch/s390/include/asm/bitops.h | 10 +
arch/x86/include/asm/bitops.h | 11 +-
arch/x86/kvm/mmu/mmu.c | 18 +-
arch/x86/mm/pgtable.c | 3 +
drivers/acpi/acpi_pad.c | 2 +-
drivers/acpi/numa/hmat.c | 146 +-
drivers/android/binder_alloc.c | 30 +-
drivers/base/cacheinfo.c | 51 +-
drivers/dax/kmem.c | 62 +-
drivers/firmware/efi/unaccepted_memory.c | 20 +
drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 29 +-
drivers/gpu/drm/i915/i915_drv.h | 2 +-
drivers/gpu/drm/msm/msm_drv.c | 4 +-
drivers/gpu/drm/msm/msm_drv.h | 4 +-
drivers/gpu/drm/msm/msm_gem_shrinker.c | 33 +-
drivers/gpu/drm/panfrost/panfrost_device.h | 2 +-
drivers/gpu/drm/panfrost/panfrost_drv.c | 6 +-
drivers/gpu/drm/panfrost/panfrost_gem.h | 2 +-
drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c | 29 +-
drivers/gpu/drm/ttm/ttm_pool.c | 40 +-
drivers/md/bcache/bcache.h | 2 +-
drivers/md/bcache/btree.c | 27 +-
drivers/md/bcache/sysfs.c | 3 +-
drivers/md/dm-bufio.c | 28 +-
drivers/md/dm-cache-metadata.c | 2 +-
drivers/md/dm-zoned-metadata.c | 28 +-
drivers/md/raid5.c | 26 +-
drivers/md/raid5.h | 2 +-
drivers/misc/vmw_balloon.c | 38 +-
drivers/virtio/virtio_balloon.c | 24 +-
drivers/xen/xenbus/xenbus_probe_backend.c | 17 +-
fs/btrfs/super.c | 2 +-
fs/buffer.c | 125 +-
fs/dax.c | 24 +-
fs/erofs/utils.c | 19 +-
fs/exec.c | 4 +-
fs/ext4/ext4.h | 2 +-
fs/ext4/extents_status.c | 23 +-
fs/ext4/inode.c | 14 +-
fs/ext4/move_extent.c | 11 +-
fs/ext4/readpage.c | 14 +-
fs/ext4/super.c | 13 +-
fs/f2fs/super.c | 31 +-
fs/gfs2/aops.c | 2 +-
fs/gfs2/bmap.c | 48 +-
fs/gfs2/glock.c | 19 +-
fs/gfs2/main.c | 6 +-
fs/gfs2/meta_io.c | 61 +-
fs/gfs2/quota.c | 62 +-
fs/gfs2/quota.h | 3 +-
fs/hugetlbfs/inode.c | 84 +-
fs/iomap/buffered-io.c | 57 +-
fs/jbd2/journal.c | 29 +-
fs/kernfs/file.c | 49 -
fs/kernfs/mount.c | 2 +-
fs/mbcache.c | 22 +-
fs/mpage.c | 3 +-
fs/nfs/nfs42xattr.c | 87 +-
fs/nfs/super.c | 21 +-
fs/nfsd/filecache.c | 23 +-
fs/nfsd/netns.h | 4 +-
fs/nfsd/nfs4state.c | 19 +-
fs/nfsd/nfscache.c | 31 +-
fs/nilfs2/mdt.c | 66 +-
fs/nilfs2/page.c | 76 +-
fs/nilfs2/page.h | 11 -
fs/nilfs2/segment.c | 7 +-
fs/ntfs/aops.c | 255 ++-
fs/ntfs/file.c | 89 +-
fs/ntfs3/file.c | 31 +-
fs/ocfs2/aops.c | 19 +-
fs/proc/kcore.c | 3 +-
fs/proc/root.c | 2 +-
fs/proc/task_mmu.c | 733 ++++++++-
fs/quota/dquot.c | 17 +-
fs/reiserfs/inode.c | 80 +-
fs/super.c | 35 +-
fs/ubifs/super.c | 21 +-
fs/ufs/balloc.c | 20 +-
fs/ufs/inode.c | 25 +-
fs/ufs/util.c | 34 +-
fs/ufs/util.h | 10 +-
fs/userfaultfd.c | 96 +-
fs/xfs/xfs_buf.c | 24 +-
fs/xfs/xfs_buf.h | 2 +-
fs/xfs/xfs_icache.c | 26 +-
fs/xfs/xfs_mount.c | 4 +-
fs/xfs/xfs_mount.h | 2 +-
fs/xfs/xfs_qm.c | 27 +-
fs/xfs/xfs_qm.h | 2 +-
include/asm-generic/bitops/instrumented-lock.h | 28 +-
include/asm-generic/bitops/lock.h | 20 +-
include/asm-generic/pgalloc.h | 7 +-
include/linux/bootmem_info.h | 2 +-
include/linux/buffer_head.h | 81 +-
include/linux/cacheinfo.h | 1 +
include/linux/cgroup-defs.h | 5 +
include/linux/damon.h | 74 +-
include/linux/dax.h | 10 +-
include/linux/fs.h | 6 +-
include/linux/gfp.h | 12 +-
include/linux/hugetlb.h | 25 +-
include/linux/hugetlb_cgroup.h | 11 -
include/linux/jbd2.h | 2 +-
include/linux/memblock.h | 9 +
include/linux/memcontrol.h | 93 +-
include/linux/memory-tiers.h | 41 +-
include/linux/mempolicy.h | 58 +-
include/linux/migrate.h | 4 +-
include/linux/mm.h | 176 ++-
include/linux/mm_inline.h | 20 +-
include/linux/mm_types.h | 49 +-
include/linux/mmu_notifier.h | 9 +-
include/linux/mmzone.h | 29 +-
include/linux/page-flags.h | 19 +
include/linux/pagemap.h | 33 +-
include/linux/percpu_counter.h | 30 +
include/linux/rmap.h | 4 +-
include/linux/sched.h | 4 +
include/linux/sched/coredump.h | 19 +-
include/linux/sched/mm.h | 4 +
include/linux/sched/numa_balancing.h | 6 +-
include/linux/shmem_fs.h | 16 +-
include/linux/shrinker.h | 87 +-
include/linux/userfaultfd_k.h | 28 +-
include/linux/wait.h | 9 +-
include/trace/events/damon.h | 45 +-
include/trace/events/migrate.h | 24 +-
include/trace/events/vmscan.h | 8 +-
include/uapi/linux/fs.h | 59 +
include/uapi/linux/mempolicy.h | 2 +-
include/uapi/linux/prctl.h | 3 +-
include/uapi/linux/userfaultfd.h | 9 +-
ipc/shm.c | 21 +-
kernel/cgroup/cgroup.c | 15 +-
kernel/events/uprobes.c | 4 +-
kernel/exit.c | 4 -
kernel/fork.c | 8 +-
kernel/kcsan/kcsan_test.c | 9 +-
kernel/kcsan/selftest.c | 9 +-
kernel/kthread.c | 1 -
kernel/ptrace.c | 2 +-
kernel/rcu/tree.c | 21 +-
kernel/rcu/tree_nocb.h | 19 +-
kernel/sched/fair.c | 12 +-
kernel/sched/wait.c | 60 +-
kernel/sys.c | 32 +-
lib/percpu_counter.c | 79 +
mm/Kconfig | 12 +
mm/Makefile | 4 +-
mm/bootmem_info.c | 2 +-
mm/cma.c | 2 +-
mm/compaction.c | 91 +-
mm/damon/Kconfig | 12 +
mm/damon/core-test.h | 29 +-
mm/damon/core.c | 295 +++-
mm/damon/dbgfs.c | 3 +-
mm/damon/lru_sort.c | 6 +-
mm/damon/ops-common.c | 5 +-
mm/damon/paddr.c | 11 +-
mm/damon/reclaim.c | 2 +
mm/damon/sysfs-common.h | 2 +
mm/damon/sysfs-schemes.c | 133 +-
mm/damon/sysfs-test.h | 86 +
mm/damon/sysfs.c | 123 +-
mm/damon/vaddr.c | 22 +-
mm/debug_vm_pgtable.c | 4 +-
mm/filemap.c | 215 +--
mm/gup.c | 16 +-
mm/huge_memory.c | 134 +-
mm/hugetlb.c | 625 ++++++--
mm/hugetlb_cgroup.c | 20 +-
mm/hugetlb_vmemmap.c | 301 +++-
mm/hugetlb_vmemmap.h | 31 +-
mm/internal.h | 147 +-
mm/kasan/kasan_test.c | 19 +-
mm/kasan/kasan_test_module.c | 2 +-
mm/kasan/quarantine.c | 4 +-
mm/kasan/report.c | 4 +-
mm/kasan/report_generic.c | 6 +-
mm/kasan/shadow.c | 2 +-
mm/khugepaged.c | 137 +-
mm/kmemleak.c | 144 +-
mm/kmsan/core.c | 127 +-
mm/kmsan/kmsan_test.c | 109 +-
mm/kmsan/shadow.c | 9 +-
mm/ksm.c | 116 ++
mm/madvise.c | 33 +-
mm/memblock.c | 49 +-
mm/memcontrol.c | 401 ++++-
mm/memfd.c | 6 -
mm/memory-failure.c | 29 +-
mm/memory-tiers.c | 175 ++-
mm/memory.c | 302 ++--
mm/memory_hotplug.c | 8 +-
mm/mempolicy.c | 1026 ++++++------
mm/migrate.c | 225 +--
mm/mlock.c | 95 +-
mm/mm_init.c | 4 +-
mm/mmap.c | 149 +-
mm/mmzone.c | 6 +-
mm/mprotect.c | 58 +-
mm/mremap.c | 107 +-
mm/nommu.c | 8 +-
mm/oom_kill.c | 16 +-
mm/page-writeback.c | 37 +-
mm/page_alloc.c | 343 +++-
mm/page_io.c | 8 +-
mm/page_owner.c | 4 +-
mm/percpu.c | 8 +-
mm/rmap.c | 164 +-
mm/shmem.c | 588 +++----
mm/show_mem.c | 11 +-
mm/shrinker.c | 809 ++++++++++
mm/shrinker_debug.c | 35 +-
mm/slab.h | 15 +-
mm/swap.h | 9 +-
mm/swap_state.c | 92 +-
mm/util.c | 1 +
mm/vmalloc.c | 2 +-
mm/vmscan.c | 734 +--------
mm/vmstat.c | 30 +-
mm/workingset.c | 29 +-
mm/zsmalloc.c | 29 +-
mm/zswap.c | 15 +-
net/sunrpc/auth.c | 20 +-
tools/include/uapi/linux/fs.h | 59 +
tools/include/uapi/linux/prctl.h | 3 +-
tools/mm/page_owner_sort.c | 217 ++-
tools/testing/radix-tree/linux.c | 4 +-
tools/testing/selftests/cgroup/.gitignore | 1 +
tools/testing/selftests/cgroup/Makefile | 2 +
.../testing/selftests/cgroup/test_hugetlb_memcg.c | 234 +++
tools/testing/selftests/cgroup/test_zswap.c | 48 +
tools/testing/selftests/clone3/clone3.c | 7 +-
tools/testing/selftests/damon/sysfs.sh | 1 +
tools/testing/selftests/mm/.gitignore | 2 +
tools/testing/selftests/mm/Makefile | 4 +-
tools/testing/selftests/mm/config | 1 +
tools/testing/selftests/mm/gup_longterm.c | 3 +-
tools/testing/selftests/mm/hugetlb-madvise.c | 19 -
.../selftests/mm/hugetlb_fault_after_madv.c | 73 +
tools/testing/selftests/mm/ksm_functional_tests.c | 66 +-
tools/testing/selftests/mm/mdwe_test.c | 137 +-
tools/testing/selftests/mm/mremap_test.c | 301 +++-
tools/testing/selftests/mm/pagemap_ioctl.c | 1660 ++++++++++++++++++++
tools/testing/selftests/mm/run_vmtests.sh | 8 +
tools/testing/selftests/mm/vm_util.c | 19 +
tools/testing/selftests/mm/vm_util.h | 1 +
276 files changed, 11648 insertions(+), 5255 deletions(-)
create mode 100644 mm/damon/sysfs-test.h
create mode 100644 mm/shrinker.c
create mode 100644 tools/testing/selftests/cgroup/test_hugetlb_memcg.c
create mode 100644 tools/testing/selftests/mm/hugetlb_fault_after_madv.c
create mode 100644 tools/testing/selftests/mm/pagemap_ioctl.c