This patch set is used to backport etmem feature patches to
version 23.09.
etmem is a tiered memory extension technology that uses
DRAM+memory compression/high-performance storage media to
form tiered memory storage.
Memory data is tiered, and cold data is migrated from memory
media to high-performance storage media to release
memory space and reduce memory costs.
v1 -> v2
- some cleanup fix
Kemeng Shi (11):
etmem: add ioctl for mm idle scan
etmem: x86: support scan hugetlb of vm
etmem_scan: x86: support scan 4 level ept under 5 level host page
table
etmem scan: fix memleak in vm_idle_read
etmem: fix concurrent access to export file operations
etmem: fix potential UAF when walk ept page table
etmem_scan: release CPU after scan walk_step size
etmem_scan: add pte_hole callback
acpi/numa: memorize node type from SRAT table
hugepage: add sysctl for hugepage alloc and mig
x86: hugepage: use nt copy hugepage to AEP in x86
liubo (14):
memig: add memig-scan feature to openEuler
memig: add memig-swap feature to openEuler
memig: fix compile error when CONFIG_NUMA is turned off
etmem: Modify the memig feature name to etmem
move ETMEM feature CONFIG to mm/Kconfig and add architecture
dependency
etmem: etmem scan module Replace WARN_ONCE() with debug_printk for
"nothing read"
add ETMEM feature CONFIG to mm/Kconfig
config: enable CONFIG_ETMEM by default
etmem: add CONFIG_ETMEM macro definition for etmem feature
etmem: add original kernel swap enabled options
etmem: add swapcache reclaim to etmem
etmem: Add a scan flag to support specified page swap-out
etmem: fix the div 0 problem in swapcache reclaim process
etmem: fix some problem during backport etmem patches
arch/arm64/configs/openeuler_defconfig | 3 +
arch/x86/configs/openeuler_defconfig | 3 +
arch/x86/include/asm/page_64.h | 7 +
arch/x86/lib/Makefile | 1 +
arch/x86/lib/copy_highpages.c | 107 ++
arch/x86/lib/copy_page_64.S | 73 ++
drivers/acpi/numa/srat.c | 5 +
fs/proc/Makefile | 2 +
fs/proc/base.c | 8 +
fs/proc/etmem_scan.c | 1383 ++++++++++++++++++++++++
fs/proc/etmem_scan.h | 149 +++
fs/proc/etmem_swap.c | 282 +++++
fs/proc/internal.h | 4 +
fs/proc/task_mmu.c | 194 ++++
include/linux/highmem.h | 17 +
include/linux/hugetlb.h | 6 +
include/linux/list.h | 17 +
include/linux/mm.h | 4 +
include/linux/mm_types.h | 18 +-
include/linux/numa.h | 12 +
include/linux/swap.h | 38 +
include/uapi/asm-generic/mman-common.h | 3 +
kernel/sysctl.c | 20 +
mm/Kconfig | 25 +
mm/huge_memory.c | 1 +
mm/hugetlb.c | 7 +-
mm/internal.h | 1 -
mm/madvise.c | 17 +-
mm/page_alloc.c | 13 +
mm/pagewalk.c | 1 +
mm/swap_state.c | 37 +
mm/util.c | 11 +-
mm/vmscan.c | 390 +++++++
virt/kvm/kvm_main.c | 6 +
34 files changed, 2852 insertions(+), 13 deletions(-)
create mode 100644 arch/x86/lib/copy_highpages.c
create mode 100644 fs/proc/etmem_scan.c
create mode 100644 fs/proc/etmem_scan.h
create mode 100644 fs/proc/etmem_swap.c
--
2.27.0