Message ID | 20230223065924.42503-1-jasowang@redhat.com |
---|---|
Headers | show |
Series | Fix UNMAP notifier for intel-iommu | expand |
On Thu, Feb 23, 2023 at 02:59:19PM +0800, Jason Wang wrote: > Hi All: > > According to ATS, device should work if ATS is disabled. This is not > correctly implemented in the current intel-iommu since it doesn't > handle the UNMAP notifier correctly. This breaks the vhost-net + > vIOMMU without dt. > > The root casue is that the when there's a device IOTLB miss (note that > it's not specific to PCI so it can work without ATS), Qemu doesn't > build the IOVA tree, so when guest start an IOTLB invalidation, Qemu > won't trigger the UNMAP notifier. > > Fixing this by triggering UNMAP notifier in those cases. Maybe someday we should start merging different places where we used the same IOMMU_NOTIFIER_UNMAP event and also taking care of truncation of notifier ranges within memory.c, but that can definitely be done later. Reviewed-by: Peter Xu <peterx@redhat.com> Thanks, Jason!
On Thu, Feb 23, 2023 at 11:47 PM Peter Xu <peterx@redhat.com> wrote: > > On Thu, Feb 23, 2023 at 02:59:19PM +0800, Jason Wang wrote: > > Hi All: > > > > According to ATS, device should work if ATS is disabled. This is not > > correctly implemented in the current intel-iommu since it doesn't > > handle the UNMAP notifier correctly. This breaks the vhost-net + > > vIOMMU without dt. > > > > The root casue is that the when there's a device IOTLB miss (note that > > it's not specific to PCI so it can work without ATS), Qemu doesn't > > build the IOVA tree, so when guest start an IOTLB invalidation, Qemu > > won't trigger the UNMAP notifier. > > > > Fixing this by triggering UNMAP notifier in those cases. > > Maybe someday we should start merging different places where we used the > same IOMMU_NOTIFIER_UNMAP event and also taking care of truncation of > notifier ranges within memory.c, but that can definitely be done later. Yes, probably. > > Reviewed-by: Peter Xu <peterx@redhat.com> > > Thanks, Jason! You're welcome :) Thanks > > -- > Peter Xu >