Analysis of AMD HW-assisted vIOMMU Implementation and Performance
summary
Prototype implements AMD hardware-assisted vIOMMU with QEMU amd_vio device model, host IOMMU driver changes and a guest v2 page-table path; code is pushed as an RFC. Benchmarks use fio (Samsung and Intel NVMe) and netperf (10Gb and 100Gb Mellanox) and report a surprising NVMe bottleneck around ~230 MB/s for the hardware path, while TCP shows near-line-rate on 10Gb and ~30–50 Gbps on 100Gb versus ~20 Gbps baseline for passthrough. Implementation works and improves network I/O versus software vIOMMU but needs fewer IOVA invalidations to lift storage performance; v1/v2 nested IOPT is central to the design.
AI-written summary · about
chapters (11)
- 0:00Intro
- 0:46AMD IOMMU DMA-Remap
- 3:01Guest VIOMMU Support
- 7:36QEMU Changes
- 9:03Host IOMMU Driver Changes
- 13:54QEMU & Host IOMMU Driver Interface
- 14:47Guest AMD IOMMU Driver Changes
- 16:07Configurations
- 19:23NETPERE :TCP_STREAM
- 22:36PT + VIOMMU Overhead Analysis
- 24:17Summary
related talks
40mAchieving the Ultimate Performance with KVM
19mSpeeding Up VM’s I/O Sharing Host's io_uring Queues With Guests
33mGPU Para-Virtualization on Xen
21mNVMe Emulation Performance Optimization
43mComparing Performance of NVMe Hard Drives in KVM, Baremetal, and Docker
20mSpeed Up Creation of a VM With Pass Through GPU
25mXen and XenServer Storage Performance
29mImprove Xeon IRQ throughput with posted interrupt
