2022-08-03 21:21:47

by Andrew Morton

[permalink] [raw]
Subject: [GIT PULL] MM updates for 5.20-rc1

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



2022-08-05 23:38:57

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] MM updates for 5.20-rc1

On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <[email protected]> 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

2022-08-05 23:40:31

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] MM updates for 5.20-rc1

On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <[email protected]> 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

2022-08-05 23:40:59

by pr-tracker-bot

[permalink] [raw]
Subject: Re: [GIT PULL] MM updates for 5.20-rc1

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!

--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/prtracker.html

2022-08-06 00:13:37

by Andrew Morton

[permalink] [raw]
Subject: Re: [GIT PULL] MM updates for 5.20-rc1

On Fri, 5 Aug 2022 16:20:44 -0700 Linus Torvalds <[email protected]> wrote:

> On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <[email protected]> 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/[email protected]
bitmap tree: https://lkml.kernel.org/r/[email protected]
crypto: https://lkml.kernel.org/r/[email protected]
bitmap again: https://lkml.kernel.org/r/[email protected]

2022-08-06 00:27:53

by Roman Gushchin

[permalink] [raw]
Subject: Re: [GIT PULL] MM updates for 5.20-rc1

On Fri, Aug 05, 2022 at 04:32:34PM -0700, Linus Torvalds wrote:
> On Wed, Aug 3, 2022 at 1:35 PM Andrew Morton <[email protected]> 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!

2022-08-06 00:39:12

by Andrew Morton

[permalink] [raw]
Subject: Re: [GIT PULL] MM updates for 5.20-rc1

On Fri, 5 Aug 2022 17:04:28 -0700 Roman Gushchin <[email protected]> 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 <[email protected]> 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.

2022-08-06 02:12:17

by Joe Perches

[permalink] [raw]
Subject: Re: [GIT PULL] MM updates for 5.20-rc1

On Fri, 2022-08-05 at 17:07 -0700, Andrew Morton wrote:
> On Fri, 5 Aug 2022 17:04:28 -0700 Roman Gushchin <[email protected]> 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 <[email protected]> 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

2022-08-07 05:43:16

by Yury Norov

[permalink] [raw]
Subject: Re: [GIT PULL] MM updates for 5.20-rc1

Hi Andrew,

> Sander Vanheule (5):
> x86/cacheinfo: move shared cache map definitions
> cpumask: add UP optimised for_each_*_cpu versions
> cpumask: Fix invalid uniprocessor mask assumption
> lib/test: introduce cpumask KUnit test suite
> cpumask: update cpumask_next_wrap() signature

I think, Sander has a new version for this:

https://lore.kernel.org/all/YuV1J7Zt+NzkrWeV@yury-laptop/T/#ma2d7613315f331fac83d8bd5ae22ef740945569ao

Thanks,
Yury

2022-08-07 20:28:13

by Sander Vanheule

[permalink] [raw]
Subject: Re: [GIT PULL] MM updates for 5.20-rc1

Hi Yury, Andrew,

On Sat, 2022-08-06 at 22:14 -0700, Yury Norov wrote:
> Hi Andrew,
>
> > Sander Vanheule (5):
> >       x86/cacheinfo: move shared cache map definitions
> >       cpumask: add UP optimised for_each_*_cpu versions
> >       cpumask: Fix invalid uniprocessor mask assumption
> >       lib/test: introduce cpumask KUnit test suite
> >       cpumask: update cpumask_next_wrap() signature
>
> I think, Sander has a new version for this:
>
> https://lore.kernel.org/all/YuV1J7Zt+NzkrWeV@yury-laptop/T/#ma2d7613315f331fac83d8bd5ae22ef740945569ao

Looks like v4 was merged with the non-MM updates:

https://lore.kernel.org/all/[email protected]/

I'll have to write a follow-up to cover the v4/v5 differences, since there were
still some significant changes.

Best,
Sander