Understanding VT-d: Intel Virtualization Technology for Directed I/O

I've received a fair number of questions on the Intel Virtualization and Software Development Forum about VT-d -- enough to justify a few words on this note in the blogging sphere.

"VT-d" stands for "Intel Virtualization Technology for Directed I/O". The relationship between VT and VT-d is that the former is an "umbrella" term referring to all Intel virtualization technologies and the latter is a particular solution within a suite of solutions under this umbrella.

The overall concept behind VT-d is hardware support for isolating and restricting device accesses to the owner of the partition managing the device.

A VMM may support various models for I/O virtualization, including emulating the device API, assigning physical I/O devices to VMs, or permitting I/O device sharing in various manners. The key problem is how to isolate device access so that one resource cannot access a device being managed by another resource.

VT-d, at the time of this writing, includes four key capabilities

1. I/O device assignment. This feature allows an administrator to assign I/O devices to VMs in any desired configuration.

2. DMA remapping. Supports address translations for device DMA data transfers.

3. Interrupt remapping. Provides VM routing and isolation of device interrupts.

4. Reliability features. Reports and records system software DMA and interrupt erros that may otherwise corrupt memory of impact VM isolation.

Note that VT-d is not dependent on VT-x. That is, a VT-x enabled system can operate without VT-d, or without VT-d enabled or configured. You simply miss the benefits of the feature. Many people have asked about this point.

You can read about VT-d in detail at:

http://www.intel.com/technology/virtualization/technology.htm?iid=tech_vt+tech

Click on the link entitled "Intel Virtualization Technology (Intel VT) for Directed I/O (Intel VT-d) Architecture Specification". This brings up a detailed guide that should answer a broad range of technical questions.

David Ott

Tags:
For more complete information about compiler optimizations, see our Optimization Notice.

Comments

Here are step by step instructions on how to enable VT-d and perform direct device assignments:

http://software.intel.com/en-us/blogs/2009/02/24/step-by-step-guide-on-how-to-enable-vt-d-and-perform-direct-device-assignment/


Thanks for the post. I have been trying to access the link for the VT-d spec for two days, but it appears to be down. When i search for the link from an engine, I get the same link with the same result. Do you know if intel has taken the spec down?

Thanks!



We are using an IBM System X 3550 for our Hyper-v environment. We are using it for our cpoc environment. I need to extend the Video output of my VMs to seperate monitors, with out using thin clients or remote desktops. Do I have any options (software or hardware) to split the Video out put of
each Vms to different Monitors?


You say "Note that VT-d is

You say "Note that VT-d is not dependent on VT-x. That is, a VT-x enabled system can operate without VT-d, or without VT-d enabled or configured. You simply miss the benefits of the feature. Many people have asked about this point.". But I would think that VT-d being not dependent on VT-x would mean that a system WITHOUT VT-x could still have VT-d enabled, and would say NOTHING at all about whether VT-d is required to use VT-x (That would be whether VT-x is dependent on VT-d, not the other way around).
Am I missing something?