projects/linux·commit e2ca6ba6

Merge tag 'mm-stable-2022-12-13' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm

e2ca6ba6 · Linus Torvalds <[email protected]> · 2022-12-13 19:29:45 -08:00

Pull MM updates from Andrew Morton:

 - More userfaultfs work from Peter Xu

 - Several convert-to-folios series from Sidhartha Kumar and Huang Ying

 - Some filemap cleanups from Vishal Moola

 - David Hildenbrand added the ability to selftest anon memory COW
   handling

 - Some cpuset simplifications from Liu Shixin

 - Addition of vmalloc tracing support by Uladzislau Rezki

 - Some pagecache folioifications and simplifications from Matthew
   Wilcox

 - A pagemap cleanup from Kefeng Wang: we have VM_ACCESS_FLAGS, so use
   it

 - Miguel Ojeda contributed some cleanups for our use of the
   __no_sanitize_thread__ gcc keyword.

   This series should have been in the non-MM tree, my bad

 - Naoya Horiguchi improved the interaction between memory poisoning and
   memory section removal for huge pages

 - DAMON cleanups and tuneups from SeongJae Park

 - Tony Luck fixed the handling of COW faults against poisoned pages

 - Peter Xu utilized the PTE marker code for handling swapin errors

 - Hugh Dickins reworked compound page mapcount handling, simplifying it
   and making it more efficient

 - Removal of the autonuma savedwrite infrastructure from Nadav Amit and
   David Hildenbrand

 - zram support for multiple compression streams from Sergey Senozhatsky

 - David Hildenbrand reworked the GUP code's R/O long-term pinning so
   that drivers no longer need to use the FOLL_FORCE workaround which
   didn't work very well anyway

 - Mel Gorman altered the page allocator so that local IRQs can remnain
   enabled during per-cpu page allocations

 - Vishal Moola removed the try_to_release_page() wrapper

 - Stefan Roesch added some per-BDI sysfs tunables which are used to
   prevent network block devices from dirtying excessive amounts of
   pagecache

 - David Hildenbrand did some cleanup and repair work on KSM COW
   breaking

 - Nhat Pham and Johannes Weiner have implemented writeback in zswap's
   zsmalloc backend

 - Brian Foster has fixed a longstanding corner-case oddity in
   file[map]_write_and_wait_range()

 - sparse-vmemmap changes for MIPS, LoongArch and NIOS2 from Feiyang
   Chen

 - Shiyang Ruan has done some work on fsdax, to make its reflink mode
   work better under xfstests. Better, but still not perfect

 - Christoph Hellwig has removed the .writepage() method from several
   filesystems. They only need .writepages()

 - Yosry Ahmed wrote a series which fixes the memcg reclaim target
   beancounting

 - David Hildenbrand has fixed some of our MM selftests for 32-bit
   machines

 - Many singleton patches, as usual

* tag 'mm-stable-2022-12-13' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (313 commits)
  mm/hugetlb: set head flag before setting compound_order in __prep_compound_gigantic_folio
  mm: mmu_gather: allow more than one batch of delayed rmaps
  mm: fix typo in struct pglist_data code comment
  kmsan: fix memcpy tests
  mm: add cond_resched() in swapin_walk_pmd_entry()
  mm: do not show fs mm pc for VM_LOCKONFAULT pages
  selftests/vm: ksm_functional_tests: fixes for 32bit
  selftests/vm: cow: fix compile warning on 32bit
  selftests/vm: madv_populate: fix missing MADV_POPULATE_(READ|WRITE) definitions
  mm/gup_test: fix PIN_LONGTERM_TEST_READ with highmem
  mm,thp,rmap: fix races between updates of subpages_mapcount
  mm: memcg: fix swapcached stat accounting
  mm: add nodes= arg to memory.reclaim
  mm: disable top-tier fallback to reclaim on proactive reclaim
  selftests: cgroup: make sure reclaim target memcg is unprotected
  selftests: cgroup: refactor proactive reclaim code to reclaim_until()
  mm: memcg: fix stale protection of reclaim target memcg
  mm/mmap: properly unaccount memory on mas_preallocate() failure
  omfs: remove ->writepage
  jfs: remove ->writepage
  ...
Commit
e2ca6ba6ba0152361aa4fcbf6067db71b2c7a770
Parents
7e68dd7d · c45bc55a

Merge commit. Changes below are compared with the first parent: 7e68dd7d.

Changes

237 files changed · +9281 −5047

