> -----Original Message-----
> From: Duan, Zhenzhong <zhenzhong.duan@intel.com>
> Sent: Friday, March 27, 2026 10:52 AM
> To: qemu-devel@nongnu.org
> Cc: alex@shazbot.org; clg@redhat.com; eric.auger@redhat.com;
> mst@redhat.com; jasowang@redhat.com; jgg@nvidia.com;
> nicolinc@nvidia.com; skolothumtho@nvidia.com;
> joao.m.martins@oracle.com; clement.mathieu--drif@bull.com; Tian, Kevin
> <kevin.tian@intel.com>; Liu, Yi L <yi.l.liu@intel.com>; Hao, Xudong
> <xudong.hao@intel.com>; Duan, Zhenzhong <zhenzhong.duan@intel.com>
> Subject: [PATCH 0/5] intel_iommu: Enable PRQ support for passthrough
> device
>
> Hi,
>
> When svm=on,pasid=N,x-flst=on is configured for virtual vtd, we enable
> guest's support for vSVM. In this case, the host VTD may generate
> recoverable first stage page fault event, QEMU read the event and inject it to
> guest.
>
> After guest handles the event, it sends a page group response, QEMU gets
> the response and pass it to host VTD.
>
> This series adds QEMU support for receiving such host events through the
> FAULTQ interface and propagating them to the guest, then catching guest's
> responses and propagating them to host.
>
> This patchset depends on pasid support:
> https://lore.kernel.org/qemu-devel/20260326091130.321483-1-
> zhenzhong.duan@intel.com/#t
>
> GIT branch:
> https://github.com/yiliu1765/qemu/tree/zhenzhong/iommufd_prq
>
> Tests:
> Tested with DSA wq attached to an user APP which triggers IO page fault on
> process page table durging DMA.
>
> Thanks
> Zhenzhong
>
>
> Zhenzhong Duan (5):
> backends/iommufd: Introduce iommufd_backend_alloc_faultq
> backends/iommufd: Extend iommufd_backend_alloc_hwpt() with fault_id
> intel_iommu_accel: Add PRQ injection for passthrough device
> intel_iommu_accel: Accept PRQ response for passthrough device
> intel_iommu_accel: teardown FAULTQ resources in bottom half
>
> hw/i386/intel_iommu_accel.h | 16 +++
> include/hw/i386/intel_iommu.h | 6 +
> include/system/iommufd.h | 7 +-
> backends/iommufd.c | 34 ++++-
> hw/arm/smmuv3-accel.c | 6 +-
> hw/i386/intel_iommu.c | 4 +
> hw/i386/intel_iommu_accel.c | 243
> +++++++++++++++++++++++++++++++++-
> hw/vfio/iommufd.c | 2 +-
> backends/trace-events | 3 +-
> hw/i386/trace-events | 2 +
> 10 files changed, 308 insertions(+), 15 deletions(-)
>
> --
> 2.47.3
Tested-by: Xudong Hao <xudong.hao@intel.com>
DSA PF assignment to VM with vIOMMU scalable mode, userspace test tool dsa_test passed in VM. https://github.com/intel/idxd-config