This series is the result of the following discussion: https://lore.kernel.org/47066176-bd93-55dd-c2fa-002299d9e034@xxxxxxxxxxxxx/ It mainly avoids building the code that walks page tables on CPUs that use it, i.e., those don't support hardware accessed bit. Specifically, it introduces a new Kconfig to guard some of functions added by commit bd74fdaea146 ("mm: multi-gen LRU: support page table walks") on CPUs like POWER9, on which the series was tested. --- v4: fix kernel build bot error by adding dummy pmd_dirty() v3: https://lore.kernel.org/20231220040037.883811-1-kinseyho@xxxxxxxxxx/ Kinsey Ho (5): mm/mglru: add CONFIG_ARCH_HAS_HW_PTE_YOUNG mm/mglru: add CONFIG_LRU_GEN_WALKS_MMU mm/mglru: remove CONFIG_MEMCG mm/mglru: add dummy pmd_dirty() mm/mglru: remove CONFIG_TRANSPARENT_HUGEPAGE arch/Kconfig | 8 + arch/arm64/Kconfig | 1 + arch/loongarch/include/asm/pgtable.h | 1 + arch/mips/include/asm/pgtable.h | 1 + arch/riscv/include/asm/pgtable.h | 1 + arch/s390/include/asm/pgtable.h | 1 + arch/sparc/include/asm/pgtable_64.h | 1 + arch/x86/Kconfig | 1 + arch/x86/include/asm/pgtable.h | 7 +- include/linux/memcontrol.h | 2 +- include/linux/mm_types.h | 16 +- include/linux/mmzone.h | 28 +-- include/linux/pgtable.h | 9 +- kernel/fork.c | 2 +- mm/Kconfig | 4 + mm/vmscan.c | 271 ++++++++++++++------------- 16 files changed, 187 insertions(+), 167 deletions(-) -- 2.43.0.472.g3155946c3a-goog