[PATCH v3 0/3] Convert 64-bit x86/mm/pat to ptdescs

Vishal Moola (Oracle) posted 3 patches 4 days, 10 hours ago
There is a newer version of this series
arch/x86/mm/pat/set_memory.c | 56 +++++++++++++++++++++---------------
1 file changed, 33 insertions(+), 23 deletions(-)
[PATCH v3 0/3] Convert 64-bit x86/mm/pat to ptdescs
Posted by Vishal Moola (Oracle) 4 days, 10 hours ago
x86/mm/pat should be using ptdescs. One line has already been
converted to pagetable_free(), while the allocation sites use
get_free_pages(). This causes issues separately allocating ptdescs
from struct page.

These patches convert the allocation/free sites to use ptdescs. 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.

The pgd_list should also be using ptdescs (for 32bit in this file). This
can be done in a different patchset since there's other users of pgd_list
that still need to be converted.

[1] https://lore.kernel.org/linux-mm/20251113140448.1814860-1-willy@infradead.org/
[2] https://lore.kernel.org/linux-mm/20251020001652.2116669-1-willy@infradead.org/

------

I've also tested this on a tree that separately allocates ptdescs. That
didn't find any lingering alloc/free issues.

Based on current mm-new.

v3:
  - Move comment regarding 32-bit conversions into the cover letter
  - Correct the handling for the pagetable_alloc() error path

Vishal Moola (Oracle) (3):
  x86/mm/pat: Convert pte code to use ptdescs
  x86/mm/pat: Convert pmd code to use ptdescs
  x86/mm/pat: Convert split_large_page() to use ptdescs

 arch/x86/mm/pat/set_memory.c | 56 +++++++++++++++++++++---------------
 1 file changed, 33 insertions(+), 23 deletions(-)

-- 
2.52.0
Re: [PATCH v3 0/3] Convert 64-bit x86/mm/pat to ptdescs
Posted by Mike Rapoport 3 days, 10 hours ago
On Mon, Feb 02, 2026 at 09:20:02AM -0800, Vishal Moola (Oracle) wrote:
> x86/mm/pat should be using ptdescs. One line has already been
> converted to pagetable_free(), while the allocation sites use
> get_free_pages(). This causes issues separately allocating ptdescs
> from struct page.
> 
> These patches convert the allocation/free sites to use ptdescs. 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.
> 
> The pgd_list should also be using ptdescs (for 32bit in this file). This
> can be done in a different patchset since there's other users of pgd_list
> that still need to be converted.
> 
> [1] https://lore.kernel.org/linux-mm/20251113140448.1814860-1-willy@infradead.org/
> [2] https://lore.kernel.org/linux-mm/20251020001652.2116669-1-willy@infradead.org/
> 
> ------
> 
> I've also tested this on a tree that separately allocates ptdescs. That
> didn't find any lingering alloc/free issues.
> 
> Based on current mm-new.
> 
> v3:
>   - Move comment regarding 32-bit conversions into the cover letter
>   - Correct the handling for the pagetable_alloc() error path
> 
> Vishal Moola (Oracle) (3):
>   x86/mm/pat: Convert pte code to use ptdescs
>   x86/mm/pat: Convert pmd code to use ptdescs
>   x86/mm/pat: Convert split_large_page() to use ptdescs

Acked-by: Mike Rapoport (Microsoft) <rppt@kernel.org>

With some minor comments in patch 1/3
 
>  arch/x86/mm/pat/set_memory.c | 56 +++++++++++++++++++++---------------
>  1 file changed, 33 insertions(+), 23 deletions(-)
> 
> -- 
> 2.52.0
> 

-- 
Sincerely yours,
Mike.