Overview
Explore a 25-minute conference talk from USENIX ATC '20 that introduces coIOMMU, a novel virtual IOMMU architecture designed for efficient memory management in direct I/O scenarios. Delve into the challenges of static pinning in direct I/O and how coIOMMU addresses them through a cooperative DMA buffer tracking mechanism. Learn about the dedicated interface for hypervisor and guest communication, the shared DMA tracking table (DTT), and techniques like smart pinning and lazy unpinning. Discover how coIOMMU significantly enhances memory management efficiency in various direct I/O use cases with minimal performance impact, while maintaining DMA remapping semantics. Gain insights into the architecture, implementation, and evaluation of this innovative solution that promises to revolutionize memory management in virtualized environments.
Syllabus
Intro
Static Pinning in Direct I/O
The Problem of Static Pinning
Virtual IOMMU (VIOMMU)
The Reality
Motivation
Cooperative DMA Buffer Tracking
colOMMU Architecture
DMA Tracking Table (DTT)
Fine-grained Pinning
Guest Mapping Operations
Lazy Unpinning & Speculative Pinning
DMA Tracking vs. DMA Remapping
Implementation
Evaluation
Performance
Memory Footprint
Memory Overcommitment
DMA Temporal Locality
Future Work
Conclusions
Taught by
USENIX