Installation guide

Chapter 13.
117
SR-IOV
13.1. Introduction
The PCI-SIG (PCI Special Interest Group) developed the Single Root I/O Virtualization (SR-IOV)
specification. The SR-IOV specification is a standard for a type of PCI passthrough which natively
shares a single device to multiple guests. SR-IOV reduces hypervisor involvement by specifying
virtualization compatible memory spaces, interrupts and DMA streams. SR-IOV improves device
performance for virtualized guests.
Figure 13.1. How SR-IOV works
SR-IOV enables a Single Root Function (for example, a single Ethernet port), to appear as multiple,
separate, physical devices. A physical device with SR-IOV capabilities can be configured to appear
in the PCI configuration space as multiple functions, each device has its own configuration space
complete with Base Address Registers (BARs).
SR-IOV uses two new PCI functions:
Physical Functions (PFs) are full PCIe devices that include the SR-IOV capabilities. Physical
Functions are discovered, managed, and configured as normal PCI devices. Physical Functions
configure and manage the SR-IOV functionality by assigning Virtual Functions.
Virtual Functions (VFs) are simple PCIe functions that only process I/O. Each Virtual Function is
derived from a Physical Function. The number of Virtual Functions a device may have is limited
by the device hardware. A single Ethernet port, the Physical Device, may map to many Virtual
Functions that can be shared to virtualized guests.
The hypervisor can map one or more Virtual Functions to a virtualized guest. The Virtual Function's
configuration space is mapped to the configuration space presented to the virtualized guest by the
hypervisor.
Each Virtual Function can only be mapped to a single guest at a time, as Virtual Functions require
real hardware resources. A virtualized guest can have multiple Virtual Functions. A Virtual Function