Kaushik Ram, Achieving 10 Gbps using Safe and Transparent Network Interface Virtualization

Virtualization has emerged as an attractive solution for efficient management of resources especially in data centers. While efficient virtualization of the processor and the memory has been achieved, I/O virtualization remains the primary source of overhead in today's virtual machine environments like Xen. Xen uses the driver domain I/O model which provides benefits like fault isolation, but makes it even more challenging to achieve good I/O performance. In the case of 10 Gb/s interfaces, the CPU overhead is so high that the achievable I/O throughput is severely limited.

In this work, we demonstrate the effectiveness of two approaches to reduce the CPU overhead of network I/O virtualization. First, we provide the first practical and complete implementation of support for multi-queue network interfaces for Xen, the effect of which is to eliminate packet copying overheads. Second, we present and evaluate the first practical and complete design and implementation of a grant reuse mechanism, the effect of which is to reduce memory protection overheads. With both of these solutions in place, we show that the bottleneck shifts from driver domain to the guest domains. Finally, we present and evaluate a series of optimizations that substantially reduce these overheads in the guest domain. Altogether, the net result of this work is that the guest domains are now able to achieve the full line rate of 10 Gb/s on a modern high-end server, where only 2.9 Gb/s was possible before.