|M.Sc Student||Kiyanovski Arthur|
|Subject||The Real Difference Between Emulation and Paravirtualization|
of High-Throughput I/0 Devices
|Department||Department of Computer Science||Supervisor||Professor Dan Tsafrir|
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.