[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <cover.1769515122.git.zhengqi.arch@bytedance.com>
Date: Tue, 27 Jan 2026 20:12:53 +0800
From: Qi Zheng <qi.zheng@...ux.dev>
To: david@...nel.org,
andreas@...sler.com,
richard.weiyang@...il.com,
will@...nel.org,
peterz@...radead.org,
aneesh.kumar@...nel.org,
npiggin@...il.com,
dev.jain@....com,
ioworker0@...il.com,
linmag7@...il.com,
akpm@...ux-foundation.org
Cc: linux-arch@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-mm@...ck.org,
linux-alpha@...r.kernel.org,
loongarch@...ts.linux.dev,
linux-mips@...r.kernel.org,
linux-parisc@...r.kernel.org,
linux-um@...ts.infradead.org,
sparclinux@...r.kernel.org,
Qi Zheng <zhengqi.arch@...edance.com>
Subject: [PATCH v4 0/8] enable PT_RECLAIM on more 64-bit architectures
From: Qi Zheng <zhengqi.arch@...edance.com>
Changes in v4:
- convert __HAVE_ARCH_TLB_REMOVE_TABLE to CONFIG_HAVE_ARCH_TLB_REMOVE_TABLE config
- fix a WARN_ON_ONCE() on sparc64 (and on ppc)
(reported by Andreas Larsson)
- collect Acked-by (Hi David, I've kept your Acked-by, feel free to drop it)
- rebase onto the v6.19-rc7
Changes in v3:
- modify the commit message in [PATCH v3 1/7] (suggested by David Hildenbrand)
- make PT_RECLAIM depends on MMU_GATHER_RCU_TABLE_FREE instead of 64BIT
- collect Acked-by
- rebase onto the next-20251217
Changelog in v2:
- fix compilation errors (reported by Magnus Lindholm and kernel test robot)
- adjust some code style (suggested by Huacai Chen)
- make PT_RECLAIM user-unselectable (suggested by David Hildenbrand)
- rebase onto the next-20251119
Hi all,
This series aims to enable PT_RECLAIM on more 64-bit architectures.
On a 64-bit system, madvise(MADV_DONTNEED) may cause a large number of empty PTE
page table pages (such as 100GB+). To resolve this problem, we need to enable
PT_RECLAIM, which depends on MMU_GATHER_RCU_TABLE_FREE.
For these architectures that define its own __tlb_remove_table(), since
their page tables are not of type struct ptdesc, they cannot be supported
PT_RECLAIM.
Therefore, this series first enables MMU_GATHER_RCU_TABLE_FREE on all 64-bit
architectures, then converts __HAVE_ARCH_TLB_REMOVE_TABLE to
CONFIG_HAVE_ARCH_TLB_REMOVE_TABLE config, and finally makes PT_RECLAIM depend on
MMU_GATHER_RCU_TABLE_FREE && !HAVE_ARCH_TLB_REMOVE_TABLE. This way, PT_RECLAIM
can be enabled by default on most 64-bit architectures.
Of course, this will also be enabled on some 32-bit architectures that already
support MMU_GATHER_RCU_TABLE_FREE. That's fine, PT_RECLAIM works well on all
32-bit architectures as well. Although the benefit isn't significant, there's
still memory that can be reclaimed. Perhaps PT_RECLAIM can be enabled on all
32-bit architectures in the future.
Comments and suggestions are welcome!
Thanks,
Qi
Qi Zheng (8):
mm: change mm/pt_reclaim.c to use asm/tlb.h instead of
asm-generic/tlb.h
alpha: mm: enable MMU_GATHER_RCU_TABLE_FREE
LoongArch: mm: enable MMU_GATHER_RCU_TABLE_FREE
mips: mm: enable MMU_GATHER_RCU_TABLE_FREE
parisc: mm: enable MMU_GATHER_RCU_TABLE_FREE
um: mm: enable MMU_GATHER_RCU_TABLE_FREE
mm: convert __HAVE_ARCH_TLB_REMOVE_TABLE to
CONFIG_HAVE_ARCH_TLB_REMOVE_TABLE config
mm: make PT_RECLAIM depends on MMU_GATHER_RCU_TABLE_FREE
arch/alpha/Kconfig | 1 +
arch/alpha/include/asm/tlb.h | 6 +++---
arch/loongarch/Kconfig | 1 +
arch/loongarch/include/asm/pgalloc.h | 7 +++----
arch/mips/Kconfig | 1 +
arch/mips/include/asm/pgalloc.h | 7 +++----
arch/parisc/Kconfig | 1 +
arch/parisc/include/asm/tlb.h | 4 ++--
arch/powerpc/Kconfig | 1 +
arch/powerpc/include/asm/tlb.h | 1 -
arch/sparc/Kconfig | 1 +
arch/sparc/include/asm/tlb_64.h | 1 -
arch/um/Kconfig | 1 +
arch/x86/Kconfig | 1 -
include/asm-generic/tlb.h | 2 +-
mm/Kconfig | 8 +++-----
mm/pt_reclaim.c | 2 +-
17 files changed, 23 insertions(+), 23 deletions(-)
--
2.20.1
Powered by blists - more mailing lists