VF: virtual function
PF: Physical function
SR-Iov:
Introduction to SR-Iov
SR-Iov Technology is a hardware-based virtualization solution that improves performance and scalability. The SR-Iov standard allows efficient sharing of PCIe (peripheral Component Interconnect Express, fast Peripheral Component Interconnect) devices between virtual machines, and it is implemented in hardware to achieve I/O performance comparable to native performance. The SR-Iov specification defines a new standard that, according to this standard, creates a new device that allows a virtual machine to be connected directly to an I/O device.
The SR-Iov specification is defined and maintained by Pci-sig on http://www.pcisig.com.
A single I/O resource can be shared by many virtual machines. Shared devices will provide dedicated resources and also use shared common resources. This allows each virtual machine to access a unique resource. Therefore, a PCIe device that has SR-Iov enabled and has the appropriate hardware and OS support, such as an Ethernet port, can be displayed as multiple separate physical devices, each with its own PCIe configuration space.
The SR-Iov technology for PCIe hardware is introduced.
Figure 21-1 SR-Iov Technology
The two new feature types in SR-Iov are:
-
Physical functions (physical function, PF)
-
PCI features that support SR-Iov functionality, as defined in the SR-Iov specification. PF includes SR-IOV functional structure for managing SR-Iov functionality. PF is a full-featured PCIe feature that can be discovered, managed, and processed like any other PCIe device. PF has a fully configured resource that can be used to configure or control the PCIE device.
-
Virtual functions (Vsan, VF)
-
A feature that is associated with a physical function. VF is a lightweight PCIe feature that shares one or more physical resources with physical capabilities and other VF associated with the same physical function. The VF only allows configuration resources for its own behavior.
Each SR-Iov device can have a physical function (physical function, pf), and each PF can have up to 64,000 virtual functions associated with it (Vsan, VF). PF can be used to create VF through registers, which are designed to have properties that are specific to this purpose.
Once SR-Iov is enabled in PF, the PCI configuration space for each VF can be accessed through the PF bus, device, and function number (route ID). Each VF has a PCI memory space, which is used to map its register set. The VF device driver operates on the register set to enable its functionality and is displayed as a PCI device that is actually present. After you create the VF, you can assign it directly to the IO guest domain or to individual applications such as Oracle Solaris Zones on a bare metal platform. This feature enables virtual functions to share physical devices and perform I/O without the CPU and hypervisor software overhead.
Advantages of SR-Iov
The SR-Iov standard allows efficient sharing of PCIe devices between IO guest domains. SR-Iov devices can have hundreds of virtual functions (Vsan, VF) associated with a physical function (physical function, PF). The creation of the VF can be controlled dynamically by PF through registers designed to enable SR-Iov functionality. By default, the SR-Iov feature is disabled and PF acts as a legacy PCIe device.
Devices with SR-Iov capabilities can take advantage of the following advantages:
Introduction to VF and NF functions