VirtIO

Introduction to VirtIO | Oracle (2022)

https://blogs.oracle.com/linux/post/introduction-to-virtio


For the VM to access the host’s NIC, and therefore access the internet, a VirtIO device called virtio-net can be created. In a nutshell, it’s main purpose is to send and receive network data to and from the host.

Untitled

VirtIO Architecture

VirtQueues and VRings

VHost

Unlike VirtIO drivers & devices, whose data plane exists in the Qemu process, VHost can offload the data plane to either another host user process (VHost-User) or to the host’s kernel (VHost, as a kernel module). The motivation behind doing this is performance.