Re: [PATCH 0/9] Convert x86 pgd_lists to ptdescs
From: William Kucharski
Date: Thu May 28 2026 - 10:58:51 EST
Looks great!
Reviewed-by: William Kucharski <william.kucharski@xxxxxxxxx>
> On May 27, 2026, at 08:03, Vishal Moola <vishal.moola@xxxxxxxxx> wrote:
>
> This continues the ptdesc conversions for x86[1]. This is a necessary step
> in preparation for the separate allocation of ptdescs from struct page.
> Once ptdescs are not wrappers, the pgd_list should be used to find our
> ptdesc, not page.
>
> In fact, after patch 4 we can successfully boot a 32-bit x86 kernel
> that separately allocates ptdescs.
>
> All of the patches are rather straightforward, I just kept them split up
> for ease of review. There are no intended functional changes as ptdescs
> are currently still wrappers around struct page.
>
> [1] https://lore.kernel.org/linux-mm/20260211195233.368497-1-vishal.moola@xxxxxxxxx/
>
> ----------------
>
> I've compiled and booted both 64 and 32 bit on a kernel with separately
> allocated ptdescs. I ensured the codepaths were hit for all the changes
> except Xen.
>
> This applies cleanly to the tip bot. I'm thinking this can go through
> Dave's mm.
>
> Vishal Moola (9):
> x86/mm/pat: Use IS_ENABLED() instead of ifdef
> x86/mm/pat: Convert __set_pmd_pte() to ptdescs
> x86/mm/pat: Convert collapse_pmd_page() to ptdescs
> x86/mm: Convert arch_sync_kernel_mappings() to ptdescs
> x86/mm: Convert sync_global_pgds_l5() to ptdescs
> x86/mm: Convert sync_global_pgds_l4() to ptdescs
> x86/mm: Convert pgd_page_get_mm() to ptdescs
> x86/xen: Convert xen_mm_pin_all() to ptdescs
> x86/xen: Convert xen_mm_unpin_all() to ptdescs
>
> arch/x86/include/asm/pgtable.h | 2 +-
> arch/x86/include/asm/pgtable_types.h | 2 +-
> arch/x86/mm/fault.c | 8 ++++----
> arch/x86/mm/init_64.c | 16 ++++++++--------
> arch/x86/mm/pat/set_memory.c | 17 ++++++++---------
> arch/x86/mm/pgtable.c | 4 ++--
> arch/x86/xen/mmu_pv.c | 22 +++++++++++-----------
> 7 files changed, 35 insertions(+), 36 deletions(-)
>
> --
> 2.54.0
>
>