| From: |
| Vishal Moola <vishal.moola-AT-gmail.com> |
| To: |
| Dave Hansen <dave.hansen-AT-intel.com>, linux-mm-AT-kvack.org, linux-kernel-AT-vger.kernel.org, x86-AT-kernel.org |
| Subject: |
| [PATCH 0/9] Convert x86 pgd_lists to ptdescs |
| Date: |
| Wed, 27 May 2026 15:03:07 +0100 |
| Message-ID: |
| <20260527140316.294621-1-vishal.moola@gmail.com> |
| Cc: |
| Mike Rapoport <rppt-AT-kernel.org>, Lu Baolu <baolu.lu-AT-linux.intel.com>, xen-devel-AT-lists.xenproject.org, Thomas Gleixner <tglx-AT-kernel.org>, Ingo Molnar <mingo-AT-redhat.com>, Borislav Petkov <bp-AT-alien8.de>, "H. Peter Anvin" <hpa-AT-zytor.com>, Andy Lutomirski <luto-AT-kernel.org>, Peter Zijlstra <peterz-AT-infradead.org>, Juergen Gross <jgross-AT-suse.com>, Boris Ostrovsky <boris.ostrovsky-AT-oracle.com>, Vishal Moola <vishal.moola-AT-gmail.com> |
| Archive-link: |
| Article |
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-...
----------------
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