Skip to content

Commit 4cff5c0

Browse files
committed
Merge tag 'mm-stable-2026-02-11-19-22' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull MM updates from Andrew Morton: - "powerpc/64s: do not re-activate batched TLB flush" makes arch_{enter|leave}_lazy_mmu_mode() nest properly (Alexander Gordeev) It adds a generic enter/leave layer and switches architectures to use it. Various hacks were removed in the process. - "zram: introduce compressed data writeback" implements data compression for zram writeback (Richard Chang and Sergey Senozhatsky) - "mm: folio_zero_user: clear page ranges" adds clearing of contiguous page ranges for hugepages. Large improvements during demand faulting are demonstrated (David Hildenbrand) - "memcg cleanups" tidies up some memcg code (Chen Ridong) - "mm/damon: introduce {,max_}nr_snapshots and tracepoint for damos stats" improves DAMOS stat's provided information, deterministic control, and readability (SeongJae Park) - "selftests/mm: hugetlb cgroup charging: robustness fixes" fixes a few issues in the hugetlb cgroup charging selftests (Li Wang) - "Fix va_high_addr_switch.sh test failure - again" addresses several issues in the va_high_addr_switch test (Chunyu Hu) - "mm/damon/tests/core-kunit: extend existing test scenarios" improves the KUnit test coverage for DAMON (Shu Anzai) - "mm/khugepaged: fix dirty page handling for MADV_COLLAPSE" fixes a glitch in khugepaged which was causing madvise(MADV_COLLAPSE) to transiently return -EAGAIN (Shivank Garg) - "arch, mm: consolidate hugetlb early reservation" reworks and consolidates a pile of straggly code related to reservation of hugetlb memory from bootmem and creation of CMA areas for hugetlb (Mike Rapoport) - "mm: clean up anon_vma implementation" cleans up the anon_vma implementation in various ways (Lorenzo Stoakes) - "tweaks for __alloc_pages_slowpath()" does a little streamlining of the page allocator's slowpath code (Vlastimil Babka) - "memcg: separate private and public ID namespaces" cleans up the memcg ID code and prevents the internal-only private IDs from being exposed to userspace (Shakeel Butt) - "mm: hugetlb: allocate frozen gigantic folio" cleans up the allocation of frozen folios and avoids some atomic refcount operations (Kefeng Wang) - "mm/damon: advance DAMOS-based LRU sorting" improves DAMOS's movement of memory betewwn the active and inactive LRUs and adds auto-tuning of the ratio-based quotas and of monitoring intervals (SeongJae Park) - "Support page table check on PowerPC" makes CONFIG_PAGE_TABLE_CHECK_ENFORCED work on powerpc (Andrew Donnellan) - "nodemask: align nodes_and{,not} with underlying bitmap ops" makes nodes_and() and nodes_andnot() propagate the return values from the underlying bit operations, enabling some cleanup in calling code (Yury Norov) - "mm/damon: hide kdamond and kdamond_lock from API callers" cleans up some DAMON internal interfaces (SeongJae Park) - "mm/khugepaged: cleanups and scan limit fix" does some cleanup work in khupaged and fixes a scan limit accounting issue (Shivank Garg) - "mm: balloon infrastructure cleanups" goes to town on the balloon infrastructure and its page migration function. Mainly cleanups, also some locking simplification (David Hildenbrand) - "mm/vmscan: add tracepoint and reason for kswapd_failures reset" adds additional tracepoints to the page reclaim code (Jiayuan Chen) - "Replace wq users and add WQ_PERCPU to alloc_workqueue() users" is part of Marco's kernel-wide migration from the legacy workqueue APIs over to the preferred unbound workqueues (Marco Crivellari) - "Various mm kselftests improvements/fixes" provides various unrelated improvements/fixes for the mm kselftests (Kevin Brodsky) - "mm: accelerate gigantic folio allocation" greatly speeds up gigantic folio allocation, mainly by avoiding unnecessary work in pfn_range_valid_contig() (Kefeng Wang) - "selftests/damon: improve leak detection and wss estimation reliability" improves the reliability of two of the DAMON selftests (SeongJae Park) - "mm/damon: cleanup kdamond, damon_call(), damos filter and DAMON_MIN_REGION" does some cleanup work in the core DAMON code (SeongJae Park) - "Docs/mm/damon: update intro, modules, maintainer profile, and misc" performs maintenance work on the DAMON documentation (SeongJae Park) - "mm: add and use vma_assert_stabilised() helper" refactors and cleans up the core VMA code. The main aim here is to be able to use the mmap write lock's lockdep state to perform various assertions regarding the locking which the VMA code requires (Lorenzo Stoakes) - "mm, swap: swap table phase II: unify swapin use" removes some old swap code (swap cache bypassing and swap synchronization) which wasn't working very well. Various other cleanups and simplifications were made. The end result is a 20% speedup in one benchmark (Kairui Song) - "enable PT_RECLAIM on more 64-bit architectures" makes PT_RECLAIM available on 64-bit alpha, loongarch, mips, parisc, and um. Various cleanups were performed along the way (Qi Zheng) * tag 'mm-stable-2026-02-11-19-22' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (325 commits) mm/memory: handle non-split locks correctly in zap_empty_pte_table() mm: move pte table reclaim code to memory.c mm: make PT_RECLAIM depends on MMU_GATHER_RCU_TABLE_FREE mm: convert __HAVE_ARCH_TLB_REMOVE_TABLE to CONFIG_HAVE_ARCH_TLB_REMOVE_TABLE config um: mm: enable MMU_GATHER_RCU_TABLE_FREE parisc: mm: enable MMU_GATHER_RCU_TABLE_FREE mips: mm: enable MMU_GATHER_RCU_TABLE_FREE LoongArch: mm: enable MMU_GATHER_RCU_TABLE_FREE alpha: mm: enable MMU_GATHER_RCU_TABLE_FREE mm: change mm/pt_reclaim.c to use asm/tlb.h instead of asm-generic/tlb.h mm/damon/stat: remove __read_mostly from memory_idle_ms_percentiles zsmalloc: make common caches global mm: add SPDX id lines to some mm source files mm/zswap: use %pe to print error pointers mm/vmscan: use %pe to print error pointers mm/readahead: fix typo in comment mm: khugepaged: fix NR_FILE_PAGES and NR_SHMEM in collapse_file() mm: refactor vma_map_pages to use vm_insert_pages mm/damon: unify address range representation with damon_addr_range mm/cma: replace snprintf with strscpy in cma_new_area ...
2 parents 541c433 + fb4ddf2 commit 4cff5c0

332 files changed

Lines changed: 6241 additions & 5595 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Documentation/ABI/testing/sysfs-block-zram

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,3 +150,17 @@ Contact: Sergey Senozhatsky <senozhatsky@chromium.org>
150150
Description:
151151
The algorithm_params file is write-only and is used to setup
152152
compression algorithm parameters.
153+
154+
What: /sys/block/zram<id>/writeback_compressed
155+
Date: Decemeber 2025
156+
Contact: Richard Chang <richardycc@google.com>
157+
Description:
158+
The writeback_compressed device atrribute toggles compressed
159+
writeback feature.
160+
161+
What: /sys/block/zram<id>/writeback_batch_size
162+
Date: November 2025
163+
Contact: Sergey Senozhatsky <senozhatsky@chromium.org>
164+
Description:
165+
The writeback_batch_size device atrribute sets the maximum
166+
number of in-flight writeback operations.

Documentation/ABI/testing/sysfs-kernel-mm-damon

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,19 @@ Contact: SeongJae Park <sj@kernel.org>
516516
Description: Reading this file returns the number of the exceed events of
517517
the scheme's quotas.
518518

519+
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/nr_snapshots
520+
Date: Dec 2025
521+
Contact: SeongJae Park <sj@kernel.org>
522+
Description: Reading this file returns the total number of DAMON snapshots
523+
that the scheme has tried to be applied.
524+
525+
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/stats/max_nr_snapshots
526+
Date: Dec 2025
527+
Contact: SeongJae Park <sj@kernel.org>
528+
Description: Writing a number to this file sets the upper limit of
529+
nr_snapshots that deactivates the scheme when the limit is
530+
reached or exceeded.
531+
519532
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/total_bytes
520533
Date: Jul 2023
521534
Contact: SeongJae Park <sj@kernel.org>

Documentation/admin-guide/blockdev/zram.rst

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,9 @@ mem_limit WO specifies the maximum amount of memory ZRAM can
214214
writeback_limit WO specifies the maximum amount of write IO zram
215215
can write out to backing device as 4KB unit
216216
writeback_limit_enable RW show and set writeback_limit feature
217+
writeback_batch_size RW show and set maximum number of in-flight
218+
writeback operations
219+
writeback_compressed RW show and set compressed writeback feature
217220
comp_algorithm RW show and change the compression algorithm
218221
algorithm_params WO setup compression algorithm parameters
219222
compact WO trigger memory compaction
@@ -222,7 +225,6 @@ backing_dev RW set up backend storage for zram to write out
222225
idle WO mark allocated slot as idle
223226
====================== ====== ===============================================
224227

225-
226228
User space is advised to use the following files to read the device statistics.
227229

228230
File /sys/block/zram<id>/stat
@@ -434,6 +436,26 @@ system reboot, echo 1 > /sys/block/zramX/reset) so keeping how many of
434436
writeback happened until you reset the zram to allocate extra writeback
435437
budget in next setting is user's job.
436438

439+
By default zram stores written back pages in decompressed (raw) form, which
440+
means that writeback operation involves decompression of the page before
441+
writing it to the backing device. This behavior can be changed by enabling
442+
`writeback_compressed` feature, which causes zram to write compressed pages
443+
to the backing device, thus avoiding decompression overhead. To enable
444+
this feature, execute::
445+
446+
$ echo yes > /sys/block/zramX/writeback_compressed
447+
448+
Note that this feature should be configured before the `zramX` device is
449+
initialized.
450+
451+
Depending on backing device storage type, writeback operation may benefit
452+
from a higher number of in-flight write requests (batched writes). The
453+
number of maximum in-flight writeback operations can be configured via
454+
`writeback_batch_size` attribute. To change the default value (which is 32),
455+
execute::
456+
457+
$ echo 64 > /sys/block/zramX/writeback_batch_size
458+
437459
If admin wants to measure writeback count in a certain period, they could
438460
know it via /sys/block/zram0/bd_stat's 3rd column.
439461

Documentation/admin-guide/cgroup-v1/memory.rst

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -311,9 +311,8 @@ Lock order is as follows::
311311

312312
folio_lock
313313
mm->page_table_lock or split pte_lock
314-
folio_memcg_lock (memcg->move_lock)
315-
mapping->i_pages lock
316-
lruvec->lru_lock.
314+
mapping->i_pages lock
315+
lruvec->lru_lock.
317316

318317
Per-node-per-memcgroup LRU (cgroup's private LRU) is guarded by
319318
lruvec->lru_lock; the folio LRU flag is cleared before

Documentation/admin-guide/laptops/index.rst

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ Laptop Drivers
1010
alienware-wmi
1111
asus-laptop
1212
disk-shock-protection
13-
laptop-mode
1413
lg-laptop
1514
samsung-galaxybook
1615
sony-laptop

0 commit comments

Comments
 (0)