From Fedora Project Wiki

< Features

Revision as of 22:19, 13 July 2009 by Poelstra (talk | contribs) (Comments and Discussion)



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.


Current status

  • Targeted release: Fedora 12
  • Last updated: 2009-07-08
  • Percentage of completion: 80%


  • Test that VF device assignment works with Fedora virt tools


  • Get PCI_IOV support upstream (included in v2.6.30)

Detailed Description

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

  1. Ensure that you have a supported SR-IOV capable device (currently only 82576 NIC)
  2. Ensure the PF driver allocates a number of VFs (e.g. modprobe igb max_vfs=7)
  3. Assign the VF to a guest (see Features/KVM PCI Device Assignment)
  4. Load the VF driver in the guest and ensure the device works as expected (igbvg is the VF driver for 82576)

User Experience

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.



Contingency Plan

None required.


Release Notes

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.

Comments and Discussion