Single Root I/O Virtualization or SR-IOV for short is a PCI Express (PCIe) specification, that allows PCI Express adapters to be shared between multiple operating systems. Similar to micro-partitioning, several guest operating systems (LPARs) get shares of a physical PCIe adapter. The big advantage, in terms of performance, is that the hardware virtualization is completely performed by the physical PCIe adapter. A virtual I/O server, as required for other virtualization technologies, is not necessary for SR-IOV. The LPARs can address and use the PCIe adapter directly. This saves processor resources in particular and also reduces I/O latency.
Physical functions (PF) and virtual functions (VF) are introduced to support virtualization. Physical functions support all the features of a PCIe adapter, in particular the configuration of the physical device (chip) and I/O. Virtual functions are lightweight versions of the physical functions, that do not allow any configuration of the physical device (chip), but only support I/O. This is shown schematically in figure 7.17.
The physical function PF0 allows the configuration of the Ethernet controller for the first port of the PCIe card. PF0 also supports I/O (transfer of Ethernet packets) via the first port of the card. The virtual functions VF0,x only allow I/ O but no reconfiguration of the physical Ethernet port.
Each of the virtual functions can be assigned to a different LPAR. The LPAR then has the option of doing I/O directly via the assigned physical device.
PowerVM currently only supports SR-IOV capable Ethernet adapters.