Re: [PATCH v4 7/8] mm: convert __HAVE_ARCH_TLB_REMOVE_TABLE to CONFIG_HAVE_ARCH_TLB_REMOVE_TABLE config
Qi Zheng <[email protected]>
| Newsgroups | org.kernel.vger.sparclinux,dev.linux.lists.loongarch,org.infradead.lists.linux-um,org.kernel.vger.linux-alpha,org.kernel.vger.linux-arch,org.kernel.vger.linux-kernel,org.kernel.vger.linux-mips,org.kernel.vger.linux-parisc,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
On 2/6/26 7:06 PM, David Hildenbrand (Arm) wrote: > On 1/27/26 13:13, Qi Zheng wrote: >> From: Qi Zheng <[email protected]> >> >> For architectures that define __HAVE_ARCH_TLB_REMOVE_TABLE, the page >> tables at the pmd/pud level are generally not of struct ptdesc type, and >> do not have pt_rcu_head member, thus these architectures cannot support >> PT_RECLAIM. >> >> In preparation for enabling PT_RECLAIM on more architectures, convert >> __HAVE_ARCH_TLB_REMOVE_TABLE to CONFIG_HAVE_ARCH_TLB_REMOVE_TABLE config, >> so that we can make conditional judgments in Kconfig. >> >> Signed-off-by: Qi Zheng <[email protected]> >> --- >> arch/powerpc/Kconfig | 1 + >> arch/powerpc/include/asm/tlb.h | 1 - >> arch/sparc/Kconfig | 1 + >> arch/sparc/include/asm/tlb_64.h | 1 - >> include/asm-generic/tlb.h | 2 +- >> mm/Kconfig | 3 +++ >> 6 files changed, 6 insertions(+), 3 deletions(-) >> >> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig >> index 9537a61ebae02..b47aa8fd62742 100644 >> --- a/arch/powerpc/Kconfig >> +++ b/arch/powerpc/Kconfig >> @@ -304,6 +304,7 @@ config PPC >> select LOCK_MM_AND_FIND_VMA >> select MMU_GATHER_PAGE_SIZE >> select MMU_GATHER_RCU_TABLE_FREE >> + select HAVE_ARCH_TLB_REMOVE_TABLE >> select MMU_GATHER_MERGE_VMAS >> select MMU_LAZY_TLB_SHOOTDOWN if PPC_BOOK3S_64 >> select MODULES_USE_ELF_RELA >> diff --git a/arch/powerpc/include/asm/tlb.h b/arch/powerpc/include/ >> asm/tlb.h >> index 2058e8d3e0138..1ca7d4c4b90db 100644 >> --- a/arch/powerpc/include/asm/tlb.h >> +++ b/arch/powerpc/include/asm/tlb.h >> @@ -37,7 +37,6 @@ extern void tlb_flush(struct mmu_gather *tlb); >> */ >> #define tlb_needs_table_invalidate() radix_enabled() >> -#define __HAVE_ARCH_TLB_REMOVE_TABLE >> /* Get the generic bits... */ >> #include <asm-generic/tlb.h> >> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig >> index a630d373e6453..25fa2908d6152 100644 >> --- a/arch/sparc/Kconfig >> +++ b/arch/sparc/Kconfig >> @@ -74,6 +74,7 @@ config SPARC64 >> select HAVE_KRETPROBES >> select HAVE_KPROBES >> select MMU_GATHER_RCU_TABLE_FREE if SMP >> + select HAVE_ARCH_TLB_REMOVE_TABLE if SMP > > Why the SMP? At least in tlb_64.h, it was not protected by SMP IIUC. Ah, It's just simply aligned with the MMU_GATHER_RCU_TABLE_FREE above. > > Apart from that LGTM. Thanks! >