FileStatusAddDelContent
Documentation/ABI/testing/sysfs-block-zrammodified+14−0View file
Documentation/ABI/testing/sysfs-class-bdimodified+68−0View file
Documentation/ABI/testing/sysfs-kernel-mm-damonmodified+32−0View file
Documentation/admin-guide/blockdev/zram.rstmodified+96−4View file
Documentation/admin-guide/cgroup-v1/memory.rstmodified+2−1View file
Documentation/admin-guide/cgroup-v2.rstmodified+15−6View file
Documentation/admin-guide/mm/damon/usage.rstmodified+51−8View file
Documentation/filesystems/proc.rstmodified+5−3View file
Documentation/mm/arch_pgtable_helpers.rstmodified+1−1View file
Documentation/mm/transhuge.rstmodified+9−25View file
MAINTAINERSmodified+11−1View file
arch/alpha/include/asm/pgtable.hmodified+0−2View file
arch/arc/include/asm/pgtable-bits-arcv2.hmodified+0−2View file
arch/arm/include/asm/pgtable-nommu.hmodified+0−2View file
arch/arm/include/asm/pgtable.hmodified+0−4View file
arch/arm64/include/asm/pgtable.hmodified+0−2View file
arch/arm64/mm/mmu.cmodified+15−87View file
arch/arm64/mm/pageattr.cmodified+1−2View file
arch/csky/include/asm/pgtable.hmodified+0−3View file
arch/hexagon/include/asm/page.hmodified+0−7View file
arch/ia64/include/asm/pgtable.hmodified+0−16View file
arch/ia64/mm/hugetlbpage.cmodified+0−15View file
arch/loongarch/Kconfigmodified+2−0View file
arch/loongarch/include/asm/pgalloc.hmodified+2−11View file
arch/loongarch/include/asm/pgtable.hmodified+10−7View file
arch/loongarch/include/asm/sparsemem.hmodified+8−0View file
arch/loongarch/kernel/numa.cmodified+2−2View file
arch/loongarch/mm/init.cmodified+42−3View file
arch/loongarch/mm/pgtable.cmodified+13−10View file
arch/m68k/include/asm/pgtable_mm.hmodified+0−2View file
arch/m68k/include/asm/pgtable_no.hmodified+0−1View file
arch/microblaze/include/asm/pgtable.hmodified+0−3View file
arch/mips/include/asm/pgalloc.hmodified+5−5View file
arch/mips/include/asm/pgtable-64.hmodified+4−4View file
arch/mips/include/asm/pgtable.hmodified+0−2View file
arch/mips/kvm/mmu.cmodified+1−2View file
arch/mips/mm/pgtable-32.cmodified+4−5View file
arch/mips/mm/pgtable-64.cmodified+10−8View file
arch/mips/mm/pgtable.cmodified+1−1View file
arch/nios2/include/asm/pgalloc.hmodified+0−5View file
arch/nios2/include/asm/pgtable.hmodified+0−2View file
arch/nios2/include/asm/processor.hmodified+0−3View file
arch/openrisc/include/asm/pgtable.hmodified+0−2View file
arch/parisc/include/asm/pgtable.hmodified+0−15View file
arch/parisc/kernel/pdt.cmodified+2−3View file
arch/powerpc/include/asm/book3s/64/pgtable.hmodified+4−76View file
arch/powerpc/include/asm/pgtable.hmodified+0−7View file
arch/powerpc/kvm/book3s_hv_rm_mmu.cmodified+1−1View file
arch/powerpc/mm/hugetlbpage.cmodified+0−37View file
arch/riscv/include/asm/pgtable.hmodified+0−2View file
arch/s390/include/asm/pgtable.hmodified+0−2View file
arch/s390/include/asm/tlb.hmodified+8−3View file
arch/s390/mm/gmap.cmodified+2−3View file
arch/sh/include/asm/pgtable.hmodified+0−2View file
arch/sparc/include/asm/pgtable_32.hmodified+0−6View file
arch/sparc/mm/init_32.cmodified+1−2View file
arch/sparc/mm/init_64.cmodified+0−1View file
arch/um/include/asm/pgtable.hmodified+0−2View file
arch/x86/include/asm/pgtable.hmodified+17−1View file
arch/x86/include/asm/pgtable_32.hmodified+0−9View file
arch/x86/include/asm/pgtable_64.hmodified+0−1View file
arch/x86/kernel/cpu/sgx/encl.cmodified+2−2View file
arch/x86/mm/init_64.cmodified+32−101View file
arch/xtensa/include/asm/pgtable.hmodified+0−2View file
drivers/acpi/numa/hmat.cmodified+1−6View file
drivers/base/memory.cmodified+38−0View file
drivers/block/zram/Kconfigmodified+9−0View file
drivers/block/zram/zcomp.cmodified+3−3View file
drivers/block/zram/zcomp.hmodified+1−1View file
drivers/block/zram/zram_drv.cmodified+538−81View file
drivers/block/zram/zram_drv.hmodified+20−4View file
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.cmodified+1−1View file
drivers/gpu/drm/etnaviv/etnaviv_gem.cmodified+5−3View file
drivers/gpu/drm/exynos/exynos_drm_g2d.cmodified+1−1View file
drivers/infiniband/core/umem.cmodified+4−4View file
drivers/infiniband/hw/qib/qib_user_pages.cmodified+1−1View file
drivers/infiniband/hw/usnic/usnic_uiom.cmodified+4−5View file
drivers/infiniband/sw/siw/siw_mem.cmodified+4−5View file
drivers/media/common/videobuf2/frame_vector.cmodified+1−1View file
drivers/media/pci/ivtv/ivtv-udma.cmodified+1−1View file
drivers/media/pci/ivtv/ivtv-yuv.cmodified+2−3View file
drivers/media/v4l2-core/videobuf-dma-sg.cmodified+5−9View file
drivers/misc/habanalabs/common/memory.cmodified+1−2View file
fs/dax.cmodified+151−70View file
fs/exfat/inode.cmodified+2−7View file
fs/ext4/move_extent.cmodified+31−21View file
fs/fat/inode.cmodified+2−7View file
fs/fuse/dev.cmodified+28−27View file
fs/hfs/inode.cmodified+1−1View file
fs/hfsplus/inode.cmodified+1−1View file
fs/hpfs/file.cmodified+2−7View file
fs/hugetlbfs/inode.cmodified+14−14View file
fs/jfs/inode.cmodified+1−6View file
fs/omfs/file.cmodified+1−6View file
fs/proc/kcore.cmodified+10−23View file
fs/proc/task_mmu.cmodified+12−4View file
fs/xfs/xfs_ioctl.cmodified+0−4View file
fs/xfs/xfs_iomap.cmodified+3−3View file
fs/xfs/xfs_iops.cmodified+0−4View file
fs/xfs/xfs_reflink.cmodified+6−2View file
include/asm-generic/tlb.hmodified+33−5View file
include/linux/backing-dev.hmodified+10−0View file
include/linux/compiler-gcc.hmodified+8−13View file
include/linux/damon.hmodified+5−0View file
include/linux/dax.hmodified+2−0View file
include/linux/highmem.hmodified+26−0View file
include/linux/hugetlb.hmodified+74−69View file
include/linux/hugetlb_cgroup.hmodified+37−49View file
include/linux/khugepaged.hmodified+6−0View file
include/linux/memcontrol.hmodified+21−10View file
include/linux/memory-tiers.hmodified+0−1View file
include/linux/memory.hmodified+10−8View file
include/linux/mm.hmodified+221−55View file
include/linux/mm_types.hmodified+122−40View file
include/linux/mm_types_task.hmodified+0−13View file
include/linux/mmzone.hmodified+1−1View file
include/linux/page-flags.hmodified+1−22View file
include/linux/pagemap.hmodified+3−6View file
include/linux/pagewalk.hmodified+5−0View file
include/linux/percpu_counter.hmodified+6−1View file
include/linux/pgtable.hmodified+1−27View file
include/linux/sched.hmodified+0−3View file
include/linux/shrinker.hmodified+3−0View file
include/linux/swap.hmodified+10−17View file
include/linux/swapops.hmodified+12−61View file
include/linux/vm_event_item.hmodified+3−0View file
include/linux/zsmalloc.hmodified+2−0View file
include/trace/events/huge_memory.hmodified+38−0View file
include/trace/events/kmem.hmodified+4−4View file
include/trace/events/vmalloc.hadded+123−0View file
kernel/cgroup/cpuset.cmodified+1−6View file
kernel/fork.cmodified+20−1View file
kernel/locking/Makefilemodified+0−1View file
kernel/sysctl.cmodified+1−0View file
lib/Kconfig.debugmodified+1−0View file
lib/Kconfig.kasanmodified+1−1View file
lib/maple_tree.cmodified+9−4View file
lib/percpu_counter.cmodified+23−6View file
mm/Kconfigmodified+8−9View file
mm/backing-dev.cmodified+130−3View file
mm/compaction.cmodified+5−13View file
mm/damon/Makefilemodified+3−3View file
mm/damon/core.cmodified+160−106View file
mm/damon/lru_sort.cmodified+26−45View file
mm/damon/modules-common.cadded+42−0View file
mm/damon/modules-common.hmodified+3−0View file
mm/damon/reclaim.cmodified+27−46View file
mm/damon/sysfs-common.cadded+107−0View file
mm/damon/sysfs-common.hadded+56−0View file
mm/damon/sysfs-schemes.cadded+1338−0View file
mm/damon/sysfs.cmodified+88−1185View file
mm/debug.cmodified+3−2View file
mm/debug_vm_pgtable.cmodified+2−38View file
mm/fadvise.cmodified+1−1View file
mm/filemap.cmodified+54−35View file
mm/folio-compat.cmodified+1−24View file
mm/gup.cmodified+51−204View file
mm/gup_test.cmodified+145−0View file
mm/gup_test.hmodified+12−0View file
mm/huge_memory.cmodified+84−73View file
mm/hugetlb.cmodified+342−406View file
mm/hugetlb_cgroup.cmodified+34−29View file
mm/hugetlb_vmemmap.cmodified+35−10View file
mm/internal.hmodified+2−10View file
mm/kasan/kasan.hmodified+12−8View file
mm/kasan/kasan_test.cmodified+129−23View file
mm/kasan/kasan_test_module.cmodified+0−60View file
mm/kasan/report.cmodified+43−21View file
mm/kasan/shadow.cmodified+1−1View file
mm/kfence/core.cmodified+1−11View file
mm/khugepaged.cmodified+30−27View file
mm/kmemleak.cmodified+1−1View file
mm/kmsan/instrumentation.cmodified+5−3View file
mm/kmsan/kmsan_test.cmodified+3−0View file
mm/ksm.cmodified+58−31View file
mm/madvise.cmodified+38−23View file
mm/memcontrol.cmodified+85−28View file
mm/memory-failure.cmodified+83−89View file
mm/memory-tiers.cmodified+2−2View file
mm/memory.cmodified+131−129View file
mm/mempool.cmodified+12−6View file
mm/migrate.cmodified+153−132View file
mm/mincore.cmodified+7−7View file
mm/mm_init.cmodified+1−7View file
mm/mmap.cmodified+4−8View file
mm/mmu_gather.cmodified+44−14View file
mm/mprotect.cmodified+24−31View file
mm/page-writeback.cmodified+121−9View file
mm/page_alloc.cmodified+78−89View file
mm/page_ext.cmodified+1−1View file
mm/page_table_check.cmodified+2−1View file
mm/pagewalk.cmodified+20−7View file
mm/rmap.cmodified+162−170View file
mm/shmem.cmodified+34−20View file
mm/slub.cmodified+1−6View file
mm/sparse-vmemmap.cmodified+73−0View file
mm/sparse.cmodified+0−2View file
mm/swap.cmodified+31−10View file
mm/swap.hmodified+5−3View file
mm/swap_state.cmodified+18−21View file
mm/swapfile.cmodified+1−1View file
mm/truncate.cmodified+11−21View file
mm/usercopy.cmodified+2−1View file
mm/userfaultfd.cmodified+4−2View file
mm/util.cmodified+0−79View file
mm/vmalloc.cmodified+17−3View file
mm/vmscan.cmodified+79−46View file
mm/vmstat.cmodified+3−0View file
mm/workingset.cmodified+5−2View file
mm/z3fold.cmodified+5−31View file
mm/zbud.cmodified+5−27View file
mm/zpool.cmodified+9−8View file
mm/zsmalloc.cmodified+302−63View file
mm/zswap.cmodified+21−18View file
tools/testing/selftests/cgroup/test_memcontrol.cmodified+55−36View file
tools/testing/selftests/damon/Makefilemodified+3−1View file
tools/testing/selftests/damon/debugfs_rm_non_contexts.shadded+19−0View file
tools/testing/selftests/damon/huge_count_read_write.cmodified+9−0View file
tools/testing/selftests/damon/lru_sort.shadded+41−0View file
tools/testing/selftests/damon/reclaim.shadded+42−0View file
tools/testing/selftests/damon/sysfs.shmodified+7−0View file
tools/testing/selftests/damon/sysfs_update_removed_scheme_dir.shadded+58−0View file
tools/testing/selftests/vm/.gitignoremodified+1−0View file
tools/testing/selftests/vm/Makefilemodified+25−2View file
tools/testing/selftests/vm/check_config.shadded+31−0View file
tools/testing/selftests/vm/cow.cadded+1536−0View file
tools/testing/selftests/vm/hugepage-mmap.cmodified+4−6View file
tools/testing/selftests/vm/hugepage-mremap.cmodified+9−12View file
tools/testing/selftests/vm/hugetlb-madvise.cmodified+7−12View file
tools/testing/selftests/vm/ksm_functional_tests.cadded+279−0View file
tools/testing/selftests/vm/ksm_tests.cmodified+74−2View file
tools/testing/selftests/vm/madv_populate.cmodified+7−8View file
tools/testing/selftests/vm/run_vmtests.shmodified+147−73View file
tools/testing/selftests/vm/userfaultfd.cmodified+21−41View file
tools/testing/selftests/vm/vm_util.cmodified+25−0View file
tools/testing/selftests/vm/vm_util.hmodified+3−0View file
tools/vm/.gitignoremodified+1−0View file

