Virtual I/O Internals
The following document will attempt to detail the internals of a Virtual Function IO (VFIO) driven Mediated Device (Mdev).
Requirements:
Sensitive Instruction List.
Instruction Shim/Binary Translator.
HPA<->GPA Boundary Enforcement.
RPC Mode
RPC Mode moves instruction information across a virtual function interface (VF) using Remote Procedure Calls generally by way of soft interrupt (IOCTLs). These instructions are presented to the host in the context of emulated memory regions (indirect emulated communication, requires a VM-exit) or passthrough memory directions (direct communication, no VM-exit).
SR-IOV Mode
SR-IOV Mode involves the communication of instructions from a virtual function (VF) though direct communication to the PCI BAR.