Re: [PATCH v1 01/36] mm: stop making SPARSEMEM_VMEMMAP user-selectable
From: Wei Yang
Date: Thu Aug 28 2025 - 03:20:06 EST
On Thu, Aug 28, 2025 at 12:01:05AM +0200, David Hildenbrand wrote:
>In an ideal world, we wouldn't have to deal with SPARSEMEM without
>SPARSEMEM_VMEMMAP, but in particular for 32bit SPARSEMEM_VMEMMAP is
>considered too costly and consequently not supported.
>
>However, if an architecture does support SPARSEMEM with
>SPARSEMEM_VMEMMAP, let's forbid the user to disable VMEMMAP: just
>like we already do for arm64, s390 and x86.
>
>So if SPARSEMEM_VMEMMAP is supported, don't allow to use SPARSEMEM without
>SPARSEMEM_VMEMMAP.
>
>This implies that the option to not use SPARSEMEM_VMEMMAP will now be
>gone for loongarch, powerpc, riscv and sparc. All architectures only
>enable SPARSEMEM_VMEMMAP with 64bit support, so there should not really
>be a big downside to using the VMEMMAP (quite the contrary).
>
>This is a preparation for not supporting
>
>(1) folio sizes that exceed a single memory section
>(2) CMA allocations of non-contiguous page ranges
>
>in SPARSEMEM without SPARSEMEM_VMEMMAP configs, whereby we
>want to limit possible impact as much as possible (e.g., gigantic hugetlb
>page allocations suddenly fails).
>
>Acked-by: Zi Yan <ziy@xxxxxxxxxx>
>Acked-by: Mike Rapoport (Microsoft) <rppt@xxxxxxxxxx>
>Acked-by: SeongJae Park <sj@xxxxxxxxxx>
>Cc: Huacai Chen <chenhuacai@xxxxxxxxxx>
>Cc: WANG Xuerui <kernel@xxxxxxxxxx>
>Cc: Madhavan Srinivasan <maddy@xxxxxxxxxxxxx>
>Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
>Cc: Nicholas Piggin <npiggin@xxxxxxxxx>
>Cc: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
>Cc: Paul Walmsley <paul.walmsley@xxxxxxxxxx>
>Cc: Palmer Dabbelt <palmer@xxxxxxxxxxx>
>Cc: Albert Ou <aou@xxxxxxxxxxxxxxxxx>
>Cc: Alexandre Ghiti <alex@xxxxxxxx>
>Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
>Cc: Andreas Larsson <andreas@xxxxxxxxxxx>
>Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>
Reviewed-by: Wei Yang <richard.weiyang@xxxxxxxxx>
>---
> mm/Kconfig | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
>diff --git a/mm/Kconfig b/mm/Kconfig
>index 4108bcd967848..330d0e698ef96 100644
>--- a/mm/Kconfig
>+++ b/mm/Kconfig
>@@ -439,9 +439,8 @@ config SPARSEMEM_VMEMMAP_ENABLE
> bool
>
> config SPARSEMEM_VMEMMAP
>- bool "Sparse Memory virtual memmap"
>+ def_bool y
> depends on SPARSEMEM && SPARSEMEM_VMEMMAP_ENABLE
>- default y
> help
> SPARSEMEM_VMEMMAP uses a virtually mapped memmap to optimise
> pfn_to_page and page_to_pfn operations. This is the most
>--
>2.50.1
>
--
Wei Yang
Help you, Help me