Only the first 600 diff lines are shown. Download the complete patch.

Documentation/ABI/testing/sysfs-block-zram

View file
diff --git a/Documentation/ABI/testing/sysfs-block-zram b/Documentation/ABI/testing/sysfs-block-zram
index 14b2bf2..628a00f 100644
--- a/Documentation/ABI/testing/sysfs-block-zram
+++ b/Documentation/ABI/testing/sysfs-block-zram
@@ -137,3 +137,17 @@ Description:
The writeback_limit file is read-write and specifies the maximum
amount of writeback ZRAM can do. The limit could be changed
in run time.
+
+What: /sys/block/zram<id>/recomp_algorithm
+Date: November 2022
+Contact: Sergey Senozhatsky <[email protected]>
+Description:
+ The recomp_algorithm file is read-write and allows to set
+ or show secondary compression algorithms.
+
+What: /sys/block/zram<id>/recompress
+Date: November 2022
+Contact: Sergey Senozhatsky <[email protected]>
+Description:
+ The recompress file is write-only and triggers re-compression
+ with secondary compression algorithms.

Documentation/ABI/testing/sysfs-class-bdi

View file
diff --git a/Documentation/ABI/testing/sysfs-class-bdi b/Documentation/ABI/testing/sysfs-class-bdi
index 6d2a2fc..0d2abd8 100644
--- a/Documentation/ABI/testing/sysfs-class-bdi
+++ b/Documentation/ABI/testing/sysfs-class-bdi
@@ -44,6 +44,21 @@ Description:
(read-write)
+What: /sys/class/bdi/<bdi>/min_ratio_fine
+Date: November 2022
+Contact: Stefan Roesch <[email protected]>
+Description:
+ Under normal circumstances each device is given a part of the
+ total write-back cache that relates to its current average
+ writeout speed in relation to the other devices.
+
+ The 'min_ratio_fine' parameter allows assigning a minimum reserve
+ of the write-back cache to a particular device. The value is
+ expressed as part of 1 million. For example, this is useful for
+ providing a minimum QoS.
+
+ (read-write)
+
What: /sys/class/bdi/<bdi>/max_ratio
Date: January 2008
Contact: Peter Zijlstra <[email protected]>
@@ -56,6 +71,59 @@ Description:
be trusted to play fair.
(read-write)
+
+What: /sys/class/bdi/<bdi>/max_ratio_fine
+Date: November 2022
+Contact: Stefan Roesch <[email protected]>
+Description:
+ Allows limiting a particular device to use not more than the
+ given value of the write-back cache. The value is given as part
+ of 1 million. This is useful in situations where we want to avoid
+ one device taking all or most of the write-back cache. For example
+ in case of an NFS mount that is prone to get stuck, or a FUSE mount
+ which cannot be trusted to play fair.
+
+ (read-write)
+
+What: /sys/class/bdi/<bdi>/min_bytes
+Date: October 2022
+Contact: Stefan Roesch <[email protected]>
+Description:
+ Under normal circumstances each device is given a part of the
+ total write-back cache that relates to its current average
+ writeout speed in relation to the other devices.
+
+ The 'min_bytes' parameter allows assigning a minimum
+ percentage of the write-back cache to a particular device
+ expressed in bytes.
+ For example, this is useful for providing a minimum QoS.
+
+ (read-write)
+
+What: /sys/class/bdi/<bdi>/max_bytes
+Date: October 2022
+Contact: Stefan Roesch <[email protected]>
+Description:
+ Allows limiting a particular device to use not more than the
+ given 'max_bytes' of the write-back cache. This is useful in
+ situations where we want to avoid one device taking all or
+ most of the write-back cache. For example in case of an NFS
+ mount that is prone to get stuck, a FUSE mount which cannot be
+ trusted to play fair, or a nbd device.
+
+ (read-write)
+
+What: /sys/class/bdi/<bdi>/strict_limit
+Date: October 2022
+Contact: Stefan Roesch <[email protected]>
+Description:
+ Forces per-BDI checks for the share of given device in the write-back
+ cache even before the global background dirty limit is reached. This
+ is useful in situations where the global limit is much higher than
+ affordable for given relatively slow (or untrusted) device. Turning
+ strictlimit on has no visible effect if max_ratio is equal to 100%.
+
+ (read-write)
What: /sys/class/bdi/<bdi>/stable_pages_required
Date: January 2008
Contact: Peter Zijlstra <[email protected]>

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

