Single Root I/O Virtualization (SR-IOV) is a PCI feature which allows virtual functions (VF) to be created that share the resources of a physical function (PF).
SR-IOV is primarily useful in allowing a single PCI device to be shared amongst multiple virtual machines.
- Name: Chris Wright
- Targeted release: Fedora 12
- Last updated: 2009-06-12
- Percentage of completion: 80%
- Test that VF device assignment works with Fedora virt tools
- Get PCI_IOV support upstream (included in v2.6.30)
SR-IOV allows a single PCI device to be shared amongst multiple virtual machines. A common example is where a single SR-IOV capable NIC - with perhaps only a single physical network port - might be shared with multiple virtual machines by assigning a virtual function to each VM.
SR-IOV support is implemented in the kernel. The core implementation is contained in the PCI subsystem, but there must also be driver support for both the Physical Function (PF) and Virtual Function (VF) devices.
In 2.6.30, the Intel® 82576 Gigabit Ethernet Controller is the only SR-IOV cabable device supported. The igb driver has PF support and the igbvf has VF support. (FIXME: neterion also supported in 2.6.31?)
Benefit to Fedora
SR-IOV support further extends Fedora's ability to act as a high-performance server Virtualization solution.
The scope of this feature is entirely limited to the kernel.
The PCI device assignment feature in Fedora 11 is required for SR-IOV to be useful.
How To Test
- Ensure that you have a supported SR-IOV capable device (currently only 82576 NIC)
- Ensure the PF driver allocates a number of VFs (e.g.
modprobe igb max_vfs=7)
- Assign the VF to a guest (see Features/KVM PCI Device Assignment)
- Load the VF driver in the guest and ensure the device works as expected (igbvg is the VF driver for 82576)
As above, users should be able to allocate VFs and assign them to guest virtual machines, allowing the physical resources of the PF to be shared with multiple guests.
- Single Root I/O Virtualization and Sharing Specification, Revision 1.0. Available from PCI SIG.
- Intel® 82576 Gigabit Ethernet Controller
Fedora 12 adds support for PCI Single Root I/O Virtualization (SR-IOV) which allows capable hardware to be shared with multiple guest virtual machines.