3 ms·
The name “paravirtualization” is sort of misleading. It has more to do with history of virtualization than anything to do with technical aspects of it. The inte
by deno 6y ago
The name “paravirtualization” is sort of misleading. It has more to do with history of virtualization than anything to do with technical aspects of it. The intention was to separate it from full on emulation, which is much slower. All modern virtualization is paravirtualization, unless you’re trying to emulate something specifically, e.g. develop for an ARM µc on an x64 workstation.
Technically it just means there’s a client & server components and they communicate through some IPC. In this example you’re talking to a GPU driver running on the host, instead of the GPU directly. The communication goes through a VM boundary, the host driver accesses the device, then returns the result through the boundary, once more. You could just as well do all of this via a network socket, it would just be a little slow.
When you “pass-through” a device the guest is talking to it directly, all the host has to do is set up the IOMMU to limit the guest and the device from accessing the host’s or other guests’ memory. Basically VLANs for PCIe and the IOMMU is a firewall.