Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

virtio: towards a de-facto standard for virtual I/O devices

Published: 01 July 2008 Publication History

Abstract

The Linux Kernel currently supports at least 8 distinct virtualization systems: Xen, KVM, VMware's VMI, IBM's System p, IBM's System z, User Mode Linux, lguest and IBM's legacy iSeries. It seems likely that more such systems will appear, and until recently each of these had its own block, network, console and other drivers with varying features and optimizations.
The attempt to address this is virtio: a series of efficient, well-maintained Linux drivers which can be adapted for various different hypervisor implementations using a shim layer. This includes a simple extensible feature mechanism for each driver. We also provide an obvious ring buffer transport implementation called vring, which is currently used by KVM and lguest. This has the subtle effect of providing a path of least resistance for any new hypervisors: supporting this efficient transport mechanism will immediately reduce the amount of work which needs to be done. Finally, we provide an implementation which presents the vring transport and device configuration as a PCI device: this means guest operating systems merely need a new PCI driver, and hypervisors need only add vring support to the virtual devices they implement (currently only KVM does this).
This paper will describe the virtio API layer as implemented in Linux, then the vring implementation, and finally its embodiment in a PCI device for simple adoption on otherwise fully-virtualized guests. We'll wrap up with some of the preliminary work to integrate this I/O mechanism deeper into the Linux host kernel.

References

[1]
Z. Amsden, D. Arai, D. Hecht, A. Holler, and P. Subrahmanyam. VMI: An interface for paravirtualization. In OLS '06: The 2006 Ottawa Linux Symposium, pages 371--386, July 2006.
[2]
P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer, I. Pratt, and A. Warfield. Xen and the art of virtualization. In SOSP '03: Proceedings of the nineteenth ACM symposium on operating systems principles, pages 164--177, New York, NY, USA, 2003. ACM Press.
[3]
J. Corbet. Van Jacobson's network channels. Available: http://lwn.net/Articles/169961/ {Viewed May 14, 2008}, 2006.
[4]
J. Dike. User-mode linux. In ALS '01: Proceedings of the 5th Annual Linux Showcase & Conference, pages 3--14, Berkeley, CA, USA, 2001. USENIX Association.
[5]
A. Kivity, Y. Kamay, D. Laor, U. Lublin, and A. Liguori. kvm: the Linux virtual machine monitor. In OLS '07: The 2007 Ottawa Linux Symposium, pages 225--230, July 2007.
[6]
I. Molnar. KVM/NET, paravirtual network device. Available: http://www.mail-archive.com/[email protected]/msg00824.html {Viewed April 14, 2008}, January 2007.
[7]
R. Russel. lguest: Implementing the little Linux hypervisor. In OLS '07: Proceedings of the 2007 Ottawa Linux Symposium, pages 173--177, 2007.
[8]
R. Russell. Linux virtio_blk definitions. Available: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=include/linux/virtio_blk.h {Viewed April 14, 2008}, 2008.
[9]
R. Russell. Linux virtio_net definitions. Available: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=include/linux/virtio_net.h {Viewed April 14, 2008}, 2008.
[10]
R. Russell. Linux virtio_ring definitions. Available: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=include/linux/virtio_ring.h {Viewed April 14, 2008}, 2008.
[11]
R. Russell. {PATCH 2/3} partial checksum and gso support for tun/tap. Available: http://www.mailarchive.com/[email protected]/msg59903.html Viewed April 14, 2008}, January 2008.
[12]
R. Russell. virtio: hardware random device. Available: http://lwn.net/Articles/282721/ {Viewed May 26, 2008}, May 2008.
[13]
J. Santos, Y. Turner, J. Janakiraman, and I. Pratt. Bridging the gap between software and hardware techniques for i/o virtualization. In Proceedings of the 2008 USENIX Annual Technical Conference.
[14]
J. Sugerman, G. Venkitachalam, and B.-H. Lim. Virtualizing i/o devices on vmware workstation's hosted virtual machine monitor. In Proceedings of the 2001 USENIX Annual Technical Conference, pages 1--14, Berkeley, CA, USA, 2001. USENIX Association.
[15]
XenSource. Xen virtual network driver. Available: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/net/xen-netfront.c {Viewed April 14, 2008}, 2005.

Cited By

View all
  • (2024)Ambience: an operating system for IoT microservicesJournal of Edge Computing10.55056/jec.786Online publication date: 5-Sep-2024
  • (2024)Debesų kompiuterijos lygiagrečiųjų skaičiavimų SAAS efektyvumo tyrimai heterogeninėse architektūroseundefined10.20334/2024-037-MOnline publication date: 2024
  • (2024)Securing a Multiprocessor KVM Hypervisor with RustProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698562(650-667)Online publication date: 20-Nov-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGOPS Operating Systems Review
ACM SIGOPS Operating Systems Review  Volume 42, Issue 5
Research and developments in the Linux kernel
July 2008
113 pages
ISSN:0163-5980
DOI:10.1145/1400097
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 2008
Published in SIGOPS Volume 42, Issue 5

Check for updates

Author Tags

  1. I/O
  2. KVM
  3. Linux
  4. lguest
  5. ring buffer
  6. virtio
  7. virtio_pci
  8. virtualization
  9. vring

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)213
  • Downloads (Last 6 weeks)36
Reflects downloads up to 25 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Ambience: an operating system for IoT microservicesJournal of Edge Computing10.55056/jec.786Online publication date: 5-Sep-2024
  • (2024)Debesų kompiuterijos lygiagrečiųjų skaičiavimų SAAS efektyvumo tyrimai heterogeninėse architektūroseundefined10.20334/2024-037-MOnline publication date: 2024
  • (2024)Securing a Multiprocessor KVM Hypervisor with RustProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698562(650-667)Online publication date: 20-Nov-2024
  • (2024)uIO: Lightweight and Extensible UnikernelsProceedings of the 2024 ACM Symposium on Cloud Computing10.1145/3698038.3698518(580-599)Online publication date: 20-Nov-2024
  • (2024)Performance optimization of microkernel-based embedded I/O virtualization techniquesProceedings of the 2024 4th International Conference on Artificial Intelligence, Automation and High Performance Computing10.1145/3690931.3690955(134-141)Online publication date: 19-Jul-2024
  • (2024)Designing and Implementing Live Migration Support for Arm-based Confidential VMsProceedings of the 15th ACM SIGOPS Asia-Pacific Workshop on Systems10.1145/3678015.3680488(53-59)Online publication date: 4-Sep-2024
  • (2024)vSPACE: Supporting Parallel Network Packet Processing in Virtualized Environments through Dynamic Core ManagementProceedings of the 2024 International Conference on Parallel Architectures and Compilation Techniques10.1145/3656019.3689610(14-25)Online publication date: 14-Oct-2024
  • (2024)vPIM: Processing-in-Memory VirtualizationProceedings of the 25th International Middleware Conference10.1145/3652892.3700782(417-430)Online publication date: 2-Dec-2024
  • (2024)SmartVisor: User-Friendly Hypervisor for Mobile RobotsProceedings of the 25th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3652032.3657573(62-71)Online publication date: 20-Jun-2024
  • (2024)Triton: A Flexible Hardware Offloading Architecture for Accelerating Apsara vSwitch in Alibaba CloudProceedings of the ACM SIGCOMM 2024 Conference10.1145/3651890.3672224(750-763)Online publication date: 4-Aug-2024
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media