Installation guide

Chapter 12. PCI device assignment
Red Hat Enterprise Linux 6 exposes three classes of device to its virtual machines:
Emulated devices are purely virtual devices that mimic real hardware, allowing unmodified guest
operating systems to work with them using their standard in-box drivers.
Virtio devices are purely virtual devices designed to work optimally in a virtual machine. Virtio
devices are similar to emulated devices, however, non-Linux virtual machines do not include the
drivers they require by default. Virtualization management software like the Virtual Machine
Manager (virt - man ag er) and the Red Hat Enterprise Virtualization Hypervisor install these
drivers automatically for supported non-Linux guest operating systems.
Assigned devices are physical devices that are exposed to the virtual machine. This method is also
known as 'passthrough'. Device assignment allows virtual machines exclusive access to PCI
devices for a range of tasks, and allows PCI devices to appear and behave as if they were
physically attached to the guest operating system.
Device assignment is supported on PCI Express devices, except graphics cards. Parallel PCI
devices may be supported as assigned devices, but they have severe limitations due to security
and system configuration conflicts.
Red Hat Enterprise Linux 6 supports 32 PCI device slots per virtual machine, and 8 PCI functions per
device slot. This gives a theoretical maximum of 256 configurable PCI functions per guest.
However, this theoretical maximum is subject to the following limitations:
Each virtual machine supports a maximum of 8 assigned device functions.
4 PCI device slots are configured with 5 emulated devices (two devices are in slot 1) by default.
However, users can explicitly remove 2 of the emulated devices that are configured by default if
the guest operating system does not require them for operation (the video adapter device in slot 2;
and the memory balloon driver device in the lowest available slot, usually slot 3). This gives users
a supported functional maximum of 30 PCI device slots per virtual machine.
Red Hat Enterprise Linux 6.0 and newer supports hot plugging assigned PCI devices into virtual
machines. However, PCI device hot plugging operates at the slot level and therefore does not support
multi-function PCI devices. Multi-function PCI devices are recommended for static device
configuration only.
Note
Red Hat Enterprise Linux 6.0 limited guest operating system driver access to a device's
standard and extended configuration space. Limitations that were present in Red Hat
Enterprise Linux 6.0 were significantly reduced in Red Hat Enterprise Linux 6.1, and enable a
much larger set of PCI Express devices to be successfully assigned to KVM guests.
Secure device assignment also requires interrupt remapping support. If a platform does not support
interrupt remapping, device assignment will fail. To use device assignment without interrupt
remapping support in a development environment, set the allow_unsafe_assigned_interrupts
KVM module parameter to 1.
PCI device assignment is only available on hardware platforms supporting either Intel VT-d or AMD
IOMMU. These Intel VT-d or AMD IOMMU specifications must be enabled in BIOS for PCI device
assignment to function.
Red Hat Ent erp rise Linux 6 Virt ualiz at ion Host Configurat ion and G uest Inst allat ion G uide
94