[PATCH 0/5] intel_iommu: Add PRI support

CLEMENT MATHIEU--DRIF posted 5 patches 3 weeks, 6 days ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250901111630.1018573-1-clement.mathieu--drif@eviden.com
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, Yi Liu <yi.l.liu@intel.com>, "Clément Mathieu--Drif" <clement.mathieu--drif@eviden.com>, Paolo Bonzini <pbonzini@redhat.com>, Richard Henderson <richard.henderson@linaro.org>, Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
hw/i386/intel_iommu.c          | 337 ++++++++++++++++++++++++++++++++-
hw/i386/intel_iommu_internal.h |  51 +++++
hw/pci/pcie.c                  |   8 +
include/hw/i386/intel_iommu.h  |   1 +
include/hw/pci/pcie.h          |   1 +
5 files changed, 397 insertions(+), 1 deletion(-)
[PATCH 0/5] intel_iommu: Add PRI support
Posted by CLEMENT MATHIEU--DRIF 3 weeks, 6 days ago
This patch set belongs to a list of series that add SVM support for VT-d.
Here, we focus on implementing the PRI API exposed through the PCIIOMMUOps.

This work is based on the VT-d specification version 4.1 (March 2023).

What is PRI?
''''''''''''

PRI (Page Request Interface) is a PCIe-level protocol that enables PCIe devices
to request page fault resolutions to the kernel through an IOMMU. PRI combined
with ATS are the 2 cornerstones of a technology called SVM (Shared Virtual
Memory) or SVA (Shared Virtual Addressing) which allows PCIe devices to read
from and write to the memory of userspace applications without requiring page
pinning.

Resources
'''''''''

Here is a link to our GitHub repository where you can find:
    - Qemu with all the patches for SVM
        - ATS
        - PRI
        - Device IOTLB invalidations
        - Requests with already pre-translated addresses
    - A demo device
    - A simple driver for the demo device
    - A userspace program (for testing and demonstration purposes)

https://github.com/BullSequana/Qemu-in-guest-SVM-demo

Clement Mathieu--Drif (5):
  pcie: Add a way to get the outstanding page request allocation (pri)
    from the config space.
  intel_iommu: Bypass barrier wait descriptor
  intel_iommu: Declare PRI constants and structures
  intel_iommu: Declare registers for PRI
  intel_iommu: Add PRI operations support

 hw/i386/intel_iommu.c          | 337 ++++++++++++++++++++++++++++++++-
 hw/i386/intel_iommu_internal.h |  51 +++++
 hw/pci/pcie.c                  |   8 +
 include/hw/i386/intel_iommu.h  |   1 +
 include/hw/pci/pcie.h          |   1 +
 5 files changed, 397 insertions(+), 1 deletion(-)

-- 
2.51.0