Hi there!

I would like to be able to use vIOMMU on an AMD system, so I can pass a GPU
through to a VM which then passes it to a nested VM ( it's a long story ).

I believe this is feasible with an Intel host, however vIOMMU for AMD
doesn't seem to be complete. Is that correct? I see pages like
https://kvmforum2021.sched.com/event/ke4S/analysis-of-amd-hw-assisted-viommu-implementation-and-performance-suravee-suthikulpanit-wei-huang-amd
and https://github.com/3dgie/AMD-Vi ( and some others ) with some early
work that I assume is not yet complete & merged?

Or coming at this another way ... I've added the following to my libvirt
XML definition:

  <qemu:commandline>
    <qemu:arg value="-machine"/>
    <qemu:arg value="kernel-irqchip=split"/>
    <qemu:arg value="-device"/>
    <qemu:arg value="amd-iommu"/>
  </qemu:commandline>

 ... and the error message I get when I launch the VM:

Error starting domain: internal error: QEMU unexpectedly closed the monitor
(vm='Golem'): 2024-08-13T00:26:20.165451Z qemu-system-x86_64: -device
{"driver":"vfio-pci","host":"0000:01:00.0","id":"hostdev0","bus":"pci.7","addr":"0x0"}:
vfio 0000:01:00.0: failed to setup container for group 12: memory listener
initialization failed: Region amd_iommu: device 00.00.0 requires iommu
notifier which is not currently supported

In particular, the part:

 Region amd_iommu: device 00.00.0 requires iommu notifier which is not
currently supported

 ... sounds to me like this is not going to work currently. Are there plans
to support this?

Thanks!

Dan

Reply via email to