qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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

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