On Tue, Feb 04, 2025 at 04:49:47PM -0400, Jason Gunthorpe wrote:
The phys_to_virt() I mean is on the page table pages themselves, not
on a leaf.
All page table pages came from alloc_pages_node() and you'd do
virt_to_phys() to stick them into a next-table PTE, then
phys_to_virt() to bring them back:
phys_to_virt(virt_to_phys(page_address(alloc_pages_node())))
Effectively.
except for s390 & ppc where the page table can be smaller than
PAGE_SIZE, so you really only have a physical address that can be
converted to a virtual address.