Re: [PATCH v3 0/6] intel_iommu: Enable PRQ support for passthrough device

Clément MATHIEU--DRIF <[email protected]>
Newsgroups gmane.comp.emulators.qemu
Message-ID <[email protected]>
Hi Zhenzhong,

I will read this series early next week.
thanks for the respin!

btw, related to this work: have ever seen
vfio_device_get_aw_bits returning 47 whereas
the iommu supports 48? This leads the following
aw test to fail:

```
ret = hiodc->get_cap(hiod, HOST_IOMMU_DEVICE_CAP_AW_BITS, errp);
if (ret < 0) {
    return false;
}
if (s->aw_bits > ret) {
    error_setg(errp, "aw-bits %d > host aw-bits %d", s->aw_bits, ret);
    return false;
}
```

I got this when trying to nest VMs.

On Thu, 2026-08-06 at 03:38 -0400, Zhenzhong Duan wrote:
> Caution: External email. Do not open attachments or click links, unless this email comes from a known sender and you know the content is safe.
> 
> 
> Hi,
> 
> When svm=on,pasid-bits=N,fsts=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.
> 
> GIT branch: [https://github.com/yiliu1765/qemu/tree/zhenzhong/iommufd_prq.v3](https://github.com/yiliu1765/qemu/tree/zhenzhong/iommufd_prq.v3)
> 
> Tests:  
> Tested with DSA wq attached to an user app which triggers IO page fault on  
> process page table durging DMA.
> 
> Thanks  
> Zhenzhong
> 
> Changelog:  
> v3:  
> - convert to PCI pasid before passing to vtd_pri_request_page (Clement)  
> - expose vtd_pri_request_page and drop accel_ops pointer (Clement)  
> - add a cleanup patch "intel_iommu_accel: Guard VTDAccelPASIDCacheEntry definition" (Philippe)
> 
> v2:  
> - define fault_fd int type (Liuyi)  
> - update comments on FAULTQ_BUF_SIZE (Liuyi)  
> - drop param vtd_hiod in vtd_destroy_old_fs_faultq() (Liuyi)  
> - s/vtd_propagate_page_group_response_accel/vtd_accel_propagate_page_group_response (Liuyi)  
> - call vtd_prq_response_notify() directly instead of through pri_notifier (Liuyi)  
> - replace "fault_id != 0" check with "fault_fd < 0" check (Liuyi)
> 
> 
> Zhenzhong Duan (6):  
>   intel_iommu_accel: Guard VTDAccelPASIDCacheEntry definition  
>   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 ++-  
>  hw/i386/intel_iommu_internal.h |   3 +  
>  include/hw/i386/intel_iommu.h  |   6 +  
>  include/system/iommufd.h       |   7 +-  
>  backends/iommufd.c             |  28 +++-  
>  hw/arm/smmuv3-accel.c          |   6 +-  
>  hw/i386/intel_iommu.c          |  11 +-  
>  hw/i386/intel_iommu_accel.c    | 245 ++++++++++++++++++++++++++++++++-  
>  hw/vfio/iommufd.c              |   2 +-  
>  backends/trace-events          |   3 +-  
>  hw/i386/trace-events           |   2 +  
>  11 files changed, 308 insertions(+), 21 deletions(-)
> 
> --  
> 2.52.0
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.