ABSTRACT

Virtio is more than networking, it also includes the other interface support such as block device. In this chapter, the main focus is on the virtio-net, unless explicitly stated otherwise. Compared with the legacy network I/O device emulated simply by software in the hypervisor, virtio, more specifically virtio-net, has a good I/O performance. Virtio is born and existing long enough in Linux kernel, virtio-net is acceptable as a common practice for public cloud workload, work seamlessly together with virtual switches, as the network interface to virtual machine. It has two options: Running the virtio-net kernel module for compute-intensive workload or running the Data Plane Development Kit (DPDK)-enabled virtio-pmd for network-intensive workload, which provides a higher networking throughput. DPDK focuses on packet processing, which currently supports virtio-net in Peripheral Component Interconnect interface mode. While the DPDK driver offers a higher performance, it uses the poll mode with one or multiple cores.