IOGuard: Software-Based I/O Page Fault Handling with One CPU Core

Yiyuan Dong,Zeyu Mi
DOI: https://doi.org/10.1145/3671016.3671394
2024-01-01
Abstract:Nowadays, device passthrough I/O virtualization technology has played an essential role in cloud scenarios like network connection. However, the absence of widespread support for I/O Page Fault (IOPF) in I/O devices means that virtual machines (VMs) with directly assigned devices must pin all memory during startup, severely impacting memory efficiency and startup duration. Previous solutions addressing this issue suffered from various drawbacks, including reliance on specialized hardware, requiring VM modification, or imposing significant performance overhead. This paper introduces IOGuard, a software-based solution that universally, transparently, and efficiently removes the need for pinning all memory through the interception and analysis of I/O commands. Evaluation results demonstrate that IOGuard can support up to 16 VMs with a single host CPU core and incurs less than a 4% I/O performance overhead, substantially enhancing memory utilization for real-world workloads and significantly reducing VM startup times.
What problem does this paper attempt to address?