A Virtual IOMMU With Cooperative DMA Buffer Tracking
summary
A virtual IOMMU implements cooperative DMA buffer tracking by adding a guest-side driver that hooks DMA APIs, a shared DMA Tracking Table (DTT), and a host backend that performs lazy pinning and reclaim. A PoC extends the existing virtual IOMMU and keeps performance near native direct I/O (≈100% in most workloads, GPU shows ~4% loss without hugepage pinning), avoids >99% of pin requests, and limits pinned pages to ~1% of a 32 GiB guest; proposes new upstream MMU interfaces.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 0:52Static pinning challenges
- 2:38Virtual DMA remapping
- 4:34Decoupling DMA mechanisms
- 6:50Cool MMU architecture
- 9:27DMA tracking table design
- 12:33Tracking vs. remapping
- 15:20Upstream considerations
- 17:00Implementation challenges
- 21:12Evaluation and conclusion
related talks
26mCooperative DMA in a memory-oversubscribed environment
31mIOMMUFD Discussion
36mShared Virtual Addressing for High Performance Arm Infrastructure Platforms
30miommu page table consolidation and iommufd
26mHardware Assisted PMU Virtualization
18mvdpa-blk: Unified Hardware and Software Offload for virtio-blk
31mHardware Friendly Vhost vDPA: Towards an Efficient and Migratable Device Model
30mdrm and cgroup memory management - two great tastes
