Implementing SR-IOV for Red Hat Enterprise Linux on HP ProLiant Servers

Technical white paper | Implementing SR-IOV for Red Hat Enterprise Linux on HP ProLiant Servers
2
Abstract
Single Root I/O Virtualization is defined by the PCI SIG to address the growing
need for I/O devices. In many instances, virtual machines share I/O devices.
However, the increasing number of virtual machines supported on platforms
demands new ways of improving performance and utilization of limited I/O
resources. This white paper describes the I/O virtualization technology
developed by HP to meet these needs and more.
SR-IOV overview
SR-IOV is an I/O virtualization technology that is defined in the PCI Sig SR-IOV Specification. On platforms that support SR-
IOV, each physical interface can be split into multiple virtual interfaces. Each of these virtual interfaces can then be assigned
to different virtual machines (guest OS instances). A guest OS can directly send and receive data (dma) to and from the
virtual function to which it is assigned. Once the virtual functions are configured on the Host OS, it can run without any
intervention from the Host OS and/or the virtualization layer. With these virtual functions, SR-IOV allows for better
utilization of limited I/O resources and their bandwidth on a platform. Additionally, when using this feature, I/O interfaces
can be isolated and assigned to individual guest OS instances. This allows exclusive and isolated access to the guest OS that
is not shared by other guest instances on the system.
To support SR-IOV, a platform requires several components working together to provide the full benefit of the technology.
These components are:
SR-IOV capable platform hardware
System BIOS
I/O (PCI) devices and I/O device firmware
Operating System
OS virtualization module
I/O device drivers for the Host OS and the Guest OS
The following figure shows an example of SR-IOV configuration with virtual function 1 (vf1) which is directly assigned to
Virtual machine 1, virtual function 2 (vf2) which is directly assigned to Virtual machine 2, and virtual function n (vfn) is
directly assigned to Virtual machine n.
Figure 1. SR-IOV configuration