The VirtIO IOMMU device spec is to be merged upstream soon and this page is to be updated. The best info regarding the current state can be found on the developer's web page: http://jpbrucker.net.
Availability | Acceptance in the VIRTIO standard | Proposal for the standard | De facto standard | Implementation status | In QEMU / Linux kernel | FOSSS in a GitHub Repo | Commercial / closed-source implementation | Other implementations | Complexity estimation | Performance | Code maturity | vIOMMU||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
virtio-iommu | Yes | No | Expected to land in 1.2 | Final proposal v0.4 Working draft 0.8 [1]. | No | The device can handle attach/detach and map/unmap requests from a guest. | Yes | Yes: kernel (upstream since 5.3) [2], QEMU [3] | ARM SMMUv3 Emulation [4] | Low/Medium | Low, see [5] page 21Low, see [5] page 23, arguable, needs testing | Medium |
[1] httphttps://jpbrucker.netgithub.com/oasis-tcs/virtio-iommuspec/spec/virtio-iommu.pdfissues/37
[2] https://www.spinics.net/lists/kvm/msg147990.htmlgithub.com/torvalds/linux/blob/v5.3/drivers/iommu/virtio-iommu.c
[3] https://www.spinics.net/lists/kvm/msg170655.htmlgithub.com/eauger/qemu/tree/v4.0-virtio-iommu-v0.12
[4] https://patchwork.ozlabs.org/cover/904249/
...