From: "Michael S. Tsirkin" <mst@redhat.com>
To: "Liu, Yi L" <yi.l.liu@linux.intel.com>
Cc: qemu-devel@nongnu.org, david@gibson.dropbear.id.au,
pbonzini@redhat.com, alex.williamson@redhat.com,
eric.auger.pro@gmail.com
Subject: Re: [Qemu-devel] [PATCH v3 00/12] Introduce new iommu notifier framework for virt-SVA
Date: Thu, 1 Mar 2018 15:32:22 +0200 [thread overview]
Message-ID: <20180301152451-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <1519900322-30263-1-git-send-email-yi.l.liu@linux.intel.com>
On Thu, Mar 01, 2018 at 06:31:50PM +0800, Liu, Yi L wrote:
> This patchset is to introduce a notifier framework for virt-SVA.
> You may find virt-SVA design details from the link below.
>
> https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg04925.html
>
> SVA is short for Shared Virtual Addressing. This is also called Shared
> Virtual Memory in previous patchsets. However, SVM is confusing as it
> can also be short for Secure Virtual Machine. So this patchset use
> Shared Virtual Addressing instead of Shared Virtual Memory. And it
> would be applied in future (SVA)related patch series as well.
Just as a matter of naming, it might be a good idea to just call
this feature "PASID support". QEMU only cares about the mechanism,
now about how applications use it.
> Qemu has an existing notifier framework based on MemoryRegion, which
> are used for MAP/UNMAP. However, it is not well suited for virt-SVA.
> Reasons are as below:
> - virt-SVA works along with PT = 1
> - if PT = 1 IOMMU MR are disabled so MR notifier are not registered
> - new notifiers do not fit nicely in this framework as they need to be
> registered even if PT = 1
> - need a new framework to attach the new notifiers
> - Additional background can be got from:
> https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg04931.html
>
> So a new iommu notifier framework is needed. This patchset introduces
> a notifier framework based on IOMMUSVAContext. IOMMUSVAContext is
> introduced to be an abstract of virt-SVA operations in Qemu.
>
> Patch Overview:
> * 1 - 2: rename existing naming, the IOMMU MemoryRegion Notifier
> framework
> * 3 - 4: introduce SVA notifier framework based on IOMMUSVAContext
> * 5 - 7: introduce PCISVAOps and expose the SVA notfier framework
> through hw/pci layer
> * 8 - 12: show the usage of SVA notifier in Intel vIOMMU emulator
>
> [v2->v3 changes]
> * Rephrase the cover letter
> * Follow David's suggestion, take emulated SVA capable device
> into consideration
> * renaming IOMMUObject to be IOMMUSVAContext
> * Expose SVA nofitier registeration through hw/pci layer
> * rename the file hw/core/iommu.c to be hw/core/pasid.c
> include/hw/core/iommu.h to be include/hw/core/pasid.h
> * use SVA instead of SVM in patchset
> * rename patchset title, previous is "Introduce new iommu notifier framework"
>
> v2 link:
> https://lists.gnu.org/archive/html/qemu-devel/2017-11/msg04553.html
>
> [v1->v2 changes]
> * Rephrase the cover letter
> * Re-sort the sequence of the patches
> * Split the patch to introduce IOMMUObject and AddressSpaceOps
> * Address two missed list init spotted by Auger Eric
>
> v1 link:
> http://qemu-devel.nongnu.narkive.com/XhqBQ8wc/resend-patch-0-6-introduce-new-iommu-notifier-framework
>
> Original patchset from Peter Xu can be found in the link below.
>
> https://lists.gnu.org/archive/html/qemu-devel/2017-04/msg05360.html
>
> Comments and suggestions are always welcomed, thanks.
>
> Liu, Yi L (10):
> vfio: rename GuestIOMMU to be GuestIOMMUMR
> vfio/pci: add notify framework based on IOMMUSVAContext
> hw/pci: introduce PCISVAOps to PCIDevice
> vfio/pci: provide vfio_pci_sva_ops instance
> vfio/pci: register sva notifier
> hw/pci: introduce pci_device_notify_iommu()
> intel_iommu: record assigned devices in a list
> intel_iommu: bind guest pasid table to host
> intel_iommu: add framework for PASID AddressSpace management
> intel_iommu: bind device to PASID tagged AddressSpace
>
> Peter Xu (2):
> memory: rename existing iommu notifier to be iommu mr notifier
> hw/core: introduce IOMMUSVAContext for virt-SVA
>
> hw/alpha/typhoon.c | 2 +-
> hw/core/Makefile.objs | 1 +
> hw/core/pasid.c | 64 ++++++++++
> hw/hppa/dino.c | 2 +-
> hw/i386/amd_iommu.c | 8 +-
> hw/i386/intel_iommu.c | 272 +++++++++++++++++++++++++++++++++++++----
> hw/i386/intel_iommu_internal.h | 10 ++
> hw/pci-host/ppce500.c | 2 +-
> hw/pci-host/prep.c | 2 +-
> hw/pci-host/sabre.c | 2 +-
> hw/pci/pci.c | 85 ++++++++++++-
> hw/ppc/spapr_iommu.c | 8 +-
> hw/ppc/spapr_pci.c | 2 +-
> hw/s390x/s390-pci-bus.c | 6 +-
> hw/vfio/common.c | 28 +++--
> hw/vfio/pci.c | 84 +++++++++++++
> hw/virtio/vhost.c | 10 +-
> include/exec/memory.h | 55 +++++----
> include/hw/core/pasid.h | 110 +++++++++++++++++
> include/hw/i386/intel_iommu.h | 43 ++++++-
> include/hw/pci/pci.h | 33 ++++-
> include/hw/pci/pci_bus.h | 1 +
> include/hw/vfio/vfio-common.h | 19 ++-
> include/hw/virtio/vhost.h | 4 +-
> memory.c | 37 +++---
> 25 files changed, 774 insertions(+), 116 deletions(-)
> create mode 100644 hw/core/pasid.c
> create mode 100644 include/hw/core/pasid.h
>
> --
> 1.9.1
next prev parent reply other threads:[~2018-03-01 13:32 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-01 10:31 [Qemu-devel] [PATCH v3 00/12] Introduce new iommu notifier framework for virt-SVA Liu, Yi L
2018-03-01 10:31 ` [Qemu-devel] [PATCH v3 01/12] memory: rename existing iommu notifier to be iommu mr notifier Liu, Yi L
2018-03-01 10:31 ` [Qemu-devel] [PATCH v3 02/12] vfio: rename GuestIOMMU to be GuestIOMMUMR Liu, Yi L
2018-03-01 10:31 ` [Qemu-devel] [PATCH v3 03/12] hw/core: introduce IOMMUSVAContext for virt-SVA Liu, Yi L
2018-03-05 3:25 ` David Gibson
2018-03-01 10:31 ` [Qemu-devel] [PATCH v3 04/12] vfio/pci: add notify framework based on IOMMUSVAContext Liu, Yi L
2018-03-01 10:31 ` [Qemu-devel] [PATCH v3 05/12] hw/pci: introduce PCISVAOps to PCIDevice Liu, Yi L
2018-03-05 3:31 ` David Gibson
2018-03-01 10:31 ` [Qemu-devel] [PATCH v3 06/12] vfio/pci: provide vfio_pci_sva_ops instance Liu, Yi L
2018-03-01 10:31 ` [Qemu-devel] [PATCH v3 07/12] vfio/pci: register sva notifier Liu, Yi L
2018-03-01 10:31 ` [Qemu-devel] [PATCH v3 08/12] hw/pci: introduce pci_device_notify_iommu() Liu, Yi L
2018-03-01 10:31 ` [Qemu-devel] [PATCH v3 09/12] intel_iommu: record assigned devices in a list Liu, Yi L
2018-03-01 10:32 ` [Qemu-devel] [PATCH v3 10/12] intel_iommu: bind guest pasid table to host Liu, Yi L
2018-03-01 10:32 ` [Qemu-devel] [PATCH v3 11/12] intel_iommu: add framework for PASID AddressSpace management Liu, Yi L
2018-03-01 10:32 ` [Qemu-devel] [PATCH v3 12/12] intel_iommu: bind device to PASID tagged AddressSpace Liu, Yi L
2018-03-01 13:32 ` Michael S. Tsirkin [this message]
2018-03-05 8:06 ` [Qemu-devel] [PATCH v3 00/12] Introduce new iommu notifier framework for virt-SVA Liu, Yi L
-- strict thread matches above, loose matches on Subject: below --
2018-03-01 10:33 Liu, Yi L
2018-03-06 6:55 ` Peter Xu
2018-03-06 7:45 ` Liu, Yi L
2018-03-07 5:38 ` Peter Xu
2018-03-08 9:10 ` Liu, Yi L
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=20180301152451-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=eric.auger.pro@gmail.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=yi.l.liu@linux.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).