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 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.