> From: Jason Gunthorpe <j...@nvidia.com> > Sent: Sunday, April 3, 2022 7:32 AM > > On Sat, Apr 02, 2022 at 08:43:16AM +0000, Tian, Kevin wrote: > > > > This assumes any domain is interchangeable with any device, which is > > > not the iommu model. We need a domain op to check if a device is > > > compatiable with the domain for vfio an iommufd, this should do the > > > same. > > > > This suggests that mm_struct needs to include the format information > > of the CPU page table so the format can be checked by the domain op? > > No, Linux does not support multiple formats for CPU page tables, > AFAICT, and creating the SVA domain in the first place should check > this.
One interesting usage is when virtio-iommu supports vSVA one day. At that time there needs a way to know the format of the CPU page table and then virtio-iommu driver needs to check whether it is compatible with what the host iommu driver supports. But possibly this can wait to be solved until that usage comes... > > > > It means each mm can have a list of domains associated with it and a > > > new domain is auto-created if the device doesn't work with any of the > > > existing domains. > > > > mm has only one page table and one format. If a device is incompatible > > with an existing domain wrapping that page table, how come creating > > another domain could make it compatible? > > Because domains wrap more than just the IOPTE format, they have > additional data related to the IOMMU HW block itself. Imagine a SOC > with two IOMMU HW blocks that can both process the CPU IOPTE format, > but have different configuration. Curious. Is it hypothesis or real? If real can you help give a concrete example? > > So if device A users IOMMU A it needs an iommu_domain from driver A and > same for another device B, even if both iommu_domains are thin > wrappers around the same mm_struct. > _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu