On Mon, Feb 05, 2024 at 12:01:59PM +0000, James Gowans wrote: > @@ -946,7 +946,13 @@ static struct dma_pte *pfn_to_dma_pte(struct dmar_domain *domain, > if (!dma_pte_present(pte)) { > uint64_t pteval; > > - tmp_page = alloc_pgtable_page(domain->nid, gfp); > + if (domain->pgtables_allocator.vaddr) > + iommu_alloc_page_from_region( > + &domain->pgtables_allocator, > + &tmp_page, > + NULL); I'm really worried about this change - I plan to redo all of this page table handling code so it makes use of struct page members for things like RCU free and more. Does this end up making the entire struct page owned by the filesystem? Jason