14e3b352c2
Implementation for BP/libvirt-viommu-device. With provide `hw:viommu_model` property to extra_specs or `hw_viommu_model` to image property. will enable viommu to libvirt guest. [1] https://www.berrange.com/posts/2017/02/16/setting-up-a-nested-kvm-guest-for-developing-testing-pci-device-assignment-with-numa/ [2] https://review.opendev.org/c/openstack/nova-specs/+/840310 Implements: blueprint libvirt-viommu-device Change-Id: Ief9c550292788160433a28a7a1c36ba38a6bc849 Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
22 lines
1.1 KiB
YAML
22 lines
1.1 KiB
YAML
---
|
|
features:
|
|
- |
|
|
The Libvirt driver can now add a virtual IOMMU device
|
|
to all created guests, when running on an x86 host and using the Q35
|
|
machine type or on AArch64.
|
|
|
|
To enable this, provide `hw:viommu_model` in flavor extra
|
|
spec or equivalent image metadata property `hw_viommu_model` and with the
|
|
guest CPU architecture and OS allows, we will enable viommu in Libvirt
|
|
driver. Support values intel|smmuv3|virtio|auto. Default to ``auto``.
|
|
Which ``auto`` will automatically select ``virtio`` if Libvirt supports it,
|
|
else ``intel`` on X86 (Q35) and ``smmuv3`` on AArch64.
|
|
vIOMMU config will raise invalid exception if the guest architecture is
|
|
neither X86 (Q35) or AArch64.
|
|
|
|
Note that, enable vIOMMU might introduce significant performance overhead.
|
|
You can see performance comparision table from
|
|
`AMD vIOMMU session on KVM Forum 2021`_.
|
|
For above reason, vIOMMU should only be enable for workflow that require it.
|
|
.. _`AMD vIOMMU session on KVM Forum 2021`: https://static.sched.com/hosted_files/kvmforum2021/da/vIOMMU%20KVM%20Forum%202021%20-%20v4.pdf
|