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,
>


Reply via email to