SMMUv3 Nested Stage Setup (VFIO part)
From: | Eric Auger <eric.auger-AT-redhat.com> | |
To: | eric.auger.pro-AT-gmail.com, eric.auger-AT-redhat.com, iommu-AT-lists.linux-foundation.org, linux-kernel-AT-vger.kernel.org, kvm-AT-vger.kernel.org, kvmarm-AT-lists.cs.columbia.edu, will-AT-kernel.org, maz-AT-kernel.org, robin.murphy-AT-arm.com, joro-AT-8bytes.org, alex.williamson-AT-redhat.com, tn-AT-semihalf.com, zhukeqian1-AT-huawei.com | |
Subject: | [PATCH v13 00/13] SMMUv3 Nested Stage Setup (VFIO part) | |
Date: | Sun, 11 Apr 2021 13:46:46 +0200 | |
Message-ID: | <20210411114659.15051-1-eric.auger@redhat.com> | |
Cc: | jacob.jun.pan-AT-linux.intel.com, yi.l.liu-AT-intel.com, wangxingang5-AT-huawei.com, jean-philippe-AT-linaro.org, zhangfei.gao-AT-linaro.org, zhangfei.gao-AT-gmail.com, vivek.gautam-AT-arm.com, shameerali.kolothum.thodi-AT-huawei.com, yuzenghui-AT-huawei.com, nicoleotsuka-AT-gmail.com, lushenming-AT-huawei.com, vsethi-AT-nvidia.com, chenxiang66-AT-hisilicon.com, vdumpa-AT-nvidia.com, jiangkunkun-AT-huawei.com | |
Archive-link: | Article |
This series brings the VFIO part of HW nested paging support in the SMMUv3. The series depends on: [PATCH v15 00/13] SMMUv3 Nested Stage Setup (IOMMU part) 3 new IOCTLs are introduced that allow the userspace to 1) pass the guest stage 1 configuration 2) pass stage 1 MSI bindings 3) invalidate stage 1 related caches They map onto the related new IOMMU API functions. We introduce the capability to register specific interrupt indexes (see [1]). A new DMA_FAULT interrupt index allows to register an eventfd to be signaled whenever a stage 1 related fault is detected at physical level. Also two specific regions allow to - expose the fault records to the user space and - inject page responses. This latter functionality is not exercised in this series but is provided as a POC for further vSVA activities (Shameer's input). Best Regards Eric This series can be found at: https://github.com/eauger/linux/tree/v5.12-rc6-jean-iopf-... The series series includes Tina's patch steming from [1] "[RFC PATCH v2 1/3] vfio: Use capability chains to handle device specific irq" plus patches originally contributed by Yi. History: v12 -> v13: - Comment fix for VFIO_IOMMU_SET_PASID_TABLE (Zenghui) v11 -> v12: - numerous fixes following feedbacks. Many thanks to all of you - See individual history log. v10 -> v11: - rebase on top of v5.10-rc4 - adapt to changes on the IOMMU API (compliant with the doc written by Jacob/Yi) - addition of the page response region - Took into account Zenghui's comments - In this version I have kept the ioctl separate. Since Yi's series [2] is currently stalled, I've just rebased here. [2] [PATCH v7 00/16] vfio: expose virtual Shared Virtual Addressing to VMs v9 -> v10 - rebase on top of 5.6.0-rc3 (no change versus v9) Eric Auger (10): vfio: VFIO_IOMMU_SET_MSI_BINDING vfio/pci: Add VFIO_REGION_TYPE_NESTED region type vfio/pci: Register an iommu fault handler vfio/pci: Allow to mmap the fault queue vfio/pci: Add framework for custom interrupt indices vfio: Add new IRQ for DMA fault reporting vfio/pci: Register and allow DMA FAULT IRQ signaling vfio: Document nested stage control vfio/pci: Register a DMA fault response region vfio/pci: Inject page response upon response region fill Liu, Yi L (2): vfio: VFIO_IOMMU_SET_PASID_TABLE vfio: VFIO_IOMMU_CACHE_INVALIDATE Tina Zhang (1): vfio: Use capability chains to handle device specific irq Documentation/driver-api/vfio.rst | 77 +++++ drivers/vfio/pci/vfio_pci.c | 447 ++++++++++++++++++++++++++-- drivers/vfio/pci/vfio_pci_intrs.c | 62 ++++ drivers/vfio/pci/vfio_pci_private.h | 33 ++ drivers/vfio/pci/vfio_pci_rdwr.c | 84 ++++++ drivers/vfio/vfio_iommu_type1.c | 178 +++++++++++ include/uapi/linux/vfio.h | 142 ++++++++- 7 files changed, 1003 insertions(+), 20 deletions(-) -- 2.26.3