On 3/18/26 5:18 AM, Cédric Le Goater wrote:
On 3/18/26 09:37, Duan, Zhenzhong wrote:
-----Original Message-----
From: Cédric Le Goater <[email protected]>
Subject: Re: [PATCH 1/2] backends/iommufd.c: report error when /dev/iommu is
not available
On 3/18/26 08:36, Duan, Zhenzhong wrote:
-----Original Message-----
From: Pierrick Bouvier <[email protected]>
Subject: [PATCH 1/2] backends/iommufd.c: report error when /dev/iommu is
not
available
In case current kernel does not support /dev/iommu, qemu will probably
fail first because /sys/bus/pci/devices/*/vfio-dev/ is not present,
since QEMU opens it before /dev/iommu.
Instead, report an error directly when initializing iommufd object, to
inform user that kernel does not support it, with a hint about missing
CONFIG_IOMMUFD.
Signed-off-by: Pierrick Bouvier <[email protected]>
---
backends/iommufd.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/backends/iommufd.c b/backends/iommufd.c
index acfab907c03..c4eb3de1307 100644
--- a/backends/iommufd.c
+++ b/backends/iommufd.c
@@ -32,6 +32,11 @@ static void iommufd_backend_init(Object *obj)
{
IOMMUFDBackend *be = IOMMUFD_BACKEND(obj);
+ if (!g_file_test("/dev/iommu", G_FILE_TEST_EXISTS)) {
+ error_setg(&error_fatal, "/dev/iommu does not exist"
+ " (is your kernel config missing
CONFIG_IOMMUFD?)");
If hot add an iommufd object with object_add QMP, may this kill QEMU
instance?
yes.
Good point, I didn't think about it.
Unfortunately, backends are Objects. So we don't have a realize
handler and a 'Error **' parameter :/
Maybe do it in iommufd_backend_complete()?
Yep. Perfect.
Pierrick,
Can you please move the test under the complete handler ?
May be add a #define for "/dev/iommu" while at it.
Yes, it works as expected.
I was not sure when the "complete" phase would be called, but it's still
triggered before trying to open vfio-dev/vfio*/dev, so all good for me!
Thanks,
C.
Regards,
Pierrick