On Mon, Nov 16, 2020 at 06:56:33PM +0100, Thomas Gleixner wrote: > On Mon, Nov 16 2020 at 11:46, Jason Gunthorpe wrote: > > > On Mon, Nov 16, 2020 at 07:31:49AM +0000, Tian, Kevin wrote: > > > >> > The subdevices require PASID & IOMMU in native, but inside the guest there > >> > is no > >> > need for IOMMU unless you want to build SVM on top. subdevices work > >> > without > >> > any vIOMMU or hypercall in the guest. Only because they look like normal > >> > PCI devices we could map interrupts to legacy MSIx. > >> > >> Guest managed subdevices on PF/VF requires vIOMMU. > > > > Why? I've never heard we need vIOMMU for our existing SRIOV flows in > > VMs?? > > Handing PF/VF into the guest does not require it. > > But if the PF/VF driver in the guest wants to create and manage the > magic mdev subdevices which require PASID support then you surely need > it. 'magic mdevs' are only one reason to use IMS in a guest. On mlx5 we might want to use IMS for VPDA devices. mlx5 can spawn a VDPA device in a guest, against a 'ADI', without ever requiring an IOMMU to do it. We don't even need IOMMU in the hypervisor to create the ADI, mlx5 has an internal secure IOMMU that can be used instead of the platform IOMMU. Not saying this is a major use case, or a reason not to link things to IOMMU detection, but lets be clear that a hard need for IOMMU is a another IDXD thing, not general. Jason