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 in this article: Intel® Virtualization Technology (Intel® VT)

Click to view the Intel® Virtualization Technology for Directed I/O Architecture Specification. This brings up a detailed guide that should answer a broad range of technical questions.

David Ott

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

7 comments

Top
Depasquale, Etienne-Victor's picture

I think that the order of VT-d and VT-x should be reversed. That is: writing "Note that VT-x is not dependent on VT-d. That is, a VT-x enabled system can operate without VT-d, or without VT-d enabled or configured." makes sense; the obverse does not.

Hrach B.'s picture

Does VT-d DMA remapping protect against DMAs to another peripheral's MMIO region, given that the peripherals in question are not assigned to the same domain? I am asking because I am unsure if DMA remapping can be used besides the case of a device trying to DMA into system memory (RAM).   

Daniel A.'s picture

I also noticed the above contradiction and am surprised that after two years no clarification has been offered. My understanding is that VT-x does not require VT-d. But can the same be said for vice versa?

anonymous's picture

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?

anonymous's picture

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?

Intel Software Network Support's picture

Hi, Tom -- we tested the link and it seems to work today: http://download.intel.com/technology/computing/vptech/Intel%28r%29_VT_for_Direct_IO.pdf

anonymous's picture

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!

Aamir Yunus (Intel)'s picture

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/

Add a Comment

Have a technical question? Visit our forums. Have site or software product issues? Contact support.