Skip to content
Snippets Groups Projects
  • Linus Torvalds's avatar
    9c5968db
    Merge tag 'mm-stable-2025-01-26-14-59' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 9c5968db
    Linus Torvalds authored
    Pull MM updates from Andrew Morton:
     "The various patchsets are summarized below. Plus of course many
      indivudual patches which are described in their changelogs.
    
       - "Allocate and free frozen pages" from Matthew Wilcox reorganizes
         the page allocator so we end up with the ability to allocate and
         free zero-refcount pages. So that callers (ie, slab) can avoid a
         refcount inc & dec
    
       - "Support large folios for tmpfs" from Baolin Wang teaches tmpfs to
         use large folios other than PMD-sized ones
    
       - "Fix mm/rodata_test" from Petr Tesarik performs some maintenance
         and fixes for this small built-in kernel selftest
    
       - "mas_anode_descend() related cleanup" from Wei Yang tidies up part
         of the mapletree code
    
       - "mm: fix format issues and param types" from Keren Sun implements a
         few minor code cleanups
    
       - "simplify split calculation" from Wei Yang provides a few fixes and
         a test for the mapletree code
    
       - "mm/vma: make more mmap logic userland testable" from Lorenzo
         Stoakes continues the work of moving vma-related code into the
         (relatively) new mm/vma.c
    
       - "mm/page_alloc: gfp flags cleanups for alloc_contig_*()" from David
         Hildenbrand cleans up and rationalizes handling of gfp flags in the
         page allocator
    
       - "readahead: Reintroduce fix for improper RA window sizing" from Jan
         Kara is a second attempt at fixing a readahead window sizing issue.
         It should reduce the amount of unnecessary reading
    
       - "synchronously scan and reclaim empty user PTE pages" from Qi Zheng
         addresses an issue where "huge" amounts of pte pagetables are
         accumulated:
    
           https://lore.kernel.org/lkml/cover.1718267194.git.zhengqi.arch@bytedance.com/
    
         Qi's series addresses this windup by synchronously freeing PTE
         memory within the context of madvise(MADV_DONTNEED)
    
       - "selftest/mm: Remove warnings found by adding compiler flags" from
         Muhammad Usama Anjum fixes some build warnings in the selftests
         code when optional compiler warnings are enabled
    
       - "mm: don't use __GFP_HARDWALL when migrating remote pages" from
         David Hildenbrand tightens the allocator's observance of
         __GFP_HARDWALL
    
       - "pkeys kselftests improvements" from Kevin Brodsky implements
         various fixes and cleanups in the MM selftests code, mainly
         pertaining to the pkeys tests
    
       - "mm/damon: add sample modules" from SeongJae Park enhances DAMON to
         estimate application working set size
    
       - "memcg/hugetlb: Rework memcg hugetlb charging" from Joshua Hahn
         provides some cleanups to memcg's hugetlb charging logic
    
       - "mm/swap_cgroup: remove global swap cgroup lock" from Kairui Song
         removes the global swap cgroup lock. A speedup of 10% for a
         tmpfs-based kernel build was demonstrated
    
       - "zram: split page type read/write handling" from Sergey Senozhatsky
         has several fixes and cleaups for zram in the area of
         zram_write_page(). A watchdog softlockup warning was eliminated
    
       - "move pagetable_*_dtor() to __tlb_remove_table()" from Kevin
         Brodsky cleans up the pagetable destructor implementations. A rare
         use-after-free race is fixed
    
       - "mm/debug: introduce and use VM_WARN_ON_VMG()" from Lorenzo Stoakes
         simplifies and cleans up the debugging code in the VMA merging
         logic
    
       - "Account page tables at all levels" from Kevin Brodsky cleans up
         and regularizes the pagetable ctor/dtor handling. This results in
         improvements in accounting accuracy
    
       - "mm/damon: replace most damon_callback usages in sysfs with new
         core functions" from SeongJae Park cleans up and generalizes
         DAMON's sysfs file interface logic
    
       - "mm/damon: enable page level properties based monitoring" from
         SeongJae Park increases the amount of information which is
         presented in response to DAMOS actions
    
       - "mm/damon: remove DAMON debugfs interface" from SeongJae Park
         removes DAMON's long-deprecated debugfs interfaces. Thus the
         migration to sysfs is completed
    
       - "mm/hugetlb: Refactor hugetlb allocation resv accounting" from
         Peter Xu cleans up and generalizes the hugetlb reservation
         accounting
    
       - "mm: alloc_pages_bulk: small API refactor" from Luiz Capitulino
         removes a never-used feature of the alloc_pages_bulk() interface
    
       - "mm/damon: extend DAMOS filters for inclusion" from SeongJae Park
         extends DAMOS filters to support not only exclusion (rejecting),
         but also inclusion (allowing) behavior
    
       - "Add zpdesc memory descriptor for zswap.zpool" from Alex Shi
         introduces a new memory descriptor for zswap.zpool that currently
         overlaps with struct page for now. This is part of the effort to
         reduce the size of struct page and to enable dynamic allocation of
         memory descriptors
    
       - "mm, swap: rework of swap allocator locks" from Kairui Song redoes
         and simplifies the swap allocator locking. A speedup of 400% was
         demonstrated for one workload. As was a 35% reduction for kernel
         build time with swap-on-zram
    
       - "mm: update mips to use do_mmap(), make mmap_region() internal"
         from Lorenzo Stoakes reworks MIPS's use of mmap_region() so that
         mmap_region() can be made MM-internal
    
       - "mm/mglru: performance optimizations" from Yu Zhao fixes a few
         MGLRU regressions and otherwise improves MGLRU performance
    
       - "Docs/mm/damon: add tuning guide and misc updates" from SeongJae
         Park updates DAMON documentation
    
       - "Cleanup for memfd_create()" from Isaac Manjarres does that thing
    
       - "mm: hugetlb+THP folio and migration cleanups" from David
         Hildenbrand provides various cleanups in the areas of hugetlb
         folios, THP folios and migration
    
       - "Uncached buffered IO" from Jens Axboe implements the new
         RWF_DONTCACHE flag which provides synchronous dropbehind for
         pagecache reading and writing. To permite userspace to address
         issues with massive buildup of useless pagecache when
         reading/writing fast devices
    
       - "selftests/mm: virtual_address_range: Reduce memory" from Thomas
         Weißschuh fixes and optimizes some of the MM selftests"
    
    * tag 'mm-stable-2025-01-26-14-59' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (321 commits)
      mm/compaction: fix UBSAN shift-out-of-bounds warning
      s390/mm: add missing ctor/dtor on page table upgrade
      kasan: sw_tags: use str_on_off() helper in kasan_init_sw_tags()
      tools: add VM_WARN_ON_VMG definition
      mm/damon/core: use str_high_low() helper in damos_wmark_wait_us()
      seqlock: add missing parameter documentation for raw_seqcount_try_begin()
      mm/page-writeback: consolidate wb_thresh bumping logic into __wb_calc_thresh
      mm/page_alloc: remove the incorrect and misleading comment
      zram: remove zcomp_stream_put() from write_incompressible_page()
      mm: separate move/undo parts from migrate_pages_batch()
      mm/kfence: use str_write_read() helper in get_access_type()
      selftests/mm/mkdirty: fix memory leak in test_uffdio_copy()
      kasan: hw_tags: Use str_on_off() helper in kasan_init_hw_tags()
      selftests/mm: virtual_address_range: avoid reading from VM_IO mappings
      selftests/mm: vm_util: split up /proc/self/smaps parsing
      selftests/mm: virtual_address_range: unmap chunks after validation
      selftests/mm: virtual_address_range: mmap() without PROT_WRITE
      selftests/memfd/memfd_test: fix possible NULL pointer dereference
      mm: add FGP_DONTCACHE folio creation flag
      mm: call filemap_fdatawrite_range_kick() after IOCB_DONTCACHE issue
      ...
    9c5968db
    History
    Merge tag 'mm-stable-2025-01-26-14-59' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
    Linus Torvalds authored
    Pull MM updates from Andrew Morton:
     "The various patchsets are summarized below. Plus of course many
      indivudual patches which are described in their changelogs.
    
       - "Allocate and free frozen pages" from Matthew Wilcox reorganizes
         the page allocator so we end up with the ability to allocate and
         free zero-refcount pages. So that callers (ie, slab) can avoid a
         refcount inc & dec
    
       - "Support large folios for tmpfs" from Baolin Wang teaches tmpfs to
         use large folios other than PMD-sized ones
    
       - "Fix mm/rodata_test" from Petr Tesarik performs some maintenance
         and fixes for this small built-in kernel selftest
    
       - "mas_anode_descend() related cleanup" from Wei Yang tidies up part
         of the mapletree code
    
       - "mm: fix format issues and param types" from Keren Sun implements a
         few minor code cleanups
    
       - "simplify split calculation" from Wei Yang provides a few fixes and
         a test for the mapletree code
    
       - "mm/vma: make more mmap logic userland testable" from Lorenzo
         Stoakes continues the work of moving vma-related code into the
         (relatively) new mm/vma.c
    
       - "mm/page_alloc: gfp flags cleanups for alloc_contig_*()" from David
         Hildenbrand cleans up and rationalizes handling of gfp flags in the
         page allocator
    
       - "readahead: Reintroduce fix for improper RA window sizing" from Jan
         Kara is a second attempt at fixing a readahead window sizing issue.
         It should reduce the amount of unnecessary reading
    
       - "synchronously scan and reclaim empty user PTE pages" from Qi Zheng
         addresses an issue where "huge" amounts of pte pagetables are
         accumulated:
    
           https://lore.kernel.org/lkml/cover.1718267194.git.zhengqi.arch@bytedance.com/
    
         Qi's series addresses this windup by synchronously freeing PTE
         memory within the context of madvise(MADV_DONTNEED)
    
       - "selftest/mm: Remove warnings found by adding compiler flags" from
         Muhammad Usama Anjum fixes some build warnings in the selftests
         code when optional compiler warnings are enabled
    
       - "mm: don't use __GFP_HARDWALL when migrating remote pages" from
         David Hildenbrand tightens the allocator's observance of
         __GFP_HARDWALL
    
       - "pkeys kselftests improvements" from Kevin Brodsky implements
         various fixes and cleanups in the MM selftests code, mainly
         pertaining to the pkeys tests
    
       - "mm/damon: add sample modules" from SeongJae Park enhances DAMON to
         estimate application working set size
    
       - "memcg/hugetlb: Rework memcg hugetlb charging" from Joshua Hahn
         provides some cleanups to memcg's hugetlb charging logic
    
       - "mm/swap_cgroup: remove global swap cgroup lock" from Kairui Song
         removes the global swap cgroup lock. A speedup of 10% for a
         tmpfs-based kernel build was demonstrated
    
       - "zram: split page type read/write handling" from Sergey Senozhatsky
         has several fixes and cleaups for zram in the area of
         zram_write_page(). A watchdog softlockup warning was eliminated
    
       - "move pagetable_*_dtor() to __tlb_remove_table()" from Kevin
         Brodsky cleans up the pagetable destructor implementations. A rare
         use-after-free race is fixed
    
       - "mm/debug: introduce and use VM_WARN_ON_VMG()" from Lorenzo Stoakes
         simplifies and cleans up the debugging code in the VMA merging
         logic
    
       - "Account page tables at all levels" from Kevin Brodsky cleans up
         and regularizes the pagetable ctor/dtor handling. This results in
         improvements in accounting accuracy
    
       - "mm/damon: replace most damon_callback usages in sysfs with new
         core functions" from SeongJae Park cleans up and generalizes
         DAMON's sysfs file interface logic
    
       - "mm/damon: enable page level properties based monitoring" from
         SeongJae Park increases the amount of information which is
         presented in response to DAMOS actions
    
       - "mm/damon: remove DAMON debugfs interface" from SeongJae Park
         removes DAMON's long-deprecated debugfs interfaces. Thus the
         migration to sysfs is completed
    
       - "mm/hugetlb: Refactor hugetlb allocation resv accounting" from
         Peter Xu cleans up and generalizes the hugetlb reservation
         accounting
    
       - "mm: alloc_pages_bulk: small API refactor" from Luiz Capitulino
         removes a never-used feature of the alloc_pages_bulk() interface
    
       - "mm/damon: extend DAMOS filters for inclusion" from SeongJae Park
         extends DAMOS filters to support not only exclusion (rejecting),
         but also inclusion (allowing) behavior
    
       - "Add zpdesc memory descriptor for zswap.zpool" from Alex Shi
         introduces a new memory descriptor for zswap.zpool that currently
         overlaps with struct page for now. This is part of the effort to
         reduce the size of struct page and to enable dynamic allocation of
         memory descriptors
    
       - "mm, swap: rework of swap allocator locks" from Kairui Song redoes
         and simplifies the swap allocator locking. A speedup of 400% was
         demonstrated for one workload. As was a 35% reduction for kernel
         build time with swap-on-zram
    
       - "mm: update mips to use do_mmap(), make mmap_region() internal"
         from Lorenzo Stoakes reworks MIPS's use of mmap_region() so that
         mmap_region() can be made MM-internal
    
       - "mm/mglru: performance optimizations" from Yu Zhao fixes a few
         MGLRU regressions and otherwise improves MGLRU performance
    
       - "Docs/mm/damon: add tuning guide and misc updates" from SeongJae
         Park updates DAMON documentation
    
       - "Cleanup for memfd_create()" from Isaac Manjarres does that thing
    
       - "mm: hugetlb+THP folio and migration cleanups" from David
         Hildenbrand provides various cleanups in the areas of hugetlb
         folios, THP folios and migration
    
       - "Uncached buffered IO" from Jens Axboe implements the new
         RWF_DONTCACHE flag which provides synchronous dropbehind for
         pagecache reading and writing. To permite userspace to address
         issues with massive buildup of useless pagecache when
         reading/writing fast devices
    
       - "selftests/mm: virtual_address_range: Reduce memory" from Thomas
         Weißschuh fixes and optimizes some of the MM selftests"
    
    * tag 'mm-stable-2025-01-26-14-59' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (321 commits)
      mm/compaction: fix UBSAN shift-out-of-bounds warning
      s390/mm: add missing ctor/dtor on page table upgrade
      kasan: sw_tags: use str_on_off() helper in kasan_init_sw_tags()
      tools: add VM_WARN_ON_VMG definition
      mm/damon/core: use str_high_low() helper in damos_wmark_wait_us()
      seqlock: add missing parameter documentation for raw_seqcount_try_begin()
      mm/page-writeback: consolidate wb_thresh bumping logic into __wb_calc_thresh
      mm/page_alloc: remove the incorrect and misleading comment
      zram: remove zcomp_stream_put() from write_incompressible_page()
      mm: separate move/undo parts from migrate_pages_batch()
      mm/kfence: use str_write_read() helper in get_access_type()
      selftests/mm/mkdirty: fix memory leak in test_uffdio_copy()
      kasan: hw_tags: Use str_on_off() helper in kasan_init_hw_tags()
      selftests/mm: virtual_address_range: avoid reading from VM_IO mappings
      selftests/mm: vm_util: split up /proc/self/smaps parsing
      selftests/mm: virtual_address_range: unmap chunks after validation
      selftests/mm: virtual_address_range: mmap() without PROT_WRITE
      selftests/memfd/memfd_test: fix possible NULL pointer dereference
      mm: add FGP_DONTCACHE folio creation flag
      mm: call filemap_fdatawrite_range_kick() after IOCB_DONTCACHE issue
      ...