Re: [PATCH v4 10/27] mm/sparse: allow for alternate vmemmap section init at boot
From: Frank van der Linden
Date: Thu Feb 27 2025 - 11:48:10 EST
On Wed, Feb 26, 2025 at 10:09 AM Johannes Weiner <hannes@xxxxxxxxxxx> wrote:
>
> On Tue, Feb 18, 2025 at 06:16:38PM +0000, Frank van der Linden wrote:
> > @@ -489,6 +489,14 @@ config SPARSEMEM_VMEMMAP
> > SPARSEMEM_VMEMMAP uses a virtually mapped memmap to optimise
> > pfn_to_page and page_to_pfn operations. This is the most
> > efficient option when sufficient kernel resources are available.
> > +
> > +config ARCH_WANT_SPARSEMEM_VMEMMAP_PREINIT
> > + bool
> > +
> > +config SPARSEMEM_VMEMMAP_PREINIT
> > + bool "Early init of sparse memory virtual memmap"
> > + depends on SPARSEMEM_VMEMMAP && ARCH_WANT_SPARSEMEM_VMEMMAP_PREINIT
> > + default y
>
> oldconfig just prompted me on this, but it's not clear to me what it
> does. Not even after skimming the changelog of the patch to be honest.
>
> Can you please add a help text that explains the user-visible effects
> of the toggle, as well as guidance as to who might care to change it?
Hi Johannes,
Thanks for your comment. How's this:
==
Enables subsystems to pre-initialize memmap in their own way,
allowing for memory savings during boot. The HugeTLB code uses
this to initialize memmap for bootmem allocated gigantic hugepages
in a way that is done by HUGETLB_PAGE_OPTIMIZE_VMEMMAP. This
means saving this memory right away, instead of allocating it
first and then freeing it later. Not allocating these pages
at all during boot allows for specifying a bigger number of
hugepages on the kernel commandline on larger systems.
==
- Frank