Understanding VT-d: Intel Virtualization Technology for Directed I/O
By David Ott (Intel), Updated
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
7 comments
TopHrach B. said on Aug 3,2016
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. said on May 18,2014
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 said on Nov 5,2012
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 said on Jul 23,2010
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 said on Aug 21,2009
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 said on Aug 21,2009
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) said on Jun 25,2009
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
Sign inHave a technical question? Visit our forums. Have site or software product issues? Contact support.