View file
diff --git a/Documentation/ABI/testing/sysfs-kernel-mm-damon b/Documentation/ABI/testing/sysfs-kernel-mm-damon
index 08b9df3..13397b8 100644
--- a/Documentation/ABI/testing/sysfs-kernel-mm-damon
+++ b/Documentation/ABI/testing/sysfs-kernel-mm-damon
@@ -27,6 +27,10 @@ Description: Writing 'on' or 'off' to this file makes the kdamond starts or
makes the kdamond reads the user inputs in the sysfs files
except 'state' again. Writing 'update_schemes_stats' to the
file updates contents of schemes stats files of the kdamond.
+ Writing 'update_schemes_tried_regions' to the file updates
+ contents of 'tried_regions' directory of every scheme directory
+ of this kdamond. Writing 'clear_schemes_tried_regions' to the
+ file removes contents of the 'tried_regions' directory.
What: /sys/kernel/mm/damon/admin/kdamonds/<K>/pid
Date: Mar 2022
@@ -283,3 +287,31 @@ Date: Mar 2022
Contact: SeongJae Park <[email protected]>
Description: Reading this file returns the number of the exceed events of
the scheme's quotas.
+
+What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/start
+Date: Oct 2022
+Contact: SeongJae Park <[email protected]>
+Description: Reading this file returns the start address of a memory region
+ that corresponding DAMON-based Operation Scheme's action has
+ tried to be applied.
+
+What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/end
+Date: Oct 2022
+Contact: SeongJae Park <[email protected]>
+Description: Reading this file returns the end address of a memory region
+ that corresponding DAMON-based Operation Scheme's action has
+ tried to be applied.
+
+What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/nr_accesses
+Date: Oct 2022
+Contact: SeongJae Park <[email protected]>
+Description: Reading this file returns the 'nr_accesses' of a memory region
+ that corresponding DAMON-based Operation Scheme's action has
+ tried to be applied.
+
+What: /sys/kernel/mm/damon/admin/kdamonds/<K>/contexts/<C>/schemes/<S>/tried_regions/<R>/age
+Date: Oct 2022
+Contact: SeongJae Park <[email protected]>
+Description: Reading this file returns the 'age' of a memory region that
+ corresponding DAMON-based Operation Scheme's action has tried
+ to be applied.

Documentation/admin-guide/blockdev/zram.rst

View file
diff --git a/Documentation/admin-guide/blockdev/zram.rst b/Documentation/admin-guide/blockdev/zram.rst
index c73b169..e455157 100644
--- a/Documentation/admin-guide/blockdev/zram.rst
+++ b/Documentation/admin-guide/blockdev/zram.rst
@@ -348,8 +348,13 @@ this can be accomplished with::
echo huge_idle > /sys/block/zramX/writeback
+If a user chooses to writeback only incompressible pages (pages that none of
+algorithms can compress) this can be accomplished with::
+
+ echo incompressible > /sys/block/zramX/writeback
+
If an admin wants to write a specific page in zram device to the backing device,
-they could write a page index into the interface.
+they could write a page index into the interface::
echo "page_index=1251" > /sys/block/zramX/writeback
@@ -401,6 +406,87 @@ budget in next setting is user's job.
If admin wants to measure writeback count in a certain period, they could
know it via /sys/block/zram0/bd_stat's 3rd column.
+recompression
+-------------
+
+With CONFIG_ZRAM_MULTI_COMP, zram can recompress pages using alternative
+(secondary) compression algorithms. The basic idea is that alternative
+compression algorithm can provide better compression ratio at a price of
+(potentially) slower compression/decompression speeds. Alternative compression
+algorithm can, for example, be more successful compressing huge pages (those
+that default algorithm failed to compress). Another application is idle pages
+recompression - pages that are cold and sit in the memory can be recompressed
+using more effective algorithm and, hence, reduce zsmalloc memory usage.
+
+With CONFIG_ZRAM_MULTI_COMP, zram supports up to 4 compression algorithms:
+one primary and up to 3 secondary ones. Primary zram compressor is explained
+in "3) Select compression algorithm", secondary algorithms are configured
+using recomp_algorithm device attribute.
+
+Example:::
+
+ #show supported recompression algorithms
+ cat /sys/block/zramX/recomp_algorithm
+ #1: lzo lzo-rle lz4 lz4hc [zstd]
+ #2: lzo lzo-rle lz4 [lz4hc] zstd
+
+Alternative compression algorithms are sorted by priority. In the example
+above, zstd is used as the first alternative algorithm, which has priority
+of 1, while lz4hc is configured as a compression algorithm with priority 2.
+Alternative compression algorithm's priority is provided during algorithms
+configuration:::
+
+ #select zstd recompression algorithm, priority 1
+ echo "algo=zstd priority=1" > /sys/block/zramX/recomp_algorithm
+
+ #select deflate recompression algorithm, priority 2
+ echo "algo=deflate priority=2" > /sys/block/zramX/recomp_algorithm
+
+Another device attribute that CONFIG_ZRAM_MULTI_COMP enables is recompress,
+which controls recompression.
+
+Examples:::
+
+ #IDLE pages recompression is activated by `idle` mode
+ echo "type=idle" > /sys/block/zramX/recompress
+
+ #HUGE pages recompression is activated by `huge` mode
+ echo "type=huge" > /sys/block/zram0/recompress
+
+ #HUGE_IDLE pages recompression is activated by `huge_idle` mode
+ echo "type=huge_idle" > /sys/block/zramX/recompress
+
+The number of idle pages can be significant, so user-space can pass a size
+threshold (in bytes) to the recompress knob: zram will recompress only pages
+of equal or greater size:::
+
+ #recompress all pages larger than 3000 bytes
+ echo "threshold=3000" > /sys/block/zramX/recompress
+
+ #recompress idle pages larger than 2000 bytes
+ echo "type=idle threshold=2000" > /sys/block/zramX/recompress
+
+Recompression of idle pages requires memory tracking.
+
+During re-compression for every page, that matches re-compression criteria,
+ZRAM iterates the list of registered alternative compression algorithms in
+order of their priorities. ZRAM stops either when re-compression was
+successful (re-compressed object is smaller in size than the original one)
+and matches re-compression criteria (e.g. size threshold) or when there are
+no secondary algorithms left to try. If none of the secondary algorithms can
+successfully re-compressed the page such a page is marked as incompressible,
+so ZRAM will not attempt to re-compress it in the future.
+
+This re-compression behaviour, when it iterates through the list of
+registered compression algorithms, increases our chances of finding the
+algorithm that successfully compresses a particular page. Sometimes, however,
+it is convenient (and sometimes even necessary) to limit recompression to
+only one particular algorithm so that it will not try any other algorithms.
+This can be achieved by providing a algo=NAME parameter:::
+
+ #use zstd algorithm only (if registered)
+ echo "type=huge algo=zstd" > /sys/block/zramX/recompress
+
memory tracking
===============
@@ -411,9 +497,11 @@ pages of the process with*pagemap.
If you enable the feature, you could see block state via
/sys/kernel/debug/zram/zram0/block_state". The output is as follows::
- 300 75.033841 .wh.
- 301 63.806904 s...
- 302 63.806919 ..hi
+ 300 75.033841 .wh...
+ 301 63.806904 s.....
+ 302 63.806919 ..hi..
+ 303 62.801919 ....r.
+ 304 146.781902 ..hi.n
First column
zram's block index.
@@ -430,6 +518,10 @@ Third column
huge page
i:
idle page
+ r:
+ recompressed page (secondary compression algorithm)
+ n:
+ none (including secondary) of algorithms could compress it
First line of above example says 300th block is accessed at 75.033841sec
and the block's state is huge so it is written back to the backing

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

View file
diff --git a/Documentation/admin-guide/cgroup-v1/memory.rst b/Documentation/admin-guide/cgroup-v1/memory.rst
index 5b86245..60370f2 100644
--- a/Documentation/admin-guide/cgroup-v1/memory.rst
+++ b/Documentation/admin-guide/cgroup-v1/memory.rst
@@ -543,7 +543,8 @@ inactive_anon # of bytes of anonymous and swap cache memory on inactive
LRU list.
active_anon # of bytes of anonymous and swap cache memory on active
LRU list.
-inactive_file # of bytes of file-backed memory on inactive LRU list.
+inactive_file # of bytes of file-backed memory and MADV_FREE anonymous memory(
+ LazyFree pages) on inactive LRU list.
active_file # of bytes of file-backed memory on active LRU list.
unevictable # of bytes of memory that cannot be reclaimed (mlocked etc).
=============== ===============================================================

Documentation/admin-guide/cgroup-v2.rst

View file
diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst
index dc254a3..c8ae7c8 100644
--- a/Documentation/admin-guide/cgroup-v2.rst
+++ b/Documentation/admin-guide/cgroup-v2.rst
@@ -1245,17 +1245,13 @@ PAGE_SIZE multiple when read back.
This is a simple interface to trigger memory reclaim in the
target cgroup.
- This file accepts a single key, the number of bytes to reclaim.
- No nested keys are currently supported.
+ This file accepts a string which contains the number of bytes to
+ reclaim.
Example::
echo "1G" > memory.reclaim
- The interface can be later extended with nested keys to
- configure the reclaim behavior. For example, specify the
- type of memory to reclaim from (anon, file, ..).
-
Please note that the kernel can over or under reclaim from
the target cgroup. If less bytes are reclaimed than the
specified amount, -EAGAIN is returned.
@@ -1267,6 +1263,13 @@ PAGE_SIZE multiple when read back.
This means that the networking layer will not adapt based on
reclaim induced by memory.reclaim.
+ This file also allows the user to specify the nodes to reclaim from,
+ via the 'nodes=' key, for example::
+
+ echo "1G nodes=0,1" > memory.reclaim
+
+ The above instructs the kernel to reclaim memory from nodes 0,1.
+
memory.peak
A read-only single value file which exists on non-root
cgroups.
@@ -1488,12 +1491,18 @@ PAGE_SIZE multiple when read back.
pgscan_direct (npn)
Amount of scanned pages directly (in an inactive LRU list)
+ pgscan_khugepaged (npn)
+ Amount of scanned pages by khugepaged (in an inactive LRU list)
+
pgsteal_kswapd (npn)
Amount of reclaimed pages by kswapd
pgsteal_direct (npn)
Amount of reclaimed pages directly
+ pgsteal_khugepaged (npn)
+ Amount of reclaimed pages by khugepaged
+
pgfault (npn)
Total number of page faults incurred

Documentation/admin-guide/mm/damon/usage.rst

View file
diff --git a/Documentation/admin-guide/mm/damon/usage.rst b/Documentation/admin-guide/mm/damon/usage.rst
index b47b0cb..1a5b6b7 100644
--- a/Documentation/admin-guide/mm/damon/usage.rst
+++ b/Documentation/admin-guide/mm/damon/usage.rst
@@ -88,6 +88,9 @@ comma (","). ::
│ │ │ │ │ │ │ │ weights/sz_permil,nr_accesses_permil,age_permil
│ │ │ │ │ │ │ watermarks/metric,interval_us,high,mid,low
│ │ │ │ │ │ │ stats/nr_tried,sz_tried,nr_applied,sz_applied,qt_exceeds
+ │ │ │ │ │ │ │ tried_regions/
+ │ │ │ │ │ │ │ │ 0/start,end,nr_accesses,age
+ │ │ │ │ │ │ │ │ ...
│ │ │ │ │ │ ...
│ │ │ │ ...
│ │ ...
@@ -125,7 +128,14 @@ in the state. Writing ``commit`` to the ``state`` file makes kdamond reads the
user inputs in the sysfs files except ``state`` file again. Writing
``update_schemes_stats`` to ``state`` file updates the contents of stats files
for each DAMON-based operation scheme of the kdamond. For details of the
-stats, please refer to :ref:`stats section <sysfs_schemes_stats>`.
+stats, please refer to :ref:`stats section <sysfs_schemes_stats>`. Writing
+``update_schemes_tried_regions`` to ``state`` file updates the DAMON-based
+operation scheme action tried regions directory for each DAMON-based operation
+scheme of the kdamond. Writing ``clear_schemes_tried_regions`` to ``state``
+file clears the DAMON-based operating scheme action tried regions directory for
+each DAMON-based operation scheme of the kdamond. For details of the
+DAMON-based operation scheme action tried regions directory, please refer to
+:ref:tried_regions section <sysfs_schemes_tried_regions>`.
If the state is ``on``, reading ``pid`` shows the pid of the kdamond thread.
@@ -166,6 +176,8 @@ You can set and get what type of monitoring operations DAMON will use for the
context by writing one of the keywords listed in ``avail_operations`` file and
reading from the ``operations`` file.
+.. _sysfs_monitoring_attrs:
+
contexts/<N>/monitoring_attrs/
------------------------------
@@ -235,6 +247,9 @@ In each region directory, you will find two files (``start`` and ``end``). You
can set and get the start and end addresses of the initial monitoring target
region by writing to and reading from the files, respectively.
+Each region should not overlap with others. ``end`` of directory ``N`` should
+be equal or smaller than ``start`` of directory ``N+1``.
+
contexts/<N>/schemes/
---------------------
@@ -252,8 +267,9 @@ to ``N-1``. Each directory represents each DAMON-based operation scheme.
schemes/<N>/
------------
-In each scheme directory, four directories (``access_pattern``, ``quotas``,
-``watermarks``, and ``stats``) and one file (``action``) exist.
+In each scheme directory, five directories (``access_pattern``, ``quotas``,
+``watermarks``, ``stats``, and ``tried_regions``) and one file (``action``)
+exist.
The ``action`` file is for setting and getting what action you want to apply to
memory regions having specific access pattern of the interest. The keywords
@@ -348,6 +364,32 @@ should ask DAMON sysfs interface to updte the content of the files for the
stats by writing a special keyword, ``update_schemes_stats`` to the relevant
``kdamonds/<N>/state`` file.
+.. _sysfs_schemes_tried_regions:
+
+schemes/<N>/tried_regions/
+--------------------------
+
+When a special keyword, ``update_schemes_tried_regions``, is written to the
+relevant ``kdamonds/<N>/state`` file, DAMON creates directories named integer
+starting from ``0`` under this directory. Each directory contains files
+exposing detailed information about each of the memory region that the
+corresponding scheme's ``action`` has tried to be applied under this directory,
+during next :ref:`aggregation interval <sysfs_monitoring_attrs>`. The
+information includes address range, ``nr_accesses``, , and ``age`` of the
+region.
+
+The directories will be removed when another special keyword,
+``clear_schemes_tried_regions``, is written to the relevant
+``kdamonds/<N>/state`` file.
+
+tried_regions/<N>/
+------------------
+
+In each region directory, you will find four files (``start``, ``end``,
+``nr_accesses``, and ``age``). Reading the files will show the start and end
+addresses, ``nr_accesses``, and ``age`` of the region that corresponding
+DAMON-based operation scheme ``action`` has tried to be applied.
+
Example
~~~~~~~
@@ -465,8 +507,9 @@ regions in case of physical memory monitoring. Therefore, users should set the
monitoring target regions by themselves.
In such cases, users can explicitly set the initial monitoring target regions
-as they want, by writing proper values to the ``init_regions`` file. Each line
-of the input should represent one region in below form.::
+as they want, by writing proper values to the ``init_regions`` file. The input
+should be a sequence of three integers separated by white spaces that represent
+one region in below form.::
<target idx> <start address> <end address>
@@ -481,9 +524,9 @@ ranges, ``20-40`` and ``50-100`` as that of pid 4242, which is the second one
# cd <debugfs>/damon
# cat target_ids
42 4242
- # echo "0 1 100
- 0 100 200
- 1 20 40
+ # echo "0 1 100 \
+ 0 100 200 \
+ 1 20 40 \
1 50 100" > init_regions
Note that this sets the initial monitoring target regions only. In case of

Documentation/filesystems/proc.rst

View file
diff --git a/Documentation/filesystems/proc.rst b/Documentation/filesystems/proc.rst
index f4ee84d..e224b6d 100644
--- a/Documentation/filesystems/proc.rst
+++ b/Documentation/filesystems/proc.rst
@@ -428,14 +428,16 @@ with the memory region, as the case would be with BSS (uninitialized data).
The "pathname" shows the name associated file for this mapping. If the mapping
is not associated with a file:
- ============= ====================================
+ =================== ===========================================
[heap] the heap of the program
[stack] the stack of the main process
[vdso] the "virtual dynamic shared object",
the kernel system call handler
- [anon:<name>] an anonymous mapping that has been
+ [anon:<name>] a private anonymous mapping that has been
named by userspace
- ============= ====================================
+ [anon_shmem:<name>] an anonymous shared memory mapping that has
+ been named by userspace
+ =================== ===========================================
or if empty, the mapping is anonymous.

Documentation/mm/arch_pgtable_helpers.rst

View file
diff --git a/Documentation/mm/arch_pgtable_helpers.rst b/Documentation/mm/arch_pgtable_helpers.rst
index cbaee9e..fd2a19d 100644
--- a/Documentation/mm/arch_pgtable_helpers.rst
+++ b/Documentation/mm/arch_pgtable_helpers.rst
@@ -94,7 +94,7 @@ PMD Page Table Helpers
+---------------------------+--------------------------------------------------+
| pmd_trans_huge | Tests a Transparent Huge Page (THP) at PMD |
+---------------------------+--------------------------------------------------+
-| pmd_present | Tests a valid mapped PMD |
+| pmd_present | Tests whether pmd_page() points to valid memory |
+---------------------------+--------------------------------------------------+
| pmd_young | Tests a young PMD |
+---------------------------+--------------------------------------------------+

Documentation/mm/transhuge.rst

View file
diff --git a/Documentation/mm/transhuge.rst b/Documentation/mm/transhuge.rst
index 216db1d..ec3dc5b 100644
--- a/Documentation/mm/transhuge.rst
+++ b/Documentation/mm/transhuge.rst
@@ -117,31 +117,15 @@ pages:
- ->_refcount in tail pages is always zero: get_page_unless_zero() never
succeeds on tail pages.
- - map/unmap of the pages with PTE entry increment/decrement ->_mapcount
- on relevant sub-page of the compound page.
-
- - map/unmap of the whole compound page is accounted for in compound_mapcount
- (stored in first tail page). For file huge pages, we also increment
- ->_mapcount of all sub-pages in order to have race-free detection of
- last unmap of subpages.
-
-PageDoubleMap() indicates that the page is *possibly* mapped with PTEs.
-
-For anonymous pages, PageDoubleMap() also indicates ->_mapcount in all
-subpages is offset up by one. This additional reference is required to
-get race-free detection of unmap of subpages when we have them mapped with
-both PMDs and PTEs.
-
-This optimization is required to lower the overhead of per-subpage mapcount
-tracking. The alternative is to alter ->_mapcount in all subpages on each
-map/unmap of the whole compound page.
-
-For anonymous pages, we set PG_double_map when a PMD of the page is split
-for the first time, but still have a PMD mapping. The additional references
-go away with the last compound_mapcount.
-
-File pages get PG_double_map set on the first map of the page with PTE and
-goes away when the page gets evicted from the page cache.
+ - map/unmap of PMD entry for the whole compound page increment/decrement
+ ->compound_mapcount, stored in the first tail page of the compound page;
+ and also increment/decrement ->subpages_mapcount (also in the first tail)
+ by COMPOUND_MAPPED when compound_mapcount goes from -1 to 0 or 0 to -1.
+
+ - map/unmap of sub-pages with PTE entry increment/decrement ->_mapcount
+ on relevant sub-page of the compound page, and also increment/decrement
+ ->subpages_mapcount, stored in first tail page of the compound page, when
+ _mapcount goes from -1 to 0 or 0 to -1: counting sub-pages mapped by PTE.
split_huge_page internally has to distribute the refcounts in the head
page to the tail pages before clearing all PG_head/tail bits from the page

MAINTAINERS

View file
diff --git a/MAINTAINERS b/MAINTAINERS
index 5a4526a..bb77a3e 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -13399,10 +13399,20 @@ F: include/linux/memory_hotplug.h
F: include/linux/mm.h
F: include/linux/mmzone.h
F: include/linux/pagewalk.h
-F: include/linux/vmalloc.h
F: mm/
F: tools/testing/selftests/vm/
+VMALLOC
+M: Andrew Morton <[email protected]>
+R: Uladzislau Rezki <[email protected]>
+R: Christoph Hellwig <[email protected]>
+S: Maintained
+W: http://www.linux-mm.org
+T: git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
+F: include/linux/vmalloc.h
+F: mm/vmalloc.c
+
MEMORY HOT(UN)PLUG
M: David Hildenbrand <[email protected]>
M: Oscar Salvador <[email protected]>

arch/alpha/include/asm/pgtable.h

View file
diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h
index 3ea9661..9e45f67 100644
--- a/arch/alpha/include/asm/pgtable.h
+++ b/arch/alpha/include/asm/pgtable.h
@@ -313,8 +313,6 @@ extern inline pte_t mk_swap_pte(unsigned long type, unsigned long offset)
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
#define __swp_entry_to_pte(x) ((pte_t) { (x).val })
-#define kern_addr_valid(addr) (1)
-
#define pte_ERROR(e) \
printk("%s:%d: bad pte %016lx.\n", __FILE__, __LINE__, pte_val(e))
#define pmd_ERROR(e) \

arch/arc/include/asm/pgtable-bits-arcv2.h

View file
diff --git a/arch/arc/include/asm/pgtable-bits-arcv2.h b/arch/arc/include/asm/pgtable-bits-arcv2.h

This diff is incomplete. Download the complete patch.

arch/arm/include/asm/pgtable-nommu.h

View file

This diff is incomplete. Download the complete patch.

arch/arm/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/arm64/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/arm64/mm/mmu.c

View file

This diff is incomplete. Download the complete patch.

arch/arm64/mm/pageattr.c

View file

This diff is incomplete. Download the complete patch.

arch/csky/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/hexagon/include/asm/page.h

View file

This diff is incomplete. Download the complete patch.

arch/ia64/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/ia64/mm/hugetlbpage.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/Kconfig

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/pgalloc.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/include/asm/sparsemem.h

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/kernel/numa.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/init.c

View file

This diff is incomplete. Download the complete patch.

arch/loongarch/mm/pgtable.c

View file

This diff is incomplete. Download the complete patch.

arch/m68k/include/asm/pgtable_mm.h

View file

This diff is incomplete. Download the complete patch.

arch/m68k/include/asm/pgtable_no.h

View file

This diff is incomplete. Download the complete patch.

arch/microblaze/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/mips/include/asm/pgalloc.h

View file

This diff is incomplete. Download the complete patch.

arch/mips/include/asm/pgtable-64.h

View file

This diff is incomplete. Download the complete patch.

arch/mips/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/mips/kvm/mmu.c

View file

This diff is incomplete. Download the complete patch.

arch/mips/mm/pgtable-32.c

View file

This diff is incomplete. Download the complete patch.

arch/mips/mm/pgtable-64.c

View file

This diff is incomplete. Download the complete patch.

arch/mips/mm/pgtable.c

View file

This diff is incomplete. Download the complete patch.

arch/nios2/include/asm/pgalloc.h

View file

This diff is incomplete. Download the complete patch.

arch/nios2/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/nios2/include/asm/processor.h

View file

This diff is incomplete. Download the complete patch.

arch/openrisc/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/parisc/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/parisc/kernel/pdt.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/include/asm/book3s/64/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/kvm/book3s_hv_rm_mmu.c

View file

This diff is incomplete. Download the complete patch.

arch/powerpc/mm/hugetlbpage.c

View file

This diff is incomplete. Download the complete patch.

arch/riscv/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/s390/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/s390/include/asm/tlb.h

View file

This diff is incomplete. Download the complete patch.

arch/s390/mm/gmap.c

View file

This diff is incomplete. Download the complete patch.

arch/sh/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/sparc/include/asm/pgtable_32.h

View file

This diff is incomplete. Download the complete patch.

arch/sparc/mm/init_32.c

View file

This diff is incomplete. Download the complete patch.

arch/sparc/mm/init_64.c

View file

This diff is incomplete. Download the complete patch.

arch/um/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/pgtable_32.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/include/asm/pgtable_64.h

View file

This diff is incomplete. Download the complete patch.

arch/x86/kernel/cpu/sgx/encl.c

View file

This diff is incomplete. Download the complete patch.

arch/x86/mm/init_64.c

View file

This diff is incomplete. Download the complete patch.

arch/xtensa/include/asm/pgtable.h

View file

This diff is incomplete. Download the complete patch.

drivers/acpi/numa/hmat.c

View file

This diff is incomplete. Download the complete patch.

drivers/base/memory.c

View file

This diff is incomplete. Download the complete patch.

drivers/block/zram/Kconfig

View file

This diff is incomplete. Download the complete patch.

drivers/block/zram/zcomp.c

View file

This diff is incomplete. Download the complete patch.

drivers/block/zram/zcomp.h

View file

This diff is incomplete. Download the complete patch.

drivers/block/zram/zram_drv.c

View file

This diff is incomplete. Download the complete patch.

drivers/block/zram/zram_drv.h

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/etnaviv/etnaviv_gem.c

View file

This diff is incomplete. Download the complete patch.

drivers/gpu/drm/exynos/exynos_drm_g2d.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/core/umem.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/qib/qib_user_pages.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/hw/usnic/usnic_uiom.c

View file

This diff is incomplete. Download the complete patch.

drivers/infiniband/sw/siw/siw_mem.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/common/videobuf2/frame_vector.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/pci/ivtv/ivtv-udma.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/pci/ivtv/ivtv-yuv.c

View file

This diff is incomplete. Download the complete patch.

drivers/media/v4l2-core/videobuf-dma-sg.c

View file

This diff is incomplete. Download the complete patch.

drivers/misc/habanalabs/common/memory.c

View file

This diff is incomplete. Download the complete patch.

fs/dax.c

View file

This diff is incomplete. Download the complete patch.

fs/exfat/inode.c

View file

This diff is incomplete. Download the complete patch.

fs/ext4/move_extent.c

View file

This diff is incomplete. Download the complete patch.

fs/fat/inode.c

View file

This diff is incomplete. Download the complete patch.

fs/fuse/dev.c

View file

This diff is incomplete. Download the complete patch.

fs/hfs/inode.c

View file

This diff is incomplete. Download the complete patch.

fs/hfsplus/inode.c

View file

This diff is incomplete. Download the complete patch.

fs/hpfs/file.c

View file

This diff is incomplete. Download the complete patch.

fs/hugetlbfs/inode.c

View file

This diff is incomplete. Download the complete patch.

fs/jfs/inode.c

View file

This diff is incomplete. Download the complete patch.

fs/omfs/file.c

View file

This diff is incomplete. Download the complete patch.

fs/proc/kcore.c

View file

This diff is incomplete. Download the complete patch.

fs/proc/task_mmu.c

View file

This diff is incomplete. Download the complete patch.

fs/xfs/xfs_ioctl.c

View file

This diff is incomplete. Download the complete patch.

fs/xfs/xfs_iomap.c

View file

This diff is incomplete. Download the complete patch.

fs/xfs/xfs_iops.c

View file

This diff is incomplete. Download the complete patch.

fs/xfs/xfs_reflink.c

View file

This diff is incomplete. Download the complete patch.

include/asm-generic/tlb.h

View file

This diff is incomplete. Download the complete patch.

include/linux/backing-dev.h

View file

This diff is incomplete. Download the complete patch.

include/linux/compiler-gcc.h

View file

This diff is incomplete. Download the complete patch.

include/linux/damon.h

View file

This diff is incomplete. Download the complete patch.

include/linux/dax.h

View file

This diff is incomplete. Download the complete patch.

include/linux/highmem.h

View file

This diff is incomplete. Download the complete patch.

include/linux/hugetlb.h

View file

This diff is incomplete. Download the complete patch.

include/linux/hugetlb_cgroup.h

View file

This diff is incomplete. Download the complete patch.

include/linux/khugepaged.h

View file

This diff is incomplete. Download the complete patch.

include/linux/memcontrol.h

View file

This diff is incomplete. Download the complete patch.

include/linux/memory-tiers.h

View file

This diff is incomplete. Download the complete patch.

include/linux/memory.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mm.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mm_types.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mm_types_task.h

View file

This diff is incomplete. Download the complete patch.

include/linux/mmzone.h

View file

This diff is incomplete. Download the complete patch.

include/linux/page-flags.h

View file

This diff is incomplete. Download the complete patch.

include/linux/pagemap.h

View file

This diff is incomplete. Download the complete patch.

include/linux/pagewalk.h

View file

This diff is incomplete. Download the complete patch.

include/linux/percpu_counter.h

View file

This diff is incomplete. Download the complete patch.

include/linux/pgtable.h

View file

This diff is incomplete. Download the complete patch.

include/linux/sched.h

View file

This diff is incomplete. Download the complete patch.

include/linux/shrinker.h

View file

This diff is incomplete. Download the complete patch.

include/linux/swap.h

View file

This diff is incomplete. Download the complete patch.

include/linux/swapops.h

View file

This diff is incomplete. Download the complete patch.

include/linux/vm_event_item.h

View file

This diff is incomplete. Download the complete patch.

include/linux/zsmalloc.h

View file

This diff is incomplete. Download the complete patch.

include/trace/events/huge_memory.h

View file

This diff is incomplete. Download the complete patch.

include/trace/events/kmem.h

View file

This diff is incomplete. Download the complete patch.

include/trace/events/vmalloc.h

View file

This diff is incomplete. Download the complete patch.

kernel/cgroup/cpuset.c

View file

This diff is incomplete. Download the complete patch.

kernel/fork.c

View file

This diff is incomplete. Download the complete patch.

kernel/locking/Makefile

View file

This diff is incomplete. Download the complete patch.

kernel/sysctl.c

View file

This diff is incomplete. Download the complete patch.

lib/Kconfig.debug

View file

This diff is incomplete. Download the complete patch.

lib/Kconfig.kasan

View file

This diff is incomplete. Download the complete patch.

lib/maple_tree.c

View file

This diff is incomplete. Download the complete patch.

lib/percpu_counter.c

View file

This diff is incomplete. Download the complete patch.

mm/Kconfig

View file

This diff is incomplete. Download the complete patch.

mm/backing-dev.c

View file

This diff is incomplete. Download the complete patch.

mm/compaction.c

View file

This diff is incomplete. Download the complete patch.

mm/damon/Makefile

View file

This diff is incomplete. Download the complete patch.

mm/damon/core.c

View file

This diff is incomplete. Download the complete patch.

mm/damon/lru_sort.c

View file

This diff is incomplete. Download the complete patch.

mm/damon/modules-common.c

View file

This diff is incomplete. Download the complete patch.

mm/damon/modules-common.h

View file

This diff is incomplete. Download the complete patch.

mm/damon/reclaim.c

View file

This diff is incomplete. Download the complete patch.

mm/damon/sysfs-common.c

View file

This diff is incomplete. Download the complete patch.

mm/damon/sysfs-common.h

View file

This diff is incomplete. Download the complete patch.

mm/damon/sysfs-schemes.c

View file

This diff is incomplete. Download the complete patch.

mm/damon/sysfs.c

View file

This diff is incomplete. Download the complete patch.

mm/debug.c

View file

This diff is incomplete. Download the complete patch.

mm/debug_vm_pgtable.c

View file

This diff is incomplete. Download the complete patch.

mm/fadvise.c

View file

This diff is incomplete. Download the complete patch.

mm/filemap.c

View file

This diff is incomplete. Download the complete patch.

mm/folio-compat.c

View file

This diff is incomplete. Download the complete patch.

mm/gup.c

View file

This diff is incomplete. Download the complete patch.

mm/gup_test.c

View file

This diff is incomplete. Download the complete patch.

mm/gup_test.h

View file

This diff is incomplete. Download the complete patch.

mm/huge_memory.c

View file

This diff is incomplete. Download the complete patch.

mm/hugetlb.c

View file

This diff is incomplete. Download the complete patch.

mm/hugetlb_cgroup.c

View file

This diff is incomplete. Download the complete patch.

mm/hugetlb_vmemmap.c

View file

This diff is incomplete. Download the complete patch.

mm/internal.h

View file

This diff is incomplete. Download the complete patch.

mm/kasan/kasan.h

View file

This diff is incomplete. Download the complete patch.

mm/kasan/kasan_test.c

View file

This diff is incomplete. Download the complete patch.

mm/kasan/kasan_test_module.c

View file

This diff is incomplete. Download the complete patch.

mm/kasan/report.c

View file

This diff is incomplete. Download the complete patch.

mm/kasan/shadow.c

View file

This diff is incomplete. Download the complete patch.

mm/kfence/core.c

View file

This diff is incomplete. Download the complete patch.

mm/khugepaged.c

View file

This diff is incomplete. Download the complete patch.

mm/kmemleak.c

View file

This diff is incomplete. Download the complete patch.

mm/kmsan/instrumentation.c

View file

This diff is incomplete. Download the complete patch.

mm/kmsan/kmsan_test.c

View file

This diff is incomplete. Download the complete patch.

mm/ksm.c

View file

This diff is incomplete. Download the complete patch.

mm/madvise.c

View file

This diff is incomplete. Download the complete patch.

mm/memcontrol.c

View file

This diff is incomplete. Download the complete patch.

mm/memory-failure.c

View file

This diff is incomplete. Download the complete patch.

mm/memory-tiers.c

View file

This diff is incomplete. Download the complete patch.

mm/memory.c

View file

This diff is incomplete. Download the complete patch.

mm/mempool.c

View file

This diff is incomplete. Download the complete patch.

mm/migrate.c

View file

This diff is incomplete. Download the complete patch.

mm/mincore.c

View file

This diff is incomplete. Download the complete patch.

mm/mm_init.c

View file

This diff is incomplete. Download the complete patch.

mm/mmap.c

View file

This diff is incomplete. Download the complete patch.

mm/mmu_gather.c

View file

This diff is incomplete. Download the complete patch.

mm/mprotect.c

View file

This diff is incomplete. Download the complete patch.

mm/page-writeback.c

View file

This diff is incomplete. Download the complete patch.

mm/page_alloc.c

View file

This diff is incomplete. Download the complete patch.

mm/page_ext.c

View file

This diff is incomplete. Download the complete patch.

mm/page_table_check.c

View file

This diff is incomplete. Download the complete patch.

mm/pagewalk.c

View file

This diff is incomplete. Download the complete patch.

mm/rmap.c

View file

This diff is incomplete. Download the complete patch.

mm/shmem.c

View file

This diff is incomplete. Download the complete patch.

mm/slub.c

View file

This diff is incomplete. Download the complete patch.

mm/sparse-vmemmap.c

View file

This diff is incomplete. Download the complete patch.

mm/sparse.c

View file

This diff is incomplete. Download the complete patch.

mm/swap.c

View file

This diff is incomplete. Download the complete patch.

mm/swap.h

View file

This diff is incomplete. Download the complete patch.

mm/swap_state.c

View file

This diff is incomplete. Download the complete patch.

mm/swapfile.c

View file

This diff is incomplete. Download the complete patch.

mm/truncate.c

View file

This diff is incomplete. Download the complete patch.

mm/usercopy.c

View file

This diff is incomplete. Download the complete patch.

mm/userfaultfd.c

View file

This diff is incomplete. Download the complete patch.

mm/util.c

View file

This diff is incomplete. Download the complete patch.

mm/vmalloc.c

View file

This diff is incomplete. Download the complete patch.

mm/vmscan.c

View file

This diff is incomplete. Download the complete patch.

mm/vmstat.c

View file

This diff is incomplete. Download the complete patch.

mm/workingset.c

View file

This diff is incomplete. Download the complete patch.

mm/z3fold.c

View file

This diff is incomplete. Download the complete patch.

mm/zbud.c

View file

This diff is incomplete. Download the complete patch.

mm/zpool.c

View file

This diff is incomplete. Download the complete patch.

mm/zsmalloc.c

View file

This diff is incomplete. Download the complete patch.

mm/zswap.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/cgroup/test_memcontrol.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/damon/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/damon/debugfs_rm_non_contexts.sh

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/damon/huge_count_read_write.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/damon/lru_sort.sh

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/damon/reclaim.sh

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/damon/sysfs.sh

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/damon/sysfs_update_removed_scheme_dir.sh

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/.gitignore

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/Makefile

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/check_config.sh

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/cow.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/hugepage-mmap.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/hugepage-mremap.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/hugetlb-madvise.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/ksm_functional_tests.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/ksm_tests.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/madv_populate.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/run_vmtests.sh

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/userfaultfd.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/vm_util.c

View file

This diff is incomplete. Download the complete patch.

tools/testing/selftests/vm/vm_util.h

View file

This diff is incomplete. Download the complete patch.

tools/vm/.gitignore

View file

This diff is incomplete. Download the complete patch.