Re: [PATCHv3 0/4] x86: Make 5-level paging support unconditional for x86-64
From: Ingo Molnar
Date: Fri May 16 2025 - 09:11:37 EST
* Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> wrote:
> Both Intel and AMD CPUs support 5-level paging, which is expected to
> become more widely adopted in the future.
>
> Remove CONFIG_X86_5LEVEL.
>
> In preparation to that remove CONFIG_DYNAMIC_MEMORY_LAYOUT and make
> SPARSEMEM_VMEMMAP the only memory model.
>
> v3:
> - Drop few "#if CONFIG_PGTABLE_LEVELS >= 5";
> - Make PARAVIRT_XXL 64-bit explicitly and drop ifdefs
> to support PGTABLE_LEVELS < 5;
> - Add Reviewed-by tags from Ard;
> v2:
> - Fix 32-bit build by wrapping p4d_set_huge() and p4d_clear_huge() in
> #if CONFIG_PGTABLE_LEVELS > 4;
> - Rebased onto current tip/master;
Wow, -v1 was sent almost a year ago. :-)
> Kirill A. Shutemov (4):
> x86/64/mm: Always use dynamic memory layout
> x86/64/mm: Make SPARSEMEM_VMEMMAP the only memory model
> x86/64/mm: Make 5-level paging support unconditional
> x86/paravirt: Restrict PARAVIRT_XXL to 64-bit only
> 24 files changed, 14 insertions(+), 142 deletions(-)
Okay, this series makes a lot of sense, because in practice all major
distros have 5-level paging enabled:
.config.opensuse.default: CONFIG_X86_5LEVEL=y
.config.ubuntu.localinstall: CONFIG_X86_5LEVEL=y
.config.fedora.generic: CONFIG_X86_5LEVEL=y
.config.rhel.generic: CONFIG_X86_5LEVEL=y
So the !CONFIG_X86_5LEVEL case gets very little runtime testing by
distributions and users.
So I've applied the first two patches to tip:x86/core:
x86/mm/64: Always use dynamic memory layout
x86/mm/64: Make SPARSEMEM_VMEMMAP the only memory model
as they are fairly straightforward.
Patch #3:
x86/64/mm: Make 5-level paging support unconditional
... might have to wait until after v6.16-rc1, as it's a higher risk
patch.
x86/paravirt: Restrict PARAVIRT_XXL to 64-bit only
... and this one depends on patch #3.
Does this approach sound good to everyone?
Thanks,
Ingo