Re: [PATCH v2 00/11] iommufd: Add nesting infrastructure

From: Jason Gunthorpe
Date: Fri May 19 2023 - 07:49:41 EST


On Fri, May 19, 2023 at 09:56:04AM +0000, Tian, Kevin wrote:
> > From: Liu, Yi L <yi.l.liu@xxxxxxxxx>
> > Sent: Thursday, May 11, 2023 10:39 PM
> >
> > Lu Baolu (2):
> > iommu: Add new iommu op to create domains owned by userspace
> > iommu: Add nested domain support
> >
> > Nicolin Chen (5):
> > iommufd/hw_pagetable: Do not populate user-managed hw_pagetables
> > iommufd/selftest: Add domain_alloc_user() support in iommu mock
> > iommufd/selftest: Add coverage for IOMMU_HWPT_ALLOC with user data
> > iommufd/selftest: Add IOMMU_TEST_OP_MD_CHECK_IOTLB test op
> > iommufd/selftest: Add coverage for IOMMU_HWPT_INVALIDATE ioctl
> >
> > Yi Liu (4):
> > iommufd/hw_pagetable: Use domain_alloc_user op for domain allocation
> > iommufd: Pass parent hwpt and user_data to
> > iommufd_hw_pagetable_alloc()
> > iommufd: IOMMU_HWPT_ALLOC allocation with user data
> > iommufd: Add IOMMU_HWPT_INVALIDATE
> >
>
> I didn't see any change in iommufd_hw_pagetable_attach() to handle
> stage-1 hwpt differently.
>
> In concept whatever reserved regions existing on a device should be
> directly reflected on the hwpt which the device is attached to.
>
> So with nesting presumably the reserved regions of the device have
> been reported to the userspace and it's user's responsibility to avoid
> allocating IOVA from those reserved regions in stage-1 hwpt.

Presumably

> It's not necessarily to add reserved regions to the IOAS of the parent
> hwpt since the device doesn't access that address space after it's
> attached to stage-1. The parent is used only for address translation
> in the iommu side.

But if we don't put them in the IOAS of the parent there is no way for
userspace to learn what they are to forward to the VM ?

Since we expect the parent IOAS to be usable in an identity mode I
think they should be added, at least I can't see a reason not to add
them.

Which is definately complicating some parts of this..

Jason