Re: [RFC 14/18] intel-iommu: Allocate domain pgtable pages from pkernfs

From: Jason Gunthorpe
Date: Mon Feb 05 2024 - 12:12:47 EST


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