> -----Original Message----- > From: Jason Wang [mailto:[email protected]] > Sent: Monday, February 20, 2017 5:04 PM > To: Liu, Yi L <[email protected]>; Michael S. Tsirkin <[email protected]>; > qemu- > [email protected] > Cc: Lan, Tianyu <[email protected]>; Peter Maydell > <[email protected]>; Tian, Kevin <[email protected]>; Eduardo > Habkost <[email protected]>; Peter Xu <[email protected]>; Alex > Williamson <[email protected]>; Paolo Bonzini > <[email protected]>; Richard Henderson <[email protected]> > Subject: Re: [Qemu-devel] [PULL 08/41] intel_iommu: support device iotlb > descriptor > > > > On 2017年02月20日 16:27, Liu, Yi L wrote: > >> -----Original Message----- > >> From: Jason Wang [mailto:[email protected]] > >> Sent: Friday, February 17, 2017 2:43 PM > >> To: Liu, Yi L <[email protected]>; Michael S. Tsirkin > >> <[email protected]>; qemu- [email protected] > >> Cc: Peter Maydell <[email protected]>; Eduardo Habkost > >> <[email protected]>; Peter Xu <[email protected]>; Paolo Bonzini > >> <[email protected]>; Richard Henderson <[email protected]>; Tian, > >> Kevin <[email protected]>; Lan, Tianyu <[email protected]>; > >> Alex Williamson <[email protected]> > >> Subject: Re: [Qemu-devel] [PULL 08/41] intel_iommu: support device > >> iotlb descriptor > >> > >> > >> > >> On 2017年02月17日 14:18, Liu, Yi L wrote: > >>>> -----Original Message----- > >>>> From: Jason Wang [mailto:[email protected]] > >>>> Sent: Thursday, February 16, 2017 1:44 PM > >>>> To: Liu, Yi L <[email protected]>; Michael S. Tsirkin > >>>> <[email protected]>; qemu- [email protected] > >>>> Cc: Peter Maydell <[email protected]>; Eduardo Habkost > >>>> <[email protected]>; Peter Xu <[email protected]>; Paolo Bonzini > >>>> <[email protected]>; Richard Henderson <[email protected]>; Tian, > >>>> Kevin <[email protected]>; Lan, Tianyu <[email protected]>; > >>>> Alex Williamson <[email protected]> > >>>> Subject: Re: [Qemu-devel] [PULL 08/41] intel_iommu: support device > >>>> iotlb descriptor > >>>> > >>>> > >>>> > >>>> On 2017年02月16日 13:36, Liu, Yi L wrote: > >>>>>> -----Original Message----- > >>>>>> From: Qemu-devel > >>>>>> [mailto:[email protected]] > >>>>>> On Behalf Of Michael S. Tsirkin > >>>>>> Sent: Tuesday, January 10, 2017 1:40 PM > >>>>>> To: [email protected] > >>>>>> Cc: Peter Maydell <[email protected]>; Eduardo Habkost > >>>>>> <[email protected]>; Jason Wang <[email protected]>; Peter > >> Xu > >>>>>> <[email protected]>; Paolo Bonzini <[email protected]>; Richard > >>>>>> Henderson <[email protected]> > >>>>>> Subject: [Qemu-devel] [PULL 08/41] intel_iommu: support device > >>>>>> iotlb descriptor > >>>>>> > >>>>>> From: Jason Wang <[email protected]> > >>>>>> > >>>>>> This patch enables device IOTLB support for intel iommu. The > >>>>>> major work is to implement QI device IOTLB descriptor processing > >>>>>> and notify the device through iommu notifier. > >>>>>> > >>>>> Hi Jason/Michael, > >>>>> > >>>>> Recently Peter Xu's patch also touched intel-iommu emulation. His > >>>>> patch shadows second-level page table by capturing iotlb flush > >>>>> from guest. It would result in page table updating in host. Does > >>>>> this patch also use the same map/umap API provided by VFIO? > >>>> Yes, it depends on the iommu notifier too. > >>>> > >>>>> If it is, then I think it would also update page table in host. It > >>>>> looks to be a duplicate update. Pls refer to the following > >>>>> snapshot captured from section 6.5.2.5 of vtd spec. > >>>>> > >>>>> "Since translation requests from a device may be serviced by > >>>>> hardware from the IOTLB, software must always request IOTLB > >>>>> invalidation > >>>>> (iotlb_inv_dsc) before requesting corresponding Device-TLB > >>>>> (dev_tlb_inv_dsc) invalidation." > >>>>> > >>>>> Maybe for device-iotlb, we need a separate API which just pass > >>>>> down the invalidate info without updating page table. Any thoughts? > >>>> cc Alex. > >>>> > >>>> If we want ATS to be visible for guest (but I'm not sure if VFIO > >>>> support this), we probably need another notifier or a new flag. > >>> Jason, for assigned device, I think guest could see ATS if the > >>> assigned device supports ATS. I can see it when passthru iGPU. > >>> > >>> Regards, > >>> Yi L > >> Good to know this. > >> > >> If I understand your suggestion correctly, you want a dedicated API > >> to flush a hardware device IOTLB. I'm not sure this is really needed. > > yes, I'd like to have an extra API besides the current MAP/UNMAP. > > I'm think whether or not we can do this without extra API or even don't need > to > care about this. > > > > >> There's some discussion of similar issue in the past (when ATS is > >> used for virtio- net/vhost), looks like we could solve this by not > >> trigger the UNMAP notifier unless it was device IOTLB inv desc if ATS > >> is enabled for the device? With this remote IOMMU/IOTLB can only get > >> invalidation request once. For VFIO, the under layer IOMMU can deal > >> with hardware device IOTLB without any extra efforts. > > If I catch the background, I think it should be "not trigger the UNMAP > > notifier when unless it was device IOTLB inv desc if ATS is enabled for the > device" > > Seems not :) > > I mean, if ATS is enabled for the device, only trigger UNMAP notifier when > processing device IOTLB. Then we can only have flush once. And host IOMMU > driver will take care of device IOTLB flush too. hmmm, how about the iotlb inv desc which is prior to device-iotlb? I'm not sure if it is practical to ignore the iotlb inv des since there is no SID info in it.
Regards, Yi L
