Hi Huacai,
On 11/14/25 10:17 PM, Huacai Chen wrote:
Hi, Qi Zheng,
We usually use LoongArch rather than loongarch, but if you want to
keep consistency for all patches, just do it.
OK, will change to use LoongArch.
On Fri, Nov 14, 2025 at 7:13 PM Qi Zheng <[email protected]> wrote:
From: Qi Zheng <[email protected]>
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,
first enable MMU_GATHER_RCU_TABLE_FREE to prepare for enabling the
PT_RECLAIM feature, which resolves this problem.
Signed-off-by: Qi Zheng <[email protected]>
Cc: Huacai Chen <[email protected]>
Cc: WANG Xuerui <[email protected]>
---
arch/loongarch/Kconfig | 1 +
arch/loongarch/include/asm/pgalloc.h | 6 ++++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
index 5b1116733d881..3bf2f2a9cd647 100644
--- a/arch/loongarch/Kconfig
+++ b/arch/loongarch/Kconfig
@@ -210,6 +210,7 @@ config LOONGARCH
select USER_STACKTRACE_SUPPORT
select VDSO_GETRANDOM
select ZONE_DMA32
+ select MMU_GATHER_RCU_TABLE_FREE
Please use alpha-betical order.
OK, will do.
config 32BIT
bool
diff --git a/arch/loongarch/include/asm/pgalloc.h
b/arch/loongarch/include/asm/pgalloc.h
index 1c63a9d9a6d35..0539d04bf1525 100644
--- a/arch/loongarch/include/asm/pgalloc.h
+++ b/arch/loongarch/include/asm/pgalloc.h
@@ -79,7 +79,8 @@ static inline pmd_t *pmd_alloc_one(struct mm_struct *mm,
unsigned long address)
return pmd;
}
-#define __pmd_free_tlb(tlb, x, addr) pmd_free((tlb)->mm, x)
+#define __pmd_free_tlb(tlb, x, addr) \
+ tlb_remove_ptdesc((tlb), virt_to_ptdesc(x))
I think we can define it in one line.
will do.
#endif
@@ -99,7 +100,8 @@ static inline pud_t *pud_alloc_one(struct mm_struct *mm,
unsigned long address)
return pud;
}
-#define __pud_free_tlb(tlb, x, addr) pud_free((tlb)->mm, x)
+#define __pud_free_tlb(tlb, x, addr) \
+ tlb_remove_ptdesc((tlb), virt_to_ptdesc(x))
The same.
Other patches have the same problem.
Got it, will convert them all to the one-line type.
Thanks,
Qi
Huacai
#endif /* __PAGETABLE_PUD_FOLDED */
--
2.20.1