> From: Liu, Yi L <yi.l.liu@xxxxxxxxx> > Sent: Thursday, September 28, 2023 3:15 PM > > Introduce a new iommu_domain op to create domains owned by userspace, > e.g. through IOMMUFD. These domains have a few different properties > compares to kernel owned domains: > > - They may be UNMANAGED domains, but created with special parameters. > For instance aperture size changes/number of levels, different > IOPTE formats, or other things necessary to make a vIOMMU work > > - We have to track all the memory allocations with GFP_KERNEL_ACCOUNT > to make the cgroup sandbox stronger > > - Device-specialty domains, such as NESTED domains can be created by > IOMMUFD. > > The new op clearly says the domain is being created by IOMMUFD, that > the domain is intended for userspace use, and it provides a way to pass > user flags or a driver specific uAPI structure to customize the created > domain to exactly what the vIOMMU userspace driver requires. > > iommu drivers that cannot support VFIO/IOMMUFD should not support this > op. This includes any driver that cannot provide a fully functional > UNMANAGED domain. > > This new op for now is only supposed to be used by IOMMUFD, hence no > wrapper for it. IOMMUFD would call the callback directly. As for domain > free, IOMMUFD would use iommu_domain_free(). > > Suggested-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > Signed-off-by: Lu Baolu <baolu.lu@xxxxxxxxxxxxxxx> > Co-developed-by: Nicolin Chen <nicolinc@xxxxxxxxxx> > Signed-off-by: Nicolin Chen <nicolinc@xxxxxxxxxx> > Signed-off-by: Yi Liu <yi.l.liu@xxxxxxxxx> Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>