This series introduces ZRAM-Reclaim, a memcg-aware reclaim policy for ZRAM + HDD environments. The policy uses recent anon swapin cost and file refault cost to adjust reclaim scan balance under memory pressure. The feature is optional and controlled by CONFIG_ZRAM_RECLAIM plus the per-memcg memory.zram_reclaim interface. The interface accepts "<enable> <ratio>". Enabling without an explicit ratio uses the default ratio, and disabling is represented as "0 0". The current implementation limits ratio to 60. Patch 1 adds the policy core, memcg control file, Kconfig wiring, sysctl documentation and scan-balance hook. Patch 2 connects the anon swapin and file refault paths to the policy input signals. Patch 3 adds an optional node reclaim mode for waking kswapd during node reclaim. Patch 4 enables CONFIG_ZRAM_RECLAIM in the arm64 openEuler defconfig. Ze Zuo (4): mm: add ZRAM-Reclaim infrastructure and policy core mm: hook ZRAM-Reclaim into swap and refault paths mm: node_reclaim: add optional kswapd wakeup mode config: enable ZRAM_RECLAIM in arm64 defconfig Documentation/sysctl/vm.txt | 1 + arch/arm64/configs/openeuler_defconfig | 1 + include/linux/memcontrol.h | 7 + include/linux/zram_reclaim.h | 29 ++ mm/Kconfig | 23 ++ mm/Makefile | 1 + mm/internal.h | 5 +- mm/memcontrol.c | 6 + mm/memory.c | 17 + mm/page_alloc.c | 3 +- mm/vmscan.c | 21 +- mm/workingset.c | 5 + mm/zram_reclaim.c | 411 +++++++++++++++++++++++++ 13 files changed, 526 insertions(+), 4 deletions(-) create mode 100644 include/linux/zram_reclaim.h create mode 100644 mm/zram_reclaim.c -- 2.25.1