GIT-CERCS-10-09
Himanshu Raj, Karsten Schwan,
Virtualization Services: Accelerated I/O Support in Multi-Core Systems
Virtualization services permit I/O subsystems and
peripheral devices to be virtualized by placing select functionality
on specialized cores and/or on cores situated ¡Æcloser¡Ç to devices.
The approach is used to implement self-virtualized I/O (SVIO),
which off-loads certain virtualization functionality onto the
cores available on the I/O device, accelerating I/O functions,
efficiently using key performance-limiting resources in multicore
systems, i.e., memory and I/O bandwidth, and exploiting
the parallelism inherent in multi-core architectures. This paper
evaluates a concrete instance of self-virtualized I/O, a self-virtualized
network interface (SV-NIC), targeting the high end
NICs used in datacenters. Experimental evaluations of the SVNIC
in a prototyping environment using an IXP2400-based
ethernet board show high scalability in terms of the numbers
of virtual interfaces (VIFs) offered to guests, and up to ~77%
improvements in throughput and ~53% reductions in latency,
compared to the current standard virtualized device implementations
on hypervisor-based platforms. Beyond such performance
advantages, the generality of virtualization services and their
use for implementing enhancements to standard services are
demonstrated with a storage service that provides location
transparent access to block devices for guest VMs, and with
enhancements to a network service that provide per-VM, priority based
servicing of virtual network devices.