On 1/19/2026 5:17 AM, Pavel Hrdina wrote:
On Fri, Jan 16, 2026 at 05:39:31PM -0800, Nathan Chen via Devel wrote:
From: Nathan Chen<nathanc@nvidia.com>
Implement a new iommufd attribute under hostdevs' PCI subsystem driver that can be used to specify associated iommufd object when launching a qemu VM.
Signed-off-by: Ján Tomko<jtomko@redhat.com> Signed-off-by: Nathan Chen<nathanc@nvidia.com> --- docs/formatdomain.rst | 7 +++++ src/conf/device_conf.c | 11 ++++++++ src/conf/device_conf.h | 1 + src/conf/schemas/basictypes.rng | 5 ++++ src/qemu/qemu_command.c | 46 +++++++++++++++++++++++++++++++++ 5 files changed, 70 insertions(+)
diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 04ef319a73..08fc3f3944 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -4920,6 +4920,13 @@ or: found is "problematic" in some way, the generic vfio-pci driver similarly be forced. We should add :since:`Since 12.1.0 (QEMU and KVM only)`
+ The ``<driver>`` element's ``iommufd`` attribute is used to specify + using the iommufd interface to propagate DMA mappings to the kernel, + instead of VFIO alone. When the attribute is present, an iommufd + object will be created by the resulting qemu command. Libvirt will + open the /dev/iommu and VFIO device cdev, passing the associated + file descriptor numbers to the qemu command. I would rephrase this paragraph to something like this:
:since:`Since 12.1.0 (QEMU and KVM only), the ``iommufd`` element can be used to enable IOMMUFD backend for VFIO device. This provides interface to propagate DMA mappings to kernel for assigned devices. Libvirt will open the /dev/iommu and VFIO device cdev and pass associated file descriptors to QEMU.
Got it, thanks for the feedback. Nathan