[PATCH v6 0/4] Convert x86/mm/pat to generic page table apis
From: Vishal Moola (Oracle)
Date: Wed Feb 18 2026 - 21:04:19 EST
set_memory.c has a call to pagetable_free(), while the allocation sites
use get_free_pages(). This causes issues separately allocating ptdescs
from struct page.
It turns out that we can just use the appropriate generic pagetable
apis for allocation/freeing. This helps simplify and standardize the
code.
In the short term, this helps enable Matthew's work to allocate frozen
pagetables[1]. And in the long term, this will help us cleanly split
ptdesc allocations from struct page[2].
[1] https://lore.kernel.org/linux-mm/20251113140448.1814860-1-willy@xxxxxxxxxxxxx/
[2] https://lore.kernel.org/linux-mm/20251020001652.2116669-1-willy@xxxxxxxxxxxxx/
------
Based on current mm-new.
v6:
- Drop the renaming of *page* functions
- Use existing page table api instead of creating new apis
- Split the pmd and populate_pgd() changes into separate patches
- Reword the cover letter to describe the new approach
v5 link:
https://lore.kernel.org/all/20260211195233.368497-1-vishal.moola@xxxxxxxxx/
Vishal Moola (Oracle) (4):
x86/mm/pat: Convert pte code to use page table apis
x86/mm/pat: Convert pmd code to use page table apis
x86/mm/pat: Convert populate_pgd() to use page table apis
x86/mm/pat: Convert split_large_page() to use ptdescs
arch/x86/mm/pat/set_memory.c | 36 ++++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
--
2.53.0