Message ID | 1571919983-3231-1-git-send-email-yi.l.liu@intel.com (mailing list archive) |
---|---|
Headers | show |
Series | vfio: support Shared Virtual Addressing | expand |
> From: Liu Yi L > Sent: Thursday, October 24, 2019 8:26 PM > > Shared virtual address (SVA), a.k.a, Shared virtual memory (SVM) on Intel > platforms allow address space sharing between device DMA and > applications. > SVA can reduce programming complexity and enhance security. > This series is intended to expose SVA capability to VMs. i.e. shared guest > application address space with passthru devices. The whole SVA > virtualization > requires QEMU/VFIO/IOMMU changes. This series includes the VFIO > changes, for > QEMU and IOMMU changes, they are in separate series (listed in the > "Related > series"). > > The high-level architecture for SVA virtualization is as below: > > .-------------. .---------------------------. > | vIOMMU | | Guest process CR3, FL only| > | | '---------------------------' > .----------------/ > | PASID Entry |--- PASID cache flush - > '-------------' | > | | V > | | CR3 in GPA > '-------------' > Guest > ------| Shadow |--------------------------|-------- > v v v > Host > .-------------. .----------------------. > | pIOMMU | | Bind FL for GVA-GPA | > | | '----------------------' > .----------------/ | > | PASID Entry | V (Nested xlate) > '----------------\.------------------------------. > | | |SL for GPA-HPA, default domain| > | | '------------------------------' > '-------------' > Where: > - FL = First level/stage one page tables > - SL = Second level/stage two page tables > > There are roughly three parts in this patchset which are > corresponding to the basic vSVA support for PCI device > assignment > 1. vfio support for PASID allocation and free from VMs > 2. vfio support for guest PASID binding from VMs > 3. vfio support for IOMMU cache invalidation from VMs > > The complete vSVA upstream patches are divided into three phases: > 1. Common APIs and PCI device direct assignment > 2. Page Request Services (PRS) support > 3. Mediated device assignment > > This RFC patchset is aiming for the phase 1, and works together with the > VT-d driver[1] changes and QEMU changes[2]. Complete set for vSVA can > be > found in: > https://github.com/jacobpan/linux.git:siov_sva. > > And this patchset doesn't include the patch to expose PASID capability to > guest. This is expected to be in another series. > > Related series: > [1] [PATCH v6 00/10] Nested Shared Virtual Address (SVA) VT-d support: > https://lkml.org/lkml/2019/10/22/953 > <This series is based on this kernel series from Jacob Pan> > > [2] [RFC v2 00/20] intel_iommu: expose Shared Virtual Addressing to VM > from Yi Liu there is no link, and should be [RFC v2 00/22] > > Changelog: > - RFC v1 -> v2: > Dropped vfio: VFIO_IOMMU_ATTACH/DETACH_PASID_TABLE. > RFC v1: https://patchwork.kernel.org/cover/11033699/ > > Liu Yi L (3): > vfio: VFIO_IOMMU_CACHE_INVALIDATE > vfio/type1: VFIO_IOMMU_PASID_REQUEST(alloc/free) > vfio/type1: bind guest pasid (guest page tables) to host > > drivers/vfio/vfio_iommu_type1.c | 305 > ++++++++++++++++++++++++++++++++++++++++ > include/uapi/linux/vfio.h | 82 +++++++++++ > 2 files changed, 387 insertions(+) > > -- > 2.7.4 > > _______________________________________________ > iommu mailing list > iommu@lists.linux-foundation.org > https://lists.linuxfoundation.org/mailman/listinfo/iommu
Hi Kevin, > From: Tian, Kevin > Sent: Friday, October 25, 2019 4:59 PM > To: Liu, Yi L <yi.l.liu@intel.com>; alex.williamson@redhat.com; > Subject: RE: [RFC v2 0/3] vfio: support Shared Virtual Addressing > > > From: Liu Yi L > > Sent: Thursday, October 24, 2019 8:26 PM > > > > Shared virtual address (SVA), a.k.a, Shared virtual memory (SVM) on > > Intel platforms allow address space sharing between device DMA and > > applications. > > SVA can reduce programming complexity and enhance security. > > This series is intended to expose SVA capability to VMs. i.e. shared > > guest application address space with passthru devices. The whole SVA > > virtualization requires QEMU/VFIO/IOMMU changes. This series includes > > the VFIO changes, for QEMU and IOMMU changes, they are in separate > > series (listed in the "Related series"). > > > > The high-level architecture for SVA virtualization is as below: > > [...] > > > > Related series: > > [1] [PATCH v6 00/10] Nested Shared Virtual Address (SVA) VT-d support: > > https://lkml.org/lkml/2019/10/22/953 > > <This series is based on this kernel series from Jacob Pan> > > > > [2] [RFC v2 00/20] intel_iommu: expose Shared Virtual Addressing to VM > > from Yi Liu > > there is no link, and should be [RFC v2 00/22] The link is not generated at the time this series is sent out. Yeah, should be [RFC v2 0/22]. Thanks for spotting it. Regards, Yi Liu