So I want to turn iommu support on in a guest ( <type arch='x86_64'
machine='pc-q35-4.1'>hvm</type>). Per [1] I tried to add to devices
either
<devices>
<iommu model='intel'>
<driver intremap='on'/>
</iommu>
</devices>
or just a simpler
<devices>
<iommu model='intel /'>
</devices>
However, when I try to boot it, it crashes with the following error
message (stolen from /var/log/libvirt/qemu/testkvm.log):
2020-02-11T05:13:27.278707Z qemu-system-x86_64: We need to set
caching-mode=on for intel-iommu to enable device assignment with IOMMU
protection.
2020-02-11 05:13:27.577+0000: shutting down, reason=crashed
that sounds like it wants me to do something like
qemu-system-x86_64 [...] -device intel-iommu,intremap=on,caching-mode=on[2]
using virsh. But
<devices>
<iommu model='intel'>
<driver intremap='on' caching-mode='on '/>
</iommu>
</devices>
is not only not mentioned in [1] but also fails
[root@testbox tests]# virsh edit testkvm
error: XML document failed to validate against schema: Unable to
validate doc against /usr/share/libvirt/schemas/domain.rng
Extra element devices in interleave
Element domain failed to validate content
Failed. Try again? [y,n,i,f,?]:
Can anyone show me what I am missing here?
[1]
https://libvirt.org/formatdomain.html#elementsIommu
[2]
https://wiki.qemu.org/Features/VT-d#Command_Line_Example_2