Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor
Proceedings of the General Track: 2002 USENIX Annual Technical Conference
Xen and the art of virtualization
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
ALS '01 Proceedings of the 5th annual Linux Showcase & Conference - Volume 5
Bridging the gap between software and hardware techniques for I/O virtualization
ATC'08 USENIX 2008 Annual Technical Conference on Annual Technical Conference
SmartVisor: towards an efficient and compatible virtualization platform for embedded system
Proceedings of the Second Workshop on Isolation and Integration in Embedded Systems
Fast networking with socket-outsourcing in hosted virtual machine environments
Proceedings of the 2009 ACM symposium on Applied Computing
CoreLab: an emerging network testbed employing hosted virtual machine monitor
CoNEXT '08 Proceedings of the 2008 ACM CoNEXT Conference
Nephele: efficient parallel data processing in the cloud
Proceedings of the 2nd Workshop on Many-Task Computing on Grids and Supercomputers
Plugging the hypervisor abstraction leaks caused by virtual networking
Proceedings of the 3rd Annual Haifa Experimental Systems Conference
On the DMA mapping problem in direct device assignment
Proceedings of the 3rd Annual Haifa Experimental Systems Conference
Applying Amdahl's other law to the data center
IBM Journal of Research and Development
Scalable I/O - a well-architected way to do scalable, secure and virtualized I/O
WIOV'08 Proceedings of the First conference on I/O virtualization
Experiences with content addressable storage and virtual disks
WIOV'08 Proceedings of the First conference on I/O virtualization
I/O virtualization bottlenecks in cloud computing today
WIOV'10 Proceedings of the 2nd conference on I/O virtualization
Evaluating and optimizing I/O virtualization in kernel-based virtual machine (KVM)
NPC'10 Proceedings of the 2010 IFIP international conference on Network and parallel computing
The turtles project: design and implementation of nested virtualization
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
Performance profiling of virtual machines
Proceedings of the 7th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
SplitX: split guest/hypervisor execution on multi-core
WIOV'11 Proceedings of the 3rd conference on I/O virtualization
VAMOS: virtualization aware middleware
WIOV'11 Proceedings of the 3rd conference on I/O virtualization
vIOMMU: efficient IOMMU emulation
USENIXATC'11 Proceedings of the 2011 USENIX conference on USENIX annual technical conference
vPF_RING: towards wire-speed network monitoring using virtual machines
Proceedings of the 2011 ACM SIGCOMM conference on Internet measurement conference
Virtio network paravirtualization driver: Implementation and performance of a de-facto standard
Computer Standards & Interfaces
ELI: bare-metal performance for I/O virtualization
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Isolating commodity hosted hypervisors with HyperLock
Proceedings of the 7th ACM european conference on Computer Systems
Understanding performance implications of nested file systems in a virtualized environment
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
Adding advanced storage controller functionality via low-overhead virtualization
FAST'12 Proceedings of the 10th USENIX conference on File and Storage Technologies
Proceedings of the 6th international workshop on Virtualization Technologies in Distributed Computing Date
Performance evaluation of video-on-demand in virtualized environments: the client perspective
Proceedings of the 6th international workshop on Virtualization Technologies in Distributed Computing Date
Singleton: system-wide page deduplication in virtual environments
Proceedings of the 21st international symposium on High-Performance Parallel and Distributed Computing
VNET/P: bridging the cloud and high performance computing through fast overlay networking
Proceedings of the 21st international symposium on High-Performance Parallel and Distributed Computing
Understanding the impact of denial of service attacks on virtual machines
Proceedings of the 2012 IEEE 20th International Workshop on Quality of Service
Towards exitless and efficient paravirtual I/O
Proceedings of the 5th Annual International Systems and Storage Conference
VALE, a switched ethernet for virtual machines
Proceedings of the 8th international conference on Emerging networking experiments and technologies
Towards verifiable resource accounting for outsourced computation
Proceedings of the 9th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
Formal virtualization requirements for the ARM architecture
Journal of Systems Architecture: the EUROMICRO Journal
Streaming as a hypervisor service
Proceedings of the 7th international workshop on Virtualization technologies in distributed computing
VIDAS: object-based virtualized data sharing for high performance storage I/O
Proceedings of the 4th ACM workshop on Scientific cloud computing
Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM
The nonkernel: a kernel designed for the cloud
Proceedings of the 4th Asia-Pacific Workshop on Systems
Guide-copy: fast and silent migration of virtual machine for datacenters
SC '13 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Efficient and scalable paravirtual I/O system
USENIX ATC'13 Proceedings of the 2013 USENIX conference on Annual Technical Conference
Speeding up packet I/O in virtual machines
ANCS '13 Proceedings of the ninth ACM/IEEE symposium on Architectures for networking and communications systems
I/o paravirtualization at the device file boundary
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
KVM/ARM: the design and implementation of the linux ARM hypervisor
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
VSwapper: a memory swapper for virtualized environments
Proceedings of the 19th international conference on Architectural support for programming languages and operating systems
Sirtio: Towards Scalable Virtual SSDs
Proceedings of the Second International Conference on Innovative Computing and Cloud Computing
Shrinking the hypervisor one subsystem at a time: a userspace packet switch for virtual machines
Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
A virtualized separation kernel for mixed criticality systems
Proceedings of the 10th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
MultiLanes: providing virtualized storage for OS-level virtualization on many cores
FAST'14 Proceedings of the 12th USENIX conference on File and Storage Technologies
ClickOS and the art of network function virtualization
NSDI'14 Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation
Hi-index | 0.00 |
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.