Making I/O Virtualization Easy with Device Files
Ardalan Amiri Sani, Sreekumar Nair, Lin Zhong, Quinn Jacobson

TL;DR
This paper introduces devirtualization, a simplified approach to I/O virtualization for personal computers using device files, enabling efficient virtualization of diverse devices with minimal code and native-like performance.
Contribution
The paper proposes devirtualization, a novel design for I/O virtualization at device file boundaries, and demonstrates its implementation supporting various devices with high performance.
Findings
Supports virtualization of GPUs, input devices, cameras, and audio devices
Achieves native-like performance in interactive tasks including 3D HD gaming
Uses fewer than 4900 lines of code, with minimal device-specific code
Abstract
Personal computers have diverse and fast-evolving I/O devices, making their I/O virtualization different from that of servers and data centers. In this paper, we present our recent endeavors in simplifying I/O virtualization for personal computers. Our key insight is that many operating systems, including Unix-like ones, abstract I/O devices as device files. There is a small and stable set of operations on device files, therefore, I/O virtualization at the device file boundary requires a one-time effort to support various I/O devices. We present devirtualization, our design of I/O virtualization at the device file boundary and its implementation for Linux/x86 systems. We are able to virtualize various GPUs, input devices, cameras, and audio devices with fewer than 4900 LoC, of which only about 300 are specific to I/O device classes. Our measurements show that devirtualized devices…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsCloud Computing and Resource Management · Security and Verification in Computing · Advanced Data Storage Technologies
