mbox series

[GIT,PULL] MM updates for 5.20-rc1

Message ID 20220803133541.18b82ec9344ed0e8b975fe5b@linux-foundation.org (mailing list archive)
State New
Headers show
Series [GIT,PULL] MM updates for 5.20-rc1 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2022-08-03

Message

Andrew Morton Aug. 3, 2022, 8:35 p.m. UTC
Hi, Linus.

Most of the MM queue.  A few things are still pending.

Liam's maple tree rework didn't make it.  This has resulted in a few
other minor patch series being held over for next time.

Multi-gen LRU still isn't merged as we were waiting for mapletree to
stabilize.  The current plan is to merge MGLRU into -mm soon and to
later reintroduce mapletree, with a view to hopefully getting both into
5.21-rc1.

There are 6-7 conflicts with your tree here.  All very minor, mainly
related to the rename of Documentation/vm to Documentation/mm.

Thanks.

The following changes since commit 03c765b0e3b4cb5063276b086c76f7a612856a9a:

  Linux 5.19-rc4 (2022-06-26 14:22:10 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2022-08-03

for you to fetch changes up to 360614c01f81f48a89d8b13f8fa69c3ae0a1f5c7:

  tools/testing/selftests/vm/hmm-tests.c: fix build (2022-08-03 11:40:53 -0700)

----------------------------------------------------------------
- The usual batches of cleanups from Baoquan He, Muchun Song, Miaohe
  Lin, Yang Shi, Anshuman Khandual and Mike Rapoport

- Some kmemleak fixes from Patrick Wang and Waiman Long

- DAMON updates from SeongJae Park

- memcg debug/visibility work from Roman Gushchin

- vmalloc speedup from Uladzislau Rezki

- more folio conversion work from Matthew Wilcox

- enhancements for coherent device memory mapping from Alex Sierra

- addition of shared pages tracking and CoW support for fsdax, from
  Shiyang Ruan

- hugetlb optimizations from Mike Kravetz

- Mel Gorman has contributed some pagealloc changes to improve latency
  and realtime behaviour.

- mprotect soft-dirty checking has been improved by Peter Xu

- Many other singleton patches all over the place

----------------------------------------------------------------
Adam Sindelar (4):
      selftests/vm: only run 128TBswitch with 5-level paging
      selftests/vm: fix va_128TBswitch.sh permissions
      selftests/vm: fix errno handling in mrelease_test
      selftests/vm: skip 128TBswitch on unsupported arch

Alex Sierra (13):
      mm: rename is_pinnable_page() to is_longterm_pinnable_page()
      mm: move page zone helpers from mm.h to mmzone.h
      mm: add zone device coherent type memory support
      mm: handling Non-LRU pages returned by vm_normal_pages
      mm: add device coherent vma selection for memory migration
      drm/amdkfd: add SPM support for SVM
      lib: test_hmm add ioctl to get zone device type
      lib: test_hmm add module param for zone device type
      lib: add support for device coherent type in test_hmm
      tools: update hmm-test to support device coherent type
      tools: update test_hmm script to support SP config
      tools: add hmm gup tests for device coherent type
      tools: add selftests to hmm for COW in device memory

Alistair Popple (2):
      mm/gup: migrate device coherent pages when pinning instead of failing
      mm/gup.c: fix formatting in check_and_migrate_movable_page()

Andrew Morton (2):
      Merge branch 'master' into mm-stable
      tools/testing/selftests/vm/hmm-tests.c: fix build

Andrey Konovalov (3):
      mm: rename kernel_init_free_pages to kernel_init_pages
      mm: introduce clear_highpage_kasan_tagged
      kasan: fix zeroing vmalloc memory with HW_TAGS

Anshuman Khandual (27):
      mm/memory_hotplug: drop 'reason' argument from check_pfn_span()
      mm/mmap: build protect protection_map[] with __P000
      mm/mmap: define DECLARE_VM_GET_PAGE_PROT
      powerpc/mm: move protection_map[] inside the platform
      sparc/mm: move protection_map[] inside the platform
      arm64/mm: move protection_map[] inside the platform
      x86/mm: move protection_map[] inside the platform
      mm/mmap: build protect protection_map[] with ARCH_HAS_VM_GET_PAGE_PROT
      microblaze/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      loongarch/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      openrisc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      xtensa/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      hexagon/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      parisc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      alpha/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      nios2/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      riscv/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      csky/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      s390/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      ia64/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      mips/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      m68k/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      arc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      arm/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      um/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      sh/mm: enable ARCH_HAS_VM_GET_PAGE_PROT
      mm/mmap: drop ARCH_HAS_VM_GET_PAGE_PROT

Axel Rasmussen (1):
      userfaultfd: don't fail on unrecognized features

Baolin Wang (3):
      mm/hugetlb: remove unnecessary huge_ptep_set_access_flags() in hugetlb_mcopy_atomic_pte()
      mm: rmap: simplify the hugetlb handling when unmapping or migration
      arm64/hugetlb: implement arm64 specific hugetlb_mask_last_page

Baoquan He (4):
      mm/vmalloc: invoke classify_va_fit_type() in adjust_va_to_fit_type()
      mm/vmalloc: remove the redundant boundary check
      mm/vmalloc: fix typo in local variable name
      mm/vmalloc: add code comment for find_vmap_area_exceed_addr()

Chengming Zhou (1):
      mm/damon: remove obsolete comments of kdamond_stop

Dan Carpenter (2):
      tools/testing/selftests/vm/hugetlb-madvise.c: silence uninitialized variable warning
      selftest/vm: uninitialized variable in main()

Daniel Vetter (3):
      mm/page_alloc: use might_alloc()
      mm/slab: delete cache_alloc_debugcheck_before()
      mm/mempool: use might_alloc()

David Hildenbrand (1):
      mm/mprotect: try avoiding write faults for exclusive anonymous pages when changing protection

Edward Liaw (1):
      userfaultfd: selftests: infinite loop in faulting_process

Fabio M. De Francesco (1):
      mm/highmem: delete memmove_page()

Fanjun Kong (1):
      mm: use PAGE_ALIGNED instead of IS_ALIGNED

Gang Li (1):
      mm, hugetlb: skip irrelevant nodes in show_free_areas()

Gautam Menghani (1):
      mm/sparse-vmemmap.c: remove unwanted initialization in vmemmap_populate_compound_pages()

Hui Zhu (1):
      zsmalloc: zs_malloc: return ERR_PTR on failure

Jianglei Nie (1):
      mm/damon/reclaim: fix potential memory leak in damon_reclaim_init()

Jiebin Sun (1):
      mm/memcontrol.c: remove the redundant updating of stats_flush_threshold

Joel Savitz (1):
      selftests: make use of GUP_TEST_FILE macro

Kalpana Shetty (1):
      selftests/vm: add protection_keys tests to run_vmtests

Kassey Li (1):
      mm/cma_debug.c: align the name buffer length as struct cma

Kefeng Wang (4):
      zram: fix unused 'zram_wb_devops' warning
      mm: cleanup is_highmem()
      mm: use is_zone_movable_page() helper
      mm: memory-failure: convert to pr_fmt()

Kuan-Ying Lee (1):
      kasan: separate double free case from invalid free

Liam Howlett (1):
      android: binder: fix lockdep check on clearing vma

Liam R. Howlett (2):
      mips: rename mt_init to mips_mt_init
      android: binder: stop saving a pointer to the VMA

Linus Walleij (5):
      lib/test_free_pages.c: pass a pointer to virt_to_page()
      mm/highmem: pass a pointer to virt_to_page()
      mm: kfence: pass a pointer to virt_to_page()
      mm: gup: pass a pointer to virt_to_page()
      mm: nommu: pass a pointer to virt_to_page()

Mark-PK Tsai (1):
      mm/page_alloc: correct the wrong cpuset file path in comment

Matthew Wilcox (Oracle) (28):
      mm/vmscan: convert reclaim_clean_pages_from_list() to folios
      mm/vmscan: convert isolate_lru_pages() to use a folio
      mm/vmscan: convert move_pages_to_lru() to use a folio
      mm/vmscan: convert shrink_active_list() to use a folio
      mm/vmscan: convert reclaim_pages() to use a folio
      mm: add folios_put()
      mm/swap: add folio_batch_move_lru()
      mm/swap: make __pagevec_lru_add static
      mm/swap: convert lru_add to a folio_batch
      mm/swap: convert lru_deactivate_file to a folio_batch
      mm/swap: convert lru_deactivate to a folio_batch
      mm/swap: convert lru_lazyfree to a folio_batch
      mm/swap: convert activate_page to a folio_batch
      mm/swap: rename lru_pvecs to cpu_fbatches
      mm/swap: pull the CPU conditional out of __lru_add_drain_all()
      mm/swap: optimise lru_add_drain_cpu()
      mm/swap: convert try_to_free_swap to use a folio
      mm/swap: convert release_pages to use a folio internally
      mm/swap: convert put_pages_list to use folios
      mm/swap: convert __put_page() to __folio_put()
      mm/swap: convert __put_single_page() to __folio_put_small()
      mm/swap: convert __put_compound_page() to __folio_put_large()
      mm/swap: convert __page_cache_release() to use a folio
      mm: convert destroy_compound_page() to destroy_large_folio()
      mm: convert page_swap_flags to folio_swap_flags
      mm/swap: convert delete_from_swap_cache() to take a folio
      mm/swap: convert __delete_from_swap_cache() to a folio
      mips: rename PMD_ORDER to PMD_TABLE_ORDER

Mel Gorman (6):
      mm/page_alloc: add page->buddy_list and page->pcp_list
      mm/page_alloc: use only one PCP list for THP-sized allocations
      mm/page_alloc: split out buddy removal code from rmqueue into separate helper
      mm/page_alloc: remove mistaken page == NULL check in rmqueue
      mm/page_alloc: protect PCP lists with a spinlock
      mm/page_alloc: replace local_lock with normal spinlock

Miaohe Lin (46):
      mm/shmem.c: clean up comment of shmem_swapin_folio
      mm/memremap: fix wrong function name above memremap_pages()
      lib/test_hmm: avoid accessing uninitialized pages
      mm/memremap: fix memunmap_pages() race with get_dev_pagemap()
      mm/migration: remove unneeded lock page and PageMovable check
      mm/migration: return errno when isolate_huge_page failed
      mm/migration: fix potential pte_unmap on an not mapped pte
      mm/swapfile: fix possible data races of inuse_pages
      mm/swap: remove swap_cache_info statistics
      mm/madvise: minor cleanup for swapin_walk_pmd_entry()
      mm/khugepaged: remove unneeded shmem_huge_enabled() check
      mm/khugepaged: stop swapping in page when VM_FAULT_RETRY occurs
      mm/khugepaged: trivial typo and codestyle cleanup
      mm/khugepaged: minor cleanup for collapse_file
      mm/khugepaged: use helper macro __ATTR_RW
      mm/khugepaged: remove unneeded return value of khugepaged_add_pte_mapped_thp()
      mm/khugepaged: try to free transhuge swapcache when possible
      mm/huge_memory: use flush_pmd_tlb_range in move_huge_pmd
      mm/huge_memory: access vm_page_prot with READ_ONCE in remove_migration_pmd
      mm/huge_memory: fix comment of __pud_trans_huge_lock
      mm/huge_memory: use helper touch_pud in huge_pud_set_accessed
      mm/huge_memory: use helper touch_pmd in huge_pmd_set_accessed
      mm/huge_memory: rename mmun_start to haddr in remove_migration_pmd
      mm/huge_memory: use helper function vma_lookup in split_huge_pages_pid
      mm/huge_memory: use helper macro __ATTR_RW
      mm/huge_memory: fix comment in zap_huge_pud
      mm/huge_memory: check pmd_present first in is_huge_zero_pmd
      mm/huge_memory: try to free subpage in swapcache when possible
      mm/huge_memory: minor cleanup for split_huge_pages_all
      mm/huge_memory: fix comment of page_deferred_list
      mm/huge_memory: correct comment of prep_transhuge_page
      mm/huge_memory: comment the subtly logic in __split_huge_pmd
      mm/huge_memory: use helper macro IS_ERR_OR_NULL in split_huge_pages_pid
      mm/page_vma_mapped.c: use helper function huge_pte_lock
      mm/mmap: fix obsolete comment of find_extend_vma
      mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region
      filemap: minor cleanup for filemap_write_and_wait_range
      mm: remove obsolete comment in do_fault_around()
      mm: remove unneeded PageAnon check in restore_exclusive_pte()
      mm/mempolicy: remove unneeded out label
      hugetlb_cgroup: fix wrong hugetlb cgroup numa stat
      hugetlbfs: use helper macro SZ_1{K,M}
      hugetlbfs: remove unneeded hugetlbfs_ops forward declaration
      hugetlbfs: remove unneeded header file
      hugetlbfs: cleanup some comments in inode.c
      hugetlbfs: fix inaccurate comment in hugetlbfs_statfs()

Mike Kravetz (3):
      hugetlb: skip to end of PT page mapping when pte not present
      hugetlb: do not update address in huge_pmd_unshare
      hugetlb: lazy page table copies in fork()

Mike Rapoport (15):
      docs: rename Documentation/vm to Documentation/mm
      csky: drop definition of PTE_ORDER
      csky: drop definition of PGD_ORDER
      mips: rename PUD_ORDER to PUD_TABLE_ORDER
      mips: drop definitions of PTE_ORDER
      mips: rename PGD_ORDER to PGD_TABLE_ORDER
      nios2: drop definition of PTE_ORDER
      nios2: drop definition of PGD_ORDER
      loongarch: drop definition of PTE_ORDER
      loongarch: drop definition of PMD_ORDER
      loongarch: drop definition of PUD_ORDER
      loongarch: drop definition of PGD_ORDER
      parisc: rename PGD_ORDER to PGD_TABLE_ORDER
      xtensa: drop definition of PGD_ORDER
      ARM: head.S: rename PMD_ORDER to PMD_ENTRY_ORDER

Muchun Song (3):
      mm: memory_hotplug: enumerate all supported section flags
      mm: memory_hotplug: make hugetlb_optimize_vmemmap compatible with memmap_on_memory
      mm: hugetlb: remove minimum_order variable

Nicolas Saenz Julienne (1):
      mm/page_alloc: remotely drain per-cpu lists

Patrick Wang (5):
      mm: kmemleak: remove kmemleak_not_leak_phys() and the min_count argument to kmemleak_alloc_phys()
      mm: kmemleak: add OBJECT_PHYS flag for objects allocated with physical address
      mm: kmemleak: add rbtree and store physical address for objects allocated with PA
      mm: kmemleak: check physical address when scan
      mm: percpu: use kmemleak_ignore_phys() instead of kmemleak_free()

Peter Xu (5):
      mm/x86: remove dead code for hugetlbpage.c
      mm: avoid unnecessary page fault retires on shared memory types
      mm/mprotect: fix soft-dirty check in can_change_pte_writable()
      selftests: soft-dirty: add test for mprotect
      selftests: add soft-dirty into run_vmtests.sh

Qi Zheng (2):
      mm: memcontrol: add {pgscan,pgsteal}_{kswapd,direct} items in memory.stat of cgroup v2
      mm: hugetlb: kill set_huge_swap_pte_at()

Ralph Campbell (1):
      mm/hmm: add a test for cross device private faults

Roman Gushchin (8):
      mm: kmem: make mem_cgroup_from_obj() vmalloc()-safe
      mm: memcontrol: introduce mem_cgroup_ino() and mem_cgroup_get_from_ino()
      mm: shrinkers: introduce debugfs interface for memory shrinkers
      mm: shrinkers: provide shrinkers with names
      mm: docs: document shrinker debugfs
      tools: add memcg_shrinker.py
      mm: shrinkers: add scan interface for shrinker debugfs
      mm: memcontrol: do not miss MEMCG_MAX events for enforced allocations

SeongJae Park (15):
      Docs/admin-guide/damon/reclaim: remove a paragraph that been obsolete due to online tuning support
      mm/damon/{dbgfs,sysfs}: move target_has_pid() from dbgfs to damon.h
      mm/damon/reclaim: deduplicate 'commit_inputs' handling
      mm/damon/sysfs: deduplicate inputs applying
      mm/damon/reclaim: make 'enabled' checking timer simpler
      mm/damon/reclaim: add 'damon_reclaim_' prefix to 'enabled_store()'
      mm/damon/dbgfs: add and use mappings between 'schemes' action inputs and 'damos_action' values
      mm/damon/paddr: use a separate function for 'DAMOS_PAGEOUT' handling
      mm/damon/schemes: add 'LRU_PRIO' DAMOS action
      Docs/admin-guide/damon/sysfs: document 'LRU_PRIO' scheme action
      mm/damon/schemes: add 'LRU_DEPRIO' action
      Docs/admin-guide/damon/sysfs: document 'LRU_DEPRIO' scheme action
      mm/damon: introduce DAMON-based LRU-lists Sorting
      Docs/admin-guide/damon: add a document for DAMON_LRU_SORT
      mm/damon/lru_sort: fix potential memory leak in damon_lru_sort_init()

Sergey Senozhatsky (1):
      zram: do not lookup algorithm in backends table

Shiyang Ruan (15):
      dax: introduce holder for dax_device
      mm: factor helpers for memory_failure_dev_pagemap
      pagemap,pmem: introduce ->memory_failure()
      fsdax: introduce dax_lock_mapping_entry()
      mm: introduce mf_dax_kill_procs() for fsdax case
      xfs: implement ->notify_failure() for XFS
      fsdax: set a CoW flag when associate reflink mappings
      fsdax: output address in dax_iomap_pfn() and rename it
      fsdax: introduce dax_iomap_cow_copy()
      fsdax: replace mmap entry in case of CoW
      fsdax: add dax_iomap_cow_copy() for dax zero
      fsdax: dedup file range to use a compare function
      xfs: support CoW in fsdax mode
      xfs: add dax dedupe support
      xfs: fail dax mount if reflink is enabled on a partition

Sophia Gabriella (1):
      mm: Kconfig: fix typo

Tetsuo Handa (2):
      mm: shrinkers: fix double kfree on shrinker name
      mm: memcontrol: fix potential oom_lock recursion deadlock

Theodore Ts'o (1):
      mm/shmem: support FS_IOC_[SG]ETFLAGS in tmpfs

Tianyu Li (1):
      mm/mempolicy: fix get_nodes out of bound access

Uladzislau Rezki (Sony) (5):
      mm/vmalloc: make link_va()/unlink_va() common to different rb_root
      mm/vmalloc: extend __alloc_vmap_area() with extra arguments
      mm/vmalloc: initialize VA's list node after unlink
      mm/vmalloc: extend __find_vmap_area() with one more argument
      lib/test_vmalloc: switch to prandom_u32()

Uros Bizjak (1):
      mm/page_alloc: use try_cmpxchg in set_pfnblock_flags_mask

Vasily Averin (1):
      net: set proper memcg for net_init hooks allocations

Vincent Whitchurch (1):
      mm/smaps: add Pss_Dirty

Waiman Long (3):
      mm/kmemleak: use _irq lock/unlock variants in kmemleak_scan/_clear()
      mm/kmemleak: skip unlikely objects in kmemleak_scan() without taking lock
      mm/kmemleak: prevent soft lockup in first object iteration loop of kmemleak_scan()

William Lam (1):
      mm: compaction: include compound page count for scanning in pageblock isolation

Xiang Yang (1):
      mm/memcontrol.c: replace cgroup_memory_nokmem with mem_cgroup_kmem_disabled()

Xiang wangx (1):
      userfaultfd/selftests: fix typo in comment

Xiu Jianfeng (3):
      mm/mprotect: remove the redundant initialization for error
      writeback: cleanup bdi_sched_wait()
      writeback: remove inode_to_wb_is_valid()

XueBing Chen (1):
      mm: sparsemem: drop unexpected word 'a' in comments

Yang Shi (9):
      mm: rmap: use the correct parameter name for DEFINE_PAGE_VMA_WALK
      mm/page_vma_mapped.c: check possible huge PMD map with transhuge_vma_suitable()
      mm: khugepaged: check THP flag in hugepage_vma_check()
      mm: thp: consolidate vma size check to transhuge_vma_suitable
      mm: khugepaged: better comments for anon vma check in hugepage_vma_revalidate
      mm: thp: kill transparent_hugepage_active()
      mm: thp: kill __transhuge_page_enabled()
      mm: khugepaged: reorg some khugepaged helpers
      doc: proc: fix the description to THPeligible

Yang Yang (1):
      mm/page_alloc: make the annotations of available memory more accurate

Yixuan Cao (1):
      tools/vm/page_owner_sort.c: adjust the indent in is_need()

Yosry Ahmed (1):
      mm: vmpressure: don't count proactive reclaim in vmpressure

Yuanzheng Song (1):
      tools/vm/slabinfo: use alphabetic order when two values are equal

Yun-Ze Li (1):
      mm, docs: fix comments that mention mem_hotplug_end()

Zhou Guanghui (1):
      memblock,arm64: expand the static memblock memory table

 Documentation/ABI/testing/procfs-smaps_rollup      |   1 +
 Documentation/ABI/testing/sysfs-kernel-mm-ksm      |   2 +-
 Documentation/ABI/testing/sysfs-kernel-slab        |   4 +-
 Documentation/admin-guide/cgroup-v2.rst            |  31 +-
 Documentation/admin-guide/kernel-parameters.txt    |  32 +-
 Documentation/admin-guide/mm/concepts.rst          |   2 +-
 Documentation/admin-guide/mm/damon/index.rst       |   3 +-
 Documentation/admin-guide/mm/damon/lru_sort.rst    | 294 ++++++++++
 Documentation/admin-guide/mm/damon/reclaim.rst     |   8 +-
 Documentation/admin-guide/mm/damon/usage.rst       |  10 +-
 Documentation/admin-guide/mm/index.rst             |   1 +
 Documentation/admin-guide/mm/shrinker_debugfs.rst  | 135 +++++
 Documentation/admin-guide/sysctl/vm.rst            |   7 +-
 Documentation/core-api/index.rst                   |   2 +-
 Documentation/dev-tools/kmemleak.rst               |   1 -
 Documentation/filesystems/proc.rst                 |  11 +-
 Documentation/index.rst                            |   2 +-
 Documentation/{vm => mm}/active_mm.rst             |   0
 Documentation/{vm => mm}/arch_pgtable_helpers.rst  |   0
 Documentation/{vm => mm}/balance.rst               |   0
 Documentation/{vm => mm}/bootmem.rst               |   0
 Documentation/{vm => mm}/damon/api.rst             |   0
 Documentation/{vm => mm}/damon/design.rst          |   0
 Documentation/{vm => mm}/damon/faq.rst             |   0
 Documentation/{vm => mm}/damon/index.rst           |   0
 Documentation/{vm => mm}/free_page_reporting.rst   |   0
 Documentation/{vm => mm}/frontswap.rst             |   0
 Documentation/{vm => mm}/highmem.rst               |   0
 Documentation/{vm => mm}/hmm.rst                   |   0
 Documentation/{vm => mm}/hugetlbfs_reserv.rst      |   0
 Documentation/{vm => mm}/hwpoison.rst              |   0
 Documentation/{vm => mm}/index.rst                 |   0
 Documentation/{vm => mm}/ksm.rst                   |   0
 Documentation/{vm => mm}/memory-model.rst          |   2 +-
 Documentation/{vm => mm}/mmu_notifier.rst          |   0
 Documentation/{vm => mm}/numa.rst                  |   0
 Documentation/{vm => mm}/oom.rst                   |   0
 Documentation/{vm => mm}/overcommit-accounting.rst |   0
 Documentation/{vm => mm}/page_allocation.rst       |   0
 Documentation/{vm => mm}/page_cache.rst            |   0
 Documentation/{vm => mm}/page_frags.rst            |   0
 Documentation/{vm => mm}/page_migration.rst        |   0
 Documentation/{vm => mm}/page_owner.rst            |   0
 Documentation/{vm => mm}/page_reclaim.rst          |   0
 Documentation/{vm => mm}/page_table_check.rst      |   0
 Documentation/{vm => mm}/page_tables.rst           |   0
 Documentation/{vm => mm}/physical_memory.rst       |   0
 Documentation/{vm => mm}/process_addrs.rst         |   0
 Documentation/{vm => mm}/remap_file_pages.rst      |   0
 Documentation/{vm => mm}/shmfs.rst                 |   0
 Documentation/{vm => mm}/slab.rst                  |   0
 Documentation/{vm => mm}/slub.rst                  |   0
 Documentation/{vm => mm}/split_page_table_lock.rst |   0
 Documentation/{vm => mm}/swap.rst                  |   0
 Documentation/{vm => mm}/transhuge.rst             |   0
 Documentation/{vm => mm}/unevictable-lru.rst       |   0
 Documentation/{vm => mm}/vmalloc.rst               |   0
 .../{vm => mm}/vmalloced-kernel-stacks.rst         |   0
 Documentation/{vm => mm}/vmemmap_dedup.rst         |   0
 Documentation/{vm => mm}/z3fold.rst                |   0
 Documentation/{vm => mm}/zsmalloc.rst              |   0
 .../zh_CN/admin-guide/mm/damon/index.rst           |   2 +-
 .../zh_CN/admin-guide/mm/damon/reclaim.rst         |   2 +-
 .../zh_CN/admin-guide/mm/damon/usage.rst           |   8 +-
 .../translations/zh_CN/core-api/index.rst          |   2 +-
 Documentation/translations/zh_CN/index.rst         |   2 +-
 .../translations/zh_CN/{vm => mm}/active_mm.rst    |   2 +-
 .../translations/zh_CN/{vm => mm}/balance.rst      |   2 +-
 .../translations/zh_CN/{vm => mm}/damon/api.rst    |   2 +-
 .../translations/zh_CN/{vm => mm}/damon/design.rst |   2 +-
 .../translations/zh_CN/{vm => mm}/damon/faq.rst    |   2 +-
 .../translations/zh_CN/{vm => mm}/damon/index.rst  |   5 +-
 .../zh_CN/{vm => mm}/free_page_reporting.rst       |   2 +-
 .../translations/zh_CN/{vm => mm}/frontswap.rst    |   2 +-
 .../translations/zh_CN/{vm => mm}/highmem.rst      |   2 +-
 .../translations/zh_CN/{vm => mm}/hmm.rst          |   2 +-
 .../zh_CN/{vm => mm}/hugetlbfs_reserv.rst          |   2 +-
 .../translations/zh_CN/{vm => mm}/hwpoison.rst     |   2 +-
 .../translations/zh_CN/{vm => mm}/index.rst        |   2 +-
 .../translations/zh_CN/{vm => mm}/ksm.rst          |   2 +-
 .../translations/zh_CN/{vm => mm}/memory-model.rst |   4 +-
 .../translations/zh_CN/{vm => mm}/mmu_notifier.rst |   2 +-
 .../translations/zh_CN/{vm => mm}/numa.rst         |   2 +-
 .../zh_CN/{vm => mm}/overcommit-accounting.rst     |   2 +-
 .../translations/zh_CN/{vm => mm}/page_frags.rst   |   2 +-
 .../translations/zh_CN/{vm => mm}/page_owner.rst   |   2 +-
 .../zh_CN/{vm => mm}/page_table_check.rst          |   2 +-
 .../zh_CN/{vm => mm}/remap_file_pages.rst          |   2 +-
 .../zh_CN/{vm => mm}/split_page_table_lock.rst     |   2 +-
 .../translations/zh_CN/{vm => mm}/z3fold.rst       |   2 +-
 .../translations/zh_CN/{vm => mm}/zsmalloc.rst     |   2 +-
 Documentation/translations/zh_TW/index.rst         |   2 +-
 Documentation/vm/.gitignore                        |   3 -
 MAINTAINERS                                        |  12 +-
 arch/alpha/include/asm/pgtable.h                   |  17 -
 arch/alpha/mm/fault.c                              |   4 +
 arch/alpha/mm/init.c                               |  22 +
 arch/arc/include/asm/pgtable-bits-arcv2.h          |  18 -
 arch/arc/mm/fault.c                                |   4 +
 arch/arc/mm/mmap.c                                 |  20 +
 arch/arm/include/asm/pgtable.h                     |  17 -
 arch/arm/kernel/head.S                             |  34 +-
 arch/arm/lib/uaccess_with_memcpy.c                 |   2 +-
 arch/arm/mm/fault.c                                |   4 +
 arch/arm/mm/mmu.c                                  |  20 +
 arch/arm64/Kconfig                                 |   1 -
 arch/arm64/include/asm/hugetlb.h                   |   3 -
 arch/arm64/include/asm/memory.h                    |   9 +
 arch/arm64/include/asm/pgtable-prot.h              |  18 -
 arch/arm64/mm/fault.c                              |   4 +
 arch/arm64/mm/hugetlbpage.c                        |  56 +-
 arch/arm64/mm/mmap.c                               |  21 +
 arch/csky/include/asm/pgalloc.h                    |   2 +-
 arch/csky/include/asm/pgtable.h                    |  24 +-
 arch/csky/mm/fault.c                               |   4 +
 arch/csky/mm/init.c                                |  20 +
 arch/hexagon/include/asm/pgtable.h                 |  27 -
 arch/hexagon/mm/init.c                             |  42 ++
 arch/hexagon/mm/vm_fault.c                         |   4 +
 arch/ia64/include/asm/pgtable.h                    |  18 -
 arch/ia64/mm/fault.c                               |   4 +
 arch/ia64/mm/init.c                                |  28 +-
 arch/loongarch/Kconfig                             |   2 +-
 arch/loongarch/include/asm/pgalloc.h               |   6 +-
 arch/loongarch/include/asm/pgtable-bits.h          |  19 -
 arch/loongarch/include/asm/pgtable.h               |  27 +-
 arch/loongarch/kernel/asm-offsets.c                |   6 -
 arch/loongarch/mm/cache.c                          |  46 ++
 arch/loongarch/mm/pgtable.c                        |   2 +-
 arch/loongarch/mm/tlbex.S                          |   6 +-
 arch/m68k/include/asm/mcf_pgtable.h                |  59 --
 arch/m68k/include/asm/motorola_pgtable.h           |  29 -
 arch/m68k/include/asm/sun3_pgtable.h               |  23 -
 arch/m68k/mm/fault.c                               |   4 +
 arch/m68k/mm/mcfmmu.c                              |  55 ++
 arch/m68k/mm/motorola.c                            |  29 +
 arch/m68k/mm/sun3mmu.c                             |  20 +
 arch/microblaze/include/asm/pgtable.h              |  17 -
 arch/microblaze/mm/fault.c                         |   4 +
 arch/microblaze/mm/init.c                          |  20 +
 arch/mips/include/asm/pgalloc.h                    |   8 +-
 arch/mips/include/asm/pgtable-32.h                 |  19 +-
 arch/mips/include/asm/pgtable-64.h                 |  61 +--
 arch/mips/include/asm/pgtable.h                    |  22 -
 arch/mips/kernel/asm-offsets.c                     |   5 -
 arch/mips/kernel/mips-mt.c                         |   4 +-
 arch/mips/kvm/mmu.c                                |   2 +-
 arch/mips/mm/cache.c                               |   3 +
 arch/mips/mm/fault.c                               |   4 +
 arch/mips/mm/pgtable.c                             |   2 +-
 arch/mips/mm/tlbex.c                               |  14 +-
 arch/nios2/include/asm/pgtable.h                   |  23 +-
 arch/nios2/mm/fault.c                              |   4 +
 arch/nios2/mm/init.c                               |  25 +-
 arch/nios2/mm/pgtable.c                            |   2 +-
 arch/openrisc/include/asm/pgtable.h                |  18 -
 arch/openrisc/mm/fault.c                           |   4 +
 arch/openrisc/mm/init.c                            |  20 +
 arch/parisc/include/asm/pgalloc.h                  |   6 +-
 arch/parisc/include/asm/pgtable.h                  |  26 +-
 arch/parisc/mm/fault.c                             |   4 +
 arch/parisc/mm/init.c                              |  20 +
 arch/powerpc/Kconfig                               |   1 -
 arch/powerpc/include/asm/book3s/64/pgtable.h       |   2 +-
 arch/powerpc/include/asm/pgtable.h                 |  20 +-
 arch/powerpc/mm/copro_fault.c                      |   5 +
 arch/powerpc/mm/fault.c                            |   5 +
 arch/powerpc/mm/pgtable.c                          |  24 +
 arch/riscv/include/asm/pgtable.h                   |  20 -
 arch/riscv/mm/fault.c                              |   4 +
 arch/riscv/mm/init.c                               |  20 +
 arch/s390/include/asm/pgtable.h                    |  17 -
 arch/s390/mm/fault.c                               |  12 +
 arch/s390/mm/mmap.c                                |  20 +
 arch/sh/include/asm/pgtable.h                      |  17 -
 arch/sh/mm/fault.c                                 |   4 +
 arch/sh/mm/mmap.c                                  |  20 +
 arch/sparc/Kconfig                                 |   1 -
 arch/sparc/include/asm/pgtable_32.h                |  19 -
 arch/sparc/include/asm/pgtable_64.h                |  19 -
 arch/sparc/mm/fault_32.c                           |   4 +
 arch/sparc/mm/fault_64.c                           |   5 +
 arch/sparc/mm/init_32.c                            |  20 +
 arch/sparc/mm/init_64.c                            |   3 +
 arch/um/include/asm/pgtable.h                      |  17 -
 arch/um/kernel/mem.c                               |  20 +
 arch/um/kernel/trap.c                              |   4 +
 arch/x86/Kconfig                                   |   1 -
 arch/x86/include/asm/mem_encrypt.h                 |   2 +
 arch/x86/include/asm/pgtable_types.h               |  19 -
 arch/x86/kvm/mmu/mmu.c                             |   2 +-
 arch/x86/mm/fault.c                                |   4 +
 arch/x86/mm/hugetlbpage.c                          |  39 --
 arch/x86/mm/mem_encrypt_amd.c                      |   6 +-
 arch/x86/mm/pgprot.c                               |  28 +
 arch/x86/um/mem_32.c                               |   2 +-
 arch/xtensa/include/asm/pgalloc.h                  |   2 +-
 arch/xtensa/include/asm/pgtable.h                  |  19 -
 arch/xtensa/mm/fault.c                             |   4 +
 arch/xtensa/mm/init.c                              |  22 +
 drivers/android/binder_alloc.c                     |  37 +-
 drivers/android/binder_alloc.h                     |   2 +-
 drivers/android/binder_alloc_selftest.c            |   2 +-
 drivers/block/zram/zcomp.c                         |  11 +-
 drivers/block/zram/zram_drv.c                      |   6 +-
 drivers/dax/super.c                                |  67 ++-
 drivers/gpu/drm/amd/amdkfd/kfd_migrate.c           |  34 +-
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c       |   3 +-
 drivers/gpu/drm/msm/msm_gem_shrinker.c             |   2 +-
 drivers/gpu/drm/panfrost/panfrost_gem_shrinker.c   |   2 +-
 drivers/gpu/drm/ttm/ttm_pool.c                     |   2 +-
 drivers/md/bcache/btree.c                          |   2 +-
 drivers/md/dm-bufio.c                              |   3 +-
 drivers/md/dm-zoned-metadata.c                     |   4 +-
 drivers/md/dm.c                                    |   2 +-
 drivers/md/raid5.c                                 |   2 +-
 drivers/misc/vmw_balloon.c                         |   2 +-
 drivers/nvdimm/pmem.c                              |  17 +
 drivers/of/fdt.c                                   |   2 +-
 drivers/virtio/virtio_balloon.c                    |   2 +-
 drivers/virtio/virtio_mem.c                        |   6 +-
 drivers/xen/xenbus/xenbus_probe_backend.c          |   2 +-
 fs/btrfs/super.c                                   |   2 +
 fs/dax.c                                           | 401 +++++++++++---
 fs/erofs/super.c                                   |  10 +-
 fs/erofs/utils.c                                   |   2 +-
 fs/ext2/super.c                                    |   7 +-
 fs/ext4/extents_status.c                           |   3 +-
 fs/ext4/super.c                                    |   9 +-
 fs/f2fs/super.c                                    |   2 +-
 fs/gfs2/glock.c                                    |   2 +-
 fs/gfs2/main.c                                     |   2 +-
 fs/hugetlbfs/inode.c                               |  13 +-
 fs/jbd2/journal.c                                  |   3 +-
 fs/mbcache.c                                       |   2 +-
 fs/nfs/nfs42xattr.c                                |   7 +-
 fs/nfs/super.c                                     |   2 +-
 fs/nfsd/filecache.c                                |   2 +-
 fs/nfsd/nfscache.c                                 |   3 +-
 fs/proc/task_mmu.c                                 |   7 +-
 fs/quota/dquot.c                                   |   2 +-
 fs/remap_range.c                                   |  31 +-
 fs/super.c                                         |   6 +-
 fs/ubifs/super.c                                   |   2 +-
 fs/userfaultfd.c                                   |   6 +-
 fs/xfs/Makefile                                    |   5 +
 fs/xfs/xfs_buf.c                                   |  13 +-
 fs/xfs/xfs_file.c                                  |  35 +-
 fs/xfs/xfs_fsops.c                                 |   3 +
 fs/xfs/xfs_icache.c                                |   2 +-
 fs/xfs/xfs_inode.c                                 |  69 ++-
 fs/xfs/xfs_inode.h                                 |   1 +
 fs/xfs/xfs_iomap.c                                 |  30 +-
 fs/xfs/xfs_iomap.h                                 |   1 +
 fs/xfs/xfs_mount.h                                 |   1 +
 fs/xfs/xfs_notify_failure.c                        | 220 ++++++++
 fs/xfs/xfs_qm.c                                    |   3 +-
 fs/xfs/xfs_reflink.c                               |  12 +-
 fs/xfs/xfs_super.c                                 |   6 +-
 fs/xfs/xfs_super.h                                 |   1 +
 include/linux/backing-dev.h                        |  23 -
 include/linux/damon.h                              |  25 +-
 include/linux/dax.h                                |  56 +-
 include/linux/fs.h                                 |  12 +-
 include/linux/highmem.h                            |  23 +-
 include/linux/hmm.h                                |   4 +-
 include/linux/huge_mm.h                            |  94 ++--
 include/linux/hugetlb.h                            |  28 +-
 include/linux/khugepaged.h                         |  30 --
 include/linux/kmemleak.h                           |   8 +-
 include/linux/memcontrol.h                         |  74 ++-
 include/linux/memory_hotplug.h                     |   9 -
 include/linux/memremap.h                           |  35 +-
 include/linux/migrate.h                            |   1 +
 include/linux/mm.h                                 | 133 ++---
 include/linux/mm_types.h                           |   7 +
 include/linux/mmu_notifier.h                       |   2 +-
 include/linux/mmzone.h                             | 159 +++++-
 include/linux/page-flags.h                         |  23 +
 include/linux/pagemap.h                            |   2 -
 include/linux/pagevec.h                            |   1 -
 include/linux/pgtable.h                            |  28 +
 include/linux/rmap.h                               |   4 +-
 include/linux/sched/mm.h                           |   4 +-
 include/linux/shmem_fs.h                           |  11 +
 include/linux/shrinker.h                           |  33 +-
 include/linux/swap.h                               |  12 +-
 include/linux/swapops.h                            |  12 +-
 kernel/rcu/tree.c                                  |   2 +-
 lib/Kconfig.debug                                  |   9 +
 lib/test_free_pages.c                              |   2 +-
 lib/test_hmm.c                                     | 347 +++++++++---
 lib/test_hmm_uapi.h                                |  19 +-
 lib/test_vmalloc.c                                 |  15 +-
 mm/Kconfig                                         |   7 +-
 mm/Makefile                                        |   1 +
 mm/cma_debug.c                                     |   2 +-
 mm/compaction.c                                    |   5 +-
 mm/damon/Kconfig                                   |   8 +
 mm/damon/Makefile                                  |   1 +
 mm/damon/dbgfs.c                                   |  79 ++-
 mm/damon/lru_sort.c                                | 548 +++++++++++++++++++
 mm/damon/ops-common.c                              |  42 ++
 mm/damon/ops-common.h                              |   2 +
 mm/damon/paddr.c                                   |  60 ++-
 mm/damon/reclaim.c                                 |  44 +-
 mm/damon/sysfs.c                                   |  69 +--
 mm/debug_vm_pgtable.c                              |   2 +-
 mm/filemap.c                                       |  18 +-
 mm/frontswap.c                                     |   2 +-
 mm/gup.c                                           |  90 +++-
 mm/gup_test.c                                      |   2 +-
 mm/highmem.c                                       |   2 +-
 mm/huge_memory.c                                   | 186 ++++---
 mm/hugetlb.c                                       | 169 +++---
 mm/hugetlb_cgroup.c                                |   1 +
 mm/hugetlb_vmemmap.c                               |  68 ++-
 mm/internal.h                                      |  19 +
 mm/kasan/common.c                                  |   8 +-
 mm/kasan/hw_tags.c                                 |  32 +-
 mm/kasan/kasan.h                                   |   3 +-
 mm/kasan/report.c                                  |  12 +-
 mm/kfence/core.c                                   |   4 +-
 mm/khugepaged.c                                    | 230 ++++----
 mm/kmemleak.c                                      | 260 ++++++---
 mm/ksm.c                                           |  10 +-
 mm/list_lru.c                                      |   2 +-
 mm/madvise.c                                       |  14 +-
 mm/memblock.c                                      |  28 +-
 mm/memcontrol.c                                    | 224 +++++---
 mm/memory-failure.c                                | 330 ++++++++----
 mm/memory.c                                        |  27 +-
 mm/memory_hotplug.c                                |  57 +-
 mm/mempolicy.c                                     |  10 +-
 mm/mempool.c                                       |   2 +-
 mm/memremap.c                                      |  16 +-
 mm/migrate.c                                       |  43 +-
 mm/migrate_device.c                                |  80 ++-
 mm/mlock.c                                         |   2 +-
 mm/mmap.c                                          |  53 +-
 mm/mprotect.c                                      |  81 ++-
 mm/nommu.c                                         |   2 +-
 mm/page_alloc.c                                    | 439 +++++++++------
 mm/page_vma_mapped.c                               |   5 +-
 mm/percpu.c                                        |   6 +-
 mm/rmap.c                                          | 114 ++--
 mm/shmem.c                                         |  78 ++-
 mm/shrinker_debug.c                                | 286 ++++++++++
 mm/slab.c                                          |  10 -
 mm/sparse-vmemmap.c                                |  10 +-
 mm/sparse.c                                        |   2 +-
 mm/swap.c                                          | 599 ++++++++++-----------
 mm/swap.h                                          |  19 +-
 mm/swap_state.c                                    |  56 +-
 mm/swapfile.c                                      |  31 +-
 mm/util.c                                          |   2 +-
 mm/vmalloc.c                                       | 148 ++---
 mm/vmscan.c                                        | 332 +++++++-----
 mm/workingset.c                                    |   2 +-
 mm/zsmalloc.c                                      |  16 +-
 net/core/net_namespace.c                           |   7 +
 net/core/page_pool.c                               |   2 +-
 net/sunrpc/auth.c                                  |   2 +-
 tools/cgroup/memcg_shrinker.py                     |  71 +++
 tools/testing/memblock/linux/kmemleak.h            |   2 +-
 tools/testing/selftests/vm/Makefile                |   1 +
 tools/testing/selftests/vm/hmm-tests.c             | 325 ++++++++++-
 tools/testing/selftests/vm/hugepage-mremap.c       |   2 +-
 tools/testing/selftests/vm/hugetlb-madvise.c       |   5 +-
 tools/testing/selftests/vm/mrelease_test.c         |  16 +-
 tools/testing/selftests/vm/run_vmtests.sh          |  15 +-
 tools/testing/selftests/vm/soft-dirty.c            |  67 ++-
 tools/testing/selftests/vm/test_hmm.sh             |  24 +-
 tools/testing/selftests/vm/userfaultfd.c           |   6 +-
 tools/testing/selftests/vm/va_128TBswitch.c        |   8 +-
 tools/testing/selftests/vm/va_128TBswitch.sh       |  54 ++
 tools/vm/page_owner_sort.c                         |  30 +-
 tools/vm/slabinfo.c                                |  32 +-
 378 files changed, 7159 insertions(+), 3215 deletions(-)
 create mode 100644 Documentation/admin-guide/mm/damon/lru_sort.rst
 create mode 100644 Documentation/admin-guide/mm/shrinker_debugfs.rst
 rename Documentation/{vm => mm}/active_mm.rst (100%)
 rename Documentation/{vm => mm}/arch_pgtable_helpers.rst (100%)
 rename Documentation/{vm => mm}/balance.rst (100%)
 rename Documentation/{vm => mm}/bootmem.rst (100%)
 rename Documentation/{vm => mm}/damon/api.rst (100%)
 rename Documentation/{vm => mm}/damon/design.rst (100%)
 rename Documentation/{vm => mm}/damon/faq.rst (100%)
 rename Documentation/{vm => mm}/damon/index.rst (100%)
 rename Documentation/{vm => mm}/free_page_reporting.rst (100%)
 rename Documentation/{vm => mm}/frontswap.rst (100%)
 rename Documentation/{vm => mm}/highmem.rst (100%)
 rename Documentation/{vm => mm}/hmm.rst (100%)
 rename Documentation/{vm => mm}/hugetlbfs_reserv.rst (100%)
 rename Documentation/{vm => mm}/hwpoison.rst (100%)
 rename Documentation/{vm => mm}/index.rst (100%)
 rename Documentation/{vm => mm}/ksm.rst (100%)
 rename Documentation/{vm => mm}/memory-model.rst (99%)
 rename Documentation/{vm => mm}/mmu_notifier.rst (100%)
 rename Documentation/{vm => mm}/numa.rst (100%)
 rename Documentation/{vm => mm}/oom.rst (100%)
 rename Documentation/{vm => mm}/overcommit-accounting.rst (100%)
 rename Documentation/{vm => mm}/page_allocation.rst (100%)
 rename Documentation/{vm => mm}/page_cache.rst (100%)
 rename Documentation/{vm => mm}/page_frags.rst (100%)
 rename Documentation/{vm => mm}/page_migration.rst (100%)
 rename Documentation/{vm => mm}/page_owner.rst (100%)
 rename Documentation/{vm => mm}/page_reclaim.rst (100%)
 rename Documentation/{vm => mm}/page_table_check.rst (100%)
 rename Documentation/{vm => mm}/page_tables.rst (100%)
 rename Documentation/{vm => mm}/physical_memory.rst (100%)
 rename Documentation/{vm => mm}/process_addrs.rst (100%)
 rename Documentation/{vm => mm}/remap_file_pages.rst (100%)
 rename Documentation/{vm => mm}/shmfs.rst (100%)
 rename Documentation/{vm => mm}/slab.rst (100%)
 rename Documentation/{vm => mm}/slub.rst (100%)
 rename Documentation/{vm => mm}/split_page_table_lock.rst (100%)
 rename Documentation/{vm => mm}/swap.rst (100%)
 rename Documentation/{vm => mm}/transhuge.rst (100%)
 rename Documentation/{vm => mm}/unevictable-lru.rst (100%)
 rename Documentation/{vm => mm}/vmalloc.rst (100%)
 rename Documentation/{vm => mm}/vmalloced-kernel-stacks.rst (100%)
 rename Documentation/{vm => mm}/vmemmap_dedup.rst (100%)
 rename Documentation/{vm => mm}/z3fold.rst (100%)
 rename Documentation/{vm => mm}/zsmalloc.rst (100%)
 rename Documentation/translations/zh_CN/{vm => mm}/active_mm.rst (98%)
 rename Documentation/translations/zh_CN/{vm => mm}/balance.rst (99%)
 rename Documentation/translations/zh_CN/{vm => mm}/damon/api.rst (91%)
 rename Documentation/translations/zh_CN/{vm => mm}/damon/design.rst (98%)
 rename Documentation/translations/zh_CN/{vm => mm}/damon/faq.rst (98%)
 rename Documentation/translations/zh_CN/{vm => mm}/damon/index.rst (90%)
 rename Documentation/translations/zh_CN/{vm => mm}/free_page_reporting.rst (97%)
 rename Documentation/translations/zh_CN/{vm => mm}/frontswap.rst (99%)
 rename Documentation/translations/zh_CN/{vm => mm}/highmem.rst (99%)
 rename Documentation/translations/zh_CN/{vm => mm}/hmm.rst (99%)
 rename Documentation/translations/zh_CN/{vm => mm}/hugetlbfs_reserv.rst (99%)
 rename Documentation/translations/zh_CN/{vm => mm}/hwpoison.rst (99%)
 rename Documentation/translations/zh_CN/{vm => mm}/index.rst (96%)
 rename Documentation/translations/zh_CN/{vm => mm}/ksm.rst (98%)
 rename Documentation/translations/zh_CN/{vm => mm}/memory-model.rst (98%)
 rename Documentation/translations/zh_CN/{vm => mm}/mmu_notifier.rst (98%)
 rename Documentation/translations/zh_CN/{vm => mm}/numa.rst (99%)
 rename Documentation/translations/zh_CN/{vm => mm}/overcommit-accounting.rst (98%)
 rename Documentation/translations/zh_CN/{vm => mm}/page_frags.rst (97%)
 rename Documentation/translations/zh_CN/{vm => mm}/page_owner.rst (99%)
 rename Documentation/translations/zh_CN/{vm => mm}/page_table_check.rst (97%)
 rename Documentation/translations/zh_CN/{vm => mm}/remap_file_pages.rst (97%)
 rename Documentation/translations/zh_CN/{vm => mm}/split_page_table_lock.rst (98%)
 rename Documentation/translations/zh_CN/{vm => mm}/z3fold.rst (96%)
 rename Documentation/translations/zh_CN/{vm => mm}/zsmalloc.rst (98%)
 delete mode 100644 Documentation/vm/.gitignore
 create mode 100644 fs/xfs/xfs_notify_failure.c
 create mode 100644 mm/damon/lru_sort.c
 create mode 100644 mm/shrinker_debug.c
 create mode 100644 tools/cgroup/memcg_shrinker.py
 create mode 100755 tools/testing/selftests/vm/va_128TBswitch.sh

Comments

Linus Torvalds Aug. 5, 2022, 11:20 p.m. UTC | #1
On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> There are 6-7 conflicts with your tree here.  All very minor, mainly
> related to the rename of Documentation/vm to Documentation/mm.

What? No. Yeah, the doc conflicts were annoying enough, with the
Chinese translations having incorrect pointers to the original sources
both before and after the move in the MM tree.

But that xfs conflict was positively nasty and definitely not minor.
Had to look up Darrick Wong's "here's how to do it" message from the
linux-next days.

So I think I got it all right, but "very minor" it wasn't.

              Linus
Linus Torvalds Aug. 5, 2022, 11:32 p.m. UTC | #2
On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <akpm@linux-foundation.org> wrote:
>
> - memcg debug/visibility work from Roman Gushchin

Well, not just memcg.

There's that new CONFIG_SHRINKER_DEBUG too.

Which looks like yet another "people add Kconfig options incorrectly".

We don't make new features "default y" unless there's some truly
pressing reason for it (ie "99.9% of all people will want this" or "we
used to always compile this in, now it's optional").

And shouldn't that thing be under the DEBUG_VM heading anyway?

I removed the completely bogus and inappropriate "default y".

People, please stop doing that 'default y' thing.

I realize that everybody always thinks their own code is *sooo*
important that it should be enabled everywhere, but if we've gone 30
years without it in the past, maybe it's not so critical after all,
and maybe people shouldn't randomly enable it unless they WANT it. Ok?

The main reasons for 'default y' tend to be literally

 - this used to be unconditional, now we have a config variable for
it, so let's make it 'default y' so that people don't suddenly lose
functionality

 - this feature truly does cure cancer

 - this isn't actually a feature, but is a gating question to other
features that you may want to just shut up

That last case is mainly used by the network driver subsystem, where
it asks 'Do you want to see drivers by vendor Xyzzy?', and it defaults
to indeed show those options. But admittedly that network driver case
is also _partly_ guided by that first case, ie it has often been
something where a group of drivers were moved to be under a "do you
care about this vendor" situation.

                     Linus
pr-tracker-bot@kernel.org Aug. 5, 2022, 11:40 p.m. UTC | #3
The pull request you sent on Wed, 3 Aug 2022 13:35:41 -0700:

> git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm tags/mm-stable-2022-08-03

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/6614a3c3164a5df2b54abb0b3559f51041cf705b

Thank you!
Roman Gushchin Aug. 6, 2022, 12:04 a.m. UTC | #4
On Fri, Aug 05, 2022 at 04:32:34PM -0700, Linus Torvalds wrote:
> On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> >
> > - memcg debug/visibility work from Roman Gushchin
> 
> Well, not just memcg.
> 
> There's that new CONFIG_SHRINKER_DEBUG too.
> 
> Which looks like yet another "people add Kconfig options incorrectly".
> 
> We don't make new features "default y" unless there's some truly
> pressing reason for it (ie "99.9% of all people will want this" or "we
> used to always compile this in, now it's optional").

Hi Linus!

It actually was 'default n' in one of the earlier version of the patchset
and has been switched to 'default y' based on the following feedback from
Dave Chinner (https://lore.kernel.org/lkml/YmiWK56bOHyrr64u@rh/):

    No. The argument that "if we turn it off there's no overhead" means
    one of two things:

    1. nobody turns it on and it never gets tested and so bitrots and is
    useless, or
    2. distro's all turn it on because some tool they ship or customer
    they ship to wants it.

    Either way, hiding it behind a config option is not an acceptible
    solution for mering poorly thought out infrastructure.

Personally I think that the feature is not that useful for the majority
of users (this is why default was n), but it's not adding much of the
overhead, so I had no strong reasons to oppose Dave.
Cc'ing him just in case.

Thanks!
Andrew Morton Aug. 6, 2022, 12:05 a.m. UTC | #5
On Fri, 5 Aug 2022 16:20:44 -0700 Linus Torvalds <torvalds@linux-foundation.org> wrote:

> On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> >
> > There are 6-7 conflicts with your tree here.  All very minor, mainly
> > related to the rename of Documentation/vm to Documentation/mm.
> 
> What? No. Yeah, the doc conflicts were annoying enough, with the
> Chinese translations having incorrect pointers to the original sources
> both before and after the move in the MM tree.
> 
> But that xfs conflict was positively nasty and definitely not minor.
> Had to look up Darrick Wong's "here's how to do it" message from the
> linux-next days.
> 
> So I think I got it all right, but "very minor" it wasn't.

Huh.  sorry, there was no XFS conflict with your tree when I did my
test merge and I don't recall seeing emails from Darrick or Stephen on
this one :(

I guess that taking a peek at linux-next would be a good way to get at
the tested resolution for these things?

Emails which might prove useful later in this merge window are:


EIF tree: https://lkml.kernel.org/r/20220726194643.47f6c020@canb.auug.org.au
bitmap tree: https://lkml.kernel.org/r/20220726194151.71e511e7@canb.auug.org.au
crypto: https://lkml.kernel.org/r/20220718195342.6817be63@canb.auug.org.au
bitmap again: https://lkml.kernel.org/r/20220715211409.4fba48e8@canb.auug.org.au
Andrew Morton Aug. 6, 2022, 12:07 a.m. UTC | #6
On Fri, 5 Aug 2022 17:04:28 -0700 Roman Gushchin <roman.gushchin@linux.dev> wrote:

> On Fri, Aug 05, 2022 at 04:32:34PM -0700, Linus Torvalds wrote:
> > On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> > >
> > > - memcg debug/visibility work from Roman Gushchin
> > 
> > Well, not just memcg.
> > 
> > There's that new CONFIG_SHRINKER_DEBUG too.
> > 
> > Which looks like yet another "people add Kconfig options incorrectly".
> > 
> > We don't make new features "default y" unless there's some truly
> > pressing reason for it (ie "99.9% of all people will want this" or "we
> > used to always compile this in, now it's optional").
> 
> Hi Linus!
> 
> It actually was 'default n' in one of the earlier version of the patchset
> and has been switched to 'default y' based on the following feedback from
> Dave Chinner (https://lore.kernel.org/lkml/YmiWK56bOHyrr64u@rh/):
> 
>     No. The argument that "if we turn it off there's no overhead" means
>     one of two things:
> 
>     1. nobody turns it on and it never gets tested and so bitrots and is
>     useless, or
>     2. distro's all turn it on because some tool they ship or customer
>     they ship to wants it.
> 
>     Either way, hiding it behind a config option is not an acceptible
>     solution for mering poorly thought out infrastructure.
> 
> Personally I think that the feature is not that useful for the majority
> of users (this is why default was n), but it's not adding much of the
> overhead, so I had no strong reasons to oppose Dave.
> Cc'ing him just in case.
> 

We should have changelogged these considerations.

I've asked Joe if checkpatch can get a "default y" detector, to draw
attention to this in the future.
Joe Perches Aug. 6, 2022, 1:43 a.m. UTC | #7
On Fri, 2022-08-05 at 17:07 -0700, Andrew Morton wrote:
> On Fri, 5 Aug 2022 17:04:28 -0700 Roman Gushchin <roman.gushchin@linux.dev> wrote:
> 
> > On Fri, Aug 05, 2022 at 04:32:34PM -0700, Linus Torvalds wrote:
> > > On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <akpm@linux-foundation.org> wrote:
> > > > 
> > > > - memcg debug/visibility work from Roman Gushchin
> > > 
> > > Well, not just memcg.
> > > 
> > > There's that new CONFIG_SHRINKER_DEBUG too.
> > > 
> > > Which looks like yet another "people add Kconfig options incorrectly".
> > > 
> > > We don't make new features "default y" unless there's some truly
> > > pressing reason for it (ie "99.9% of all people will want this" or "we
> > > used to always compile this in, now it's optional").
> > 
> > Hi Linus!
> > 
> > It actually was 'default n' in one of the earlier version of the patchset
> > and has been switched to 'default y' based on the following feedback from
> > Dave Chinner (https://lore.kernel.org/lkml/YmiWK56bOHyrr64u@rh/):
> > 
> >     No. The argument that "if we turn it off there's no overhead" means
> >     one of two things:
> > 
> >     1. nobody turns it on and it never gets tested and so bitrots and is
> >     useless, or
> >     2. distro's all turn it on because some tool they ship or customer
> >     they ship to wants it.
> > 
> >     Either way, hiding it behind a config option is not an acceptible
> >     solution for mering poorly thought out infrastructure.
> > 
> > Personally I think that the feature is not that useful for the majority
> > of users (this is why default was n), but it's not adding much of the
> > overhead, so I had no strong reasons to oppose Dave.
> > Cc'ing him just in case.
> > 
> 
> We should have changelogged these considerations.
> 
> I've asked Joe if checkpatch can get a "default y" detector, to draw
> attention to this in the future.

Perhaps:
---
 scripts/checkpatch.pl | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index bf7c5abeefaad..1abec0cd217e6 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3523,6 +3523,19 @@ sub process {
 			}
 		}
 
+# check new Kconfig entries for default=y
+# Only applies when adding the entry originally and if the entry is not
+# conditional on anything like default y if <foo>
+		if ($realfile =~ /Kconfig/ &&
+		    !$file &&
+		    $line =~ /\+\s*default\s+y\s*$/i) {
+			if (WARN("KCONFIG_DEFAULT_Y",
+				 "Kconfig entries should generally not be default y\n" . $herecurr) &&
+			    $fix) {
+				$fixed[$fixlinenr] =~ s/default(\s+)y/default${1}n/;
+			}
+		}
+
 # check MAINTAINERS entries
 		if ($realfile =~ /^MAINTAINERS$/) {
 # check MAINTAINERS entries for the right form