From: Peter Xu <peterx@redhat.com>
To: "Liu, Yi L" <yi.l.liu@intel.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
Peter Maydell <peter.maydell@linaro.org>,
Eduardo Habkost <ehabkost@redhat.com>,
Jason Wang <jasowang@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>,
"Tian, Kevin" <kevin.tian@intel.com>,
"Lan, Tianyu" <tianyu.lan@intel.com>
Subject: Re: [Qemu-devel] [PULL 08/41] intel_iommu: support device iotlb descriptor
Date: Fri, 17 Feb 2017 11:26:19 +0800 [thread overview]
Message-ID: <20170217032619.GL15985@pxdev.xzpeter.org> (raw)
In-Reply-To: <A2975661238FB949B60364EF0F2C25743900AAEF@shsmsx102.ccr.corp.intel.com>
On Thu, Feb 16, 2017 at 05:36:06AM +0000, 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? If it is, then I think it would also update page table in host.
I haven't considered complex scenarios, but if simply we have a VM
with one vhost device and one vfio-pci device, imho that should not be
a problem - device iotlb is targeting SID rather than DOMAIN. So
device iotlb invalidations for vhost will be sent to vhost device
only.
However, vhost may receive two invalidations here, but it won't matter
much since vhost is just flushing caches twice.
> 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?
Now imho I slightly prefer just use the current UNMAP notifier type
even for device iotlb device. But, we may need to do one more check
that we skip sending general iotlb invalidations to ATS enabled
devices like vhost, to avoid duplicated cache flushing. From virt-svm
side, do we have specific requirement to introduce a new flag for it?
Thanks,
-- peterx
next prev parent reply other threads:[~2017-02-17 3:26 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
2017-02-17 3:26 ` Peter Xu [this message]
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=20170217032619.GL15985@pxdev.xzpeter.org \
--to=peterx@redhat.com \
--cc=ehabkost@redhat.com \
--cc=jasowang@redhat.com \
--cc=kevin.tian@intel.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.