Hi Peter, On 10/19/22 16:01, Peter Xu wrote: > Hi, Eric, > > On Wed, Oct 19, 2022 at 01:24:15PM +0200, Eric Auger wrote: >>> @@ -1484,6 +1485,13 @@ static int >>> amdvi_iommu_notify_flag_changed(IOMMUMemoryRegion *iommu, >>> PCI_FUNC(as->devfn)); >>> return -EINVAL; >>> } >>> + >>> + if ((new & IOMMU_NOTIFIER_DEVIOTLB_UNMAP) && !x86_iommu->dt_supported) >>> { >>> + error_setg_errno(errp, ENOTSUP, >>> + "Device-iotlb not declared support for vIOMMU"); >> with current vhost code, vhost will then silently fallbac to UNMAP >> notifier registration and this will succeed. It would be nice to clarify >> whether the vIOMMU works with vhost in this downgraded mode (at least >> ats=off and device-ioltb=off)? > I'm slightly confused, why do we need to clarify that? > > As we have discussed, if a device with ATS capability got attached into a > vIOMMU context that does not support ATS, then it should just work like > without ATS without any warning. Isn't this the case here?
Yes that's the theory and what should happen at baremetal level. However I am not sure this is still true with the intel-iommu emulation/vhost integration. Remember we always assumed vhost was supported on intel with both ats=on and device-iotlb=on if I am correct. vhost/viommu integration requires unmap notifications to be properly sent from viommu to vhost, would it be though DEVIOTLB_UNMAP or UNMAP notifiers. Does the intel-iommu/vhost works if both ats=off and device-iotlb=off or ats=on and device-iotlb=off. This I am not sure. I gave it a try and I got some errors but maybe that's something else... On ARM I have always assumed both settings are off and so I am inclined to think it works ;-) Thanks Eric > > Thanks, >