From: Jason Wang <jasowang@redhat.com>
To: "Liu, Yi L" <yi.l.liu@intel.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Cc: "Lan, Tianyu" <tianyu.lan@intel.com>,
Peter Maydell <peter.maydell@linaro.org>,
"Tian, Kevin" <kevin.tian@intel.com>,
Eduardo Habkost <ehabkost@redhat.com>,
Peter Xu <peterx@redhat.com>,
Alex Williamson <alex.williamson@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PULL 08/41] intel_iommu: support device iotlb descriptor
Date: Mon, 20 Feb 2017 17:18:23 +0800 [thread overview]
Message-ID: <b4b73c71-2a2b-ed2d-7e55-04d9304761b6@redhat.com> (raw)
In-Reply-To: <A2975661238FB949B60364EF0F2C25743900C6A9@shsmsx102.ccr.corp.intel.com>
On 2017年02月20日 17:13, Liu, Yi L wrote:
>> -----Original Message-----
>> From: Jason Wang [mailto:jasowang@redhat.com]
>> Sent: Monday, February 20, 2017 5:04 PM
>> To: Liu, Yi L <yi.l.liu@intel.com>; Michael S. Tsirkin <mst@redhat.com>; qemu-
>> devel@nongnu.org
>> Cc: Lan, Tianyu <tianyu.lan@intel.com>; Peter Maydell
>> <peter.maydell@linaro.org>; Tian, Kevin <kevin.tian@intel.com>; Eduardo
>> Habkost <ehabkost@redhat.com>; Peter Xu <peterx@redhat.com>; Alex
>> Williamson <alex.williamson@redhat.com>; Paolo Bonzini
>> <pbonzini@redhat.com>; Richard Henderson <rth@twiddle.net>
>> 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:jasowang@redhat.com]
>>>> Sent: Friday, February 17, 2017 2:43 PM
>>>> To: Liu, Yi L <yi.l.liu@intel.com>; Michael S. Tsirkin
>>>> <mst@redhat.com>; qemu- devel@nongnu.org
>>>> Cc: Peter Maydell <peter.maydell@linaro.org>; Eduardo Habkost
>>>> <ehabkost@redhat.com>; Peter Xu <peterx@redhat.com>; Paolo Bonzini
>>>> <pbonzini@redhat.com>; Richard Henderson <rth@twiddle.net>; Tian,
>>>> Kevin <kevin.tian@intel.com>; Lan, Tianyu <tianyu.lan@intel.com>;
>>>> Alex Williamson <alex.williamson@redhat.com>
>>>> 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:jasowang@redhat.com]
>>>>>> Sent: Thursday, February 16, 2017 1:44 PM
>>>>>> To: Liu, Yi L <yi.l.liu@intel.com>; Michael S. Tsirkin
>>>>>> <mst@redhat.com>; qemu- devel@nongnu.org
>>>>>> Cc: Peter Maydell <peter.maydell@linaro.org>; Eduardo Habkost
>>>>>> <ehabkost@redhat.com>; Peter Xu <peterx@redhat.com>; Paolo Bonzini
>>>>>> <pbonzini@redhat.com>; Richard Henderson <rth@twiddle.net>; Tian,
>>>>>> Kevin <kevin.tian@intel.com>; Lan, Tianyu <tianyu.lan@intel.com>;
>>>>>> Alex Williamson <alex.williamson@redhat.com>
>>>>>> 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:qemu-devel-bounces+yi.l.liu=intel.com@nongnu.org]
>>>>>>>> On Behalf Of Michael S. Tsirkin
>>>>>>>> Sent: Tuesday, January 10, 2017 1:40 PM
>>>>>>>> To: qemu-devel@nongnu.org
>>>>>>>> Cc: Peter Maydell <peter.maydell@linaro.org>; Eduardo Habkost
>>>>>>>> <ehabkost@redhat.com>; Jason Wang <jasowang@redhat.com>; Peter
>>>> Xu
>>>>>>>> <peterx@redhat.com>; Paolo Bonzini <pbonzini@redhat.com>; Richard
>>>>>>>> Henderson <rth@twiddle.net>
>>>>>>>> Subject: [Qemu-devel] [PULL 08/41] intel_iommu: support device
>>>>>>>> iotlb descriptor
>>>>>>>>
>>>>>>>> From: Jason Wang <jasowang@redhat.com>
>>>>>>>>
>>>>>>>> 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?
Any issue in this case?
> I'm not sure
> if it is practical to ignore the iotlb inv des since there is no SID info in it.
Yes, this needs some changes maybe.
Thanks
>
> Regards,
> Yi L
next prev parent reply other threads:[~2017-02-20 9:18 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-10 5:39 [Qemu-devel] [PULL 00/41] virtio, vhost, pc: fixes, features Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 01/41] migration: allow to prioritize save state entries Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 02/41] intel_iommu: allow migration Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 03/41] virtio-crypto: fix possible integer and heap overflow Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 04/41] virtio: convert to use DMA api Michael S. Tsirkin
2017-01-18 11:59 ` Paolo Bonzini
2017-01-18 19:10 ` Michael S. Tsirkin
2017-01-19 9:05 ` Paolo Bonzini
2017-01-10 5:39 ` [Qemu-devel] [PULL 05/41] intel_iommu: name vtd address space with devfn Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 06/41] intel_iommu: allocate new key when creating new address space Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 07/41] exec: introduce address_space_get_iotlb_entry() Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 08/41] intel_iommu: support device iotlb descriptor Michael S. Tsirkin
2017-01-18 12:19 ` Paolo Bonzini
2017-01-19 2:50 ` Jason Wang
2017-01-19 3:28 ` Peter Xu
2017-01-19 3:35 ` Jason Wang
2017-01-19 3:32 ` Jason Wang
2017-01-19 9:07 ` Paolo Bonzini
2017-02-16 5:36 ` Liu, Yi L
2017-02-16 5:43 ` Jason Wang
2017-02-16 5:59 ` Jason Wang
2017-02-17 6:18 ` Liu, Yi L
2017-02-17 6:43 ` Jason Wang
2017-02-20 8:27 ` Liu, Yi L
2017-02-20 9:03 ` Jason Wang
2017-02-20 9:13 ` Liu, Yi L
2017-02-20 9:18 ` Jason Wang [this message]
2017-02-17 3:26 ` Peter Xu
2017-02-17 6:36 ` Liu, Yi L
2017-02-17 7:00 ` Peter Xu
2017-02-20 8:47 ` Liu, Yi L
2017-01-10 5:39 ` [Qemu-devel] [PULL 09/41] virtio-pci: address space translation service (ATS) support Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 10/41] acpi: add ATSR for q35 Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 11/41] memory: handle alias for iommu notifier Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 12/41] memory: handle alias in memory_region_is_iommu() Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 13/41] doc/pcie: correct command line examples Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 14/41] virtio-crypto: use the correct length for cipher operation Michael S. Tsirkin
2017-01-10 5:39 ` [Qemu-devel] [PULL 15/41] cryptodev: introduce a new is_used property Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 16/41] cryptodev: wrap the ready flag Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 17/41] virtio-crypto-pci: add check for cryptodev object Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 18/41] virtio-crypto: avoid one cryptodev device is used by multiple virtio crypto devices Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 19/41] virtio-crypto-pci: tag virtio-crypto device hot pluggable Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 20/41] virtio-crypto: zeroize the key material before free Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 21/41] pcie_aer: Convert pcie_aer_init to Error Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 22/41] pcie_aer: support configurable AER capa version Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 23/41] virtio: fix vq->inuse recalc after migr Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 24/41] balloon: Don't balloon roms Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 25/41] net: Add virtio queue interface to update used index from vring state Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 26/41] net: vhost stop updates virtio queue state Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 27/41] virtio: Introduce virtqueue_drop_all procedure Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 28/41] net: virtio-net discards TX data after link down Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 29/41] vhost-user: Add MTU protocol feature and op Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 30/41] vhost-net: Notify the backend about the host MTU Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 31/41] virtio-net: Add MTU feature support Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 32/41] tests: pc: add memory hotplug acpi tables tests Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 33/41] memhp: move build_memory_hotplug_aml() into memory_hotplug.c Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 34/41] memhp: move build_memory_devices() " Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 35/41] memhp: consolidate scattered MHPD device declaration Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 36/41] memhp: merge build_memory_devices() into build_memory_hotplug_aml() Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 37/41] memhp: move GPE handler_E03 " Michael S. Tsirkin
2017-01-10 5:40 ` [Qemu-devel] [PULL 38/41] memhp: move memory hotplug only defines to memory_hotplug.c Michael S. Tsirkin
2017-01-10 5:41 ` [Qemu-devel] [PULL 39/41] memhp: don't generate memory hotplug AML if it's not enabled/supported Michael S. Tsirkin
2017-01-10 5:41 ` [Qemu-devel] [PULL 40/41] memhp: move DIMM devices into dedicated scope with related common methods Michael S. Tsirkin
2017-01-10 5:41 ` [Qemu-devel] [PULL 41/41] acpi-test: update expected files Michael S. Tsirkin
2017-01-10 14:52 ` [Qemu-devel] [PULL 00/41] virtio, vhost, pc: fixes, features Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b4b73c71-2a2b-ed2d-7e55-04d9304761b6@redhat.com \
--to=jasowang@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=ehabkost@redhat.com \
--cc=kevin.tian@intel.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=peterx@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
--cc=tianyu.lan@intel.com \
--cc=yi.l.liu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).