Technical Report MSC-2017-19

Title: The Real Difference Between Emulation and Paravirtualization of High-Throughput I/O Devices
Authors: Arthur Kiyanovski
Supervisors: Dan Tsafrir
PDFCurrently accessibly only within the Technion network
Abstract: Emulation of high-throughput Input/Output (I/O) devices for virtual machines (VM) is appealing because an emulated I/O device works out of the box without the need to install a new device driver in the VM when moving the VM from one hypervisor to another. The problem is that fully emulating a hardware device can be costly due to multiple virtualization exits. Installations therefore often prefer to use paravirtual I/O devices, which reduce the number of exits by making VMs aware that they are being virtualized at the cost of the need to install a new device driver when moving from one hypervisor to another. Previous studies report that paravirtual I/O devices provide 5.5--40x higher throughput as compared to emulated ones, leading to the perception that emulated I/O devices are significantly inferior to paravirtual ones, despite the appealing properties of emulation. We challenge this perception and show that the throughput difference between QEMU's emulated e1000 and paravirtual virtio-net network devices is largely due to various implementation differences that are unrelated to virtualization. We resolve many of these differences and show that, consequently, the throughput difference between virtio-net and e1000 can be reduced from 20--77x to as little as 1.2--2.2x. We speculate that resolving the remaining differences will reduce this throughput difference further.
CopyrightThe above paper is copyright by the Technion, Author(s), or others. Please contact the author(s) for more information

Remark: Any link to this technical report should be to this page (, rather than to the URL of the PDF files directly. The latter URLs may change without notice.

To the list of the MSC technical reports of 2017
To the main CS technical reports page

Computer science department, Technion