File 061-virtinst-add-support-for-iommufd.patch of Package virt-manager
Subject: virtinst: add support for iommufd
From: Nathan Chen nathanc@nvidia.com Mon Oct 27 18:34:27 2025 +0000
Date: Tue Feb 3 07:17:03 2026 +0100:
Git: 9ab2918face14ff4081b85bfd224342e1829880c
A minimal config to enable iommufd would be
$ virt-install
...args...
--host-device 0x062a:0x0001,driver.iommufd=yes
Signed-off-by: Nathan Chen <nathanc@nvidia.com>
diff --git a/tests/data/cli/compare/virt-install-many-devices.xml b/tests/data/cli/compare/virt-install-many-devices.xml
index fd972ef32..5e4aec35e 100644
--- a/tests/data/cli/compare/virt-install-many-devices.xml
+++ b/tests/data/cli/compare/virt-install-many-devices.xml
@@ -928,6 +928,12 @@
<zpci uid="0xffff" fid="0xffffffff"/>
</address>
</hostdev>
+ <hostdev mode="subsystem" type="pci" managed="yes">
+ <source>
+ <address domain="0" bus="21" slot="0" function="4"/>
+ </source>
+ <driver name="vfio" iommufd="yes"/>
+ </hostdev>
<hostdev mode="subsystem" type="usb" managed="yes">
<source>
<vendor id="0x062a"/>
diff --git a/tests/test_cli.py b/tests/test_cli.py
index b0b236615..8d1c24fe6 100644
--- a/tests/test_cli.py
+++ b/tests/test_cli.py
@@ -748,6 +748,7 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser
--hostdev 15:0.1
--host-device 2:15:0.2
--hostdev 0:15:0.3,address.type=pci,address.zpci.uid=0xffff,address.zpci.fid=0xffffffff
+--hostdev 0:15:0.4,driver_name=vfio,driver.iommufd=yes
--host-device 0x062a:0x0001,driver_name=vfio
--host-device 0483:2016
--host-device pci_8086_2829_scsi_host_scsi_device_lun0,rom.bar=on,acpi.nodeset=0-2
diff --git a/virtinst/cli.py b/virtinst/cli.py
index 1081cf115..c6001644c 100644
--- a/virtinst/cli.py
+++ b/virtinst/cli.py
@@ -5287,6 +5287,7 @@ class ParserHostdev(VirtCLIParser):
cls.add_arg("type", "type")
cls.add_arg("name", None, cb=cls.set_name_cb, lookup_cb=cls.name_lookup_cb)
cls.add_arg("driver.name", "driver_name")
+ cls.add_arg("driver.iommufd", "driver_iommufd")
cls.add_arg("rom.bar", "rom_bar", is_onoff=True)
cls.add_arg("acpi.nodeset", "acpi_nodeset", can_comma=True)
cls.add_arg("source.startupPolicy", "startup_policy")
diff --git a/virtinst/devices/hostdev.py b/virtinst/devices/hostdev.py
index 43d5322f3..2a3dc048d 100644
--- a/virtinst/devices/hostdev.py
+++ b/virtinst/devices/hostdev.py
@@ -127,6 +127,7 @@ class DeviceHostdev(Device):
slot = XMLProperty("./source/address/@slot")
driver_name = XMLProperty("./driver/@name")
+ driver_iommufd = XMLProperty("./driver/@iommufd", is_yesno=True)
rom_bar = XMLProperty("./rom/@bar", is_onoff=True)
acpi_nodeset = XMLProperty("./acpi/@nodeset")