Intel
®
Virtualization Technology for Directed I/O
October 2014 Architecture Specification, Rev. 2.3
Order Number: D51397-007 2-2
Overview—Intel
®
Virtualization Technology for Directed I/O
2.4 I/O Virtualization
A VMM must support virtualization of I/O requests from guest software. I/O virtualization may be
supported by a VMM through any of the following models:
• Emulation: A VMM may expose a virtual device to guest software by emulating an existing
(legacy) I/O device. VMM emulates the functionality of the I/O device in software over whatever
physical devices are available on the physical platform. I/O virtualization through emulation
provides good compatibility (by allowing existing device drivers to run within a guest), but pose
limitations with performance and functionality.
• New Software Interfaces: This model is similar to I/O emulation, but instead of emulating legacy
devices, VMM software exposes a synthetic device interface to guest software. The synthetic
device interface is defined to be virtualization-friendly to enable efficient virtualization compared
to the overhead associated with I/O emulation. This model provides improved performance over
emulation, but has reduced compatibility (due to the need for specialized guest software or
drivers utilizing the new software interfaces).
• Assignment: A VMM may directly assign the physical I/O devices to VMs. In this model, the driver
for an assigned I/O device runs in the VM to which it is assigned and is allowed to interact directly
with the device hardware with minimal or no VMM involvement. Robust I/O assignment requires
additional hardware support to ensure the assigned device accesses are isolated and restricted to
resources owned by the assigned partition. The I/O assignment model may also be used to create
one or more I/O container partitions that support emulation or software interfaces for virtualizing
I/O requests from other guests. The I/O-container-based approach removes the need for running
the physical device drivers as part of VMM privileged software.
• I/O Device Sharing: In this model, which is an extension to the I/O assignment model, an I/O
device supports multiple functional interfaces, each of which may be independently assigned to a
VM. The device hardware itself is capable of accepting multiple I/O requests through any of these
functional interfaces and processing them utilizing the device's hardware resources.
Depending on the usage requirements, a VMM may support any of the above models for I/O
virtualization. For example, I/O emulation may be best suited for virtualizing legacy devices. I/O
assignment may provide the best performance when hosting I/O-intensive workloads in a guest.
Using new software interfaces makes a trade-off between compatibility and performance, and device
I/O sharing provides more virtual devices than the number of physical devices in the platform.
2.5 Intel
®
Virtualization Technology For Directed I/O
Overview
A general requirement for all of above I/O virtualization models is the ability to isolate and restrict
device accesses to the resources owned by the partition managing the device. Intel
®
VT for Directed
I/O provides VMM software with the following capabilities:
• I/O device assignment: for flexibly assigning I/O devices to VMs and extending the protection and
isolation properties of VMs for I/O operations.
• DMA remapping: for supporting address translations for Direct Memory Accesses (DMA) from
devices.
• Interrupt remapping: for supporting isolation and routing of interrupts from devices and external
interrupt controllers to appropriate VMs.
• Interrupt posting: for supporting direct delivery of virtual interrupts from devices and external
interrupt controllers to virtual processors.
• Reliability: for recording and reporting of DMA and interrupt errors to system software that may
otherwise corrupt memory or impact VM isolation.