I recently upgraded my home server from an old Athlon X2 to the latest and finest from intel, namely the new Sandy bridge processors. These new processors come with a relatively new technology called VT-d or (Intel Virtualisation Technology with Directed I/O). It’s also called an IOMMU. This feature like the more common VT-x provides hardware support to improve virtualisation. VT-d does to PCI devices what VT-x does for the CPU, by virtualising and allowing remapping of the DMA. Basically, what it means is that you can now freely assign different PCI connected devices (like graphics card, USB host controllers) to your Virtual Machines. A use case would be to give a VM a real graphics card so it doesn’t have to rely on the slow virtualised graphics adapter.
It’s been a bit of a mystery whether VT-d is a CPU technology or a chipset/motherboard technology, but it’s clear that, like VT-x, you need both to know about this technology to work. Since the advent of i7s, various people have asking the support for this technology only to find that the main blocker is getting the right motherboard. Some lucky folks have gotten it as far back as dying days of the Core 2 era. Most i5s and i7s CPUs claim support for VT-d, however motherboards of P55 and H55 that support this was few and far between. The only sure way to find out if your motherboard supports it is if you find the option “Enable I/O Virtualisation” in the Advanced Features section of your BIOS. The situation markedly improved when P57 and H57 came about with MSI and Asus boards displaying the option. MSI’s H57M-ED65 is one such board. If you look at the downloadable manual, you’ll find the reference. Gigabyte is noticeably quiet on the matter. Armed with this knowledge I went out assuming that newer boards will follow the trend. How wrong was I.
There are special Sandy Bridge CPUs in the form of 250K and 260K. The K CPUs have a higher clock for the graphics, but sacrifices VT-d technology. Fortunately this is widely understood and reported, unlike last generation when confusion between VT, VT-x and VT-d reigned. What they failed to clarify was that, VT-d is unavailable in pretty much all P67/H67 chipsets. This means nobody can actually use VT-d anyway regardless of whether the CPU supports it or not. In fact, I don’t even know why Intel bother listing VT-d as a feature when support is so poor. Currently, the only sandy bridge (LGA1155) motherboard in existence, that supports VT-d is Intel’s DP67BG. I of course didn’t buy that board and as I’m building a server, I required integrated graphics and P67 doesn’t offer that. Only H67 does. As far as I can tell no H67 motherboard currently in existence has VT-d.
Anyway, this is my rant of the night.
Yesterday I bought a Asus P8H67-V (I think the same with P8P67-EVO) , and there is nowhere words about VT-d – Asus boards do not support VT-d. Too bad, I always thought that the company offers in the price a good quality for power users – but not this time.
So, finally i’m wating for intel’s DP67BG(box). I’m disappointed and disgusted :(
I just ran into the same wall, coming from the same idea – I wanted to run a HTPC system inside a VM on my Sandy Bridge based home server.
After reading your post, I looked at the H67 chipset datasheet on the Intel web site. On page 264 it seems to suggest that using VT-d to pass the internal HD graphics to a VM would not work anyway – at least it’s not listed there.
Anyway, since the H67 chipset appears to support VT-d, it seems to be a BIOS issue only. Given that my DH67CF board is UEFI… I wonder if it would be possible to write an UEFI extension that sets up VT-d. Very far fetched, I guess… ;-)
@Mark I read somewhere the other that graphics is not as straight forward to implement as other PCI devices due to legacy technicalities relating to the BIOS. Just had a quick google and it seems that it might now be possible through Xen.
I currently have a similar setup where I have a VM that’s running MythTV, but that’s using LXC and /dev/dvb mount hack to pass the adapter to the VM.
The UEFI extension idea is interesting but I don’t know too much about UEFI to comment.
Actually, VT-d is supposed to be supported by the CPU and North Bridge– but Sandy Bridge integrated the NB into the CPU, so it should all be CPU now. Apparently most motherboards simply disable/block the feature. :(
Don’t know if this helps
see page 40
@DaveR that’s VT-x not VT-d.
Thanks, that helps to clear things up a bit. I’ve been looking at the Intel DP67BG board too, but the Intel page you link to specifically says it only supports VT-x. The only boards supporting VT-d seem to be the DQ range. Am I missing something?
I came across this page which listing “Desktop board compatibility with Intel® Virtualization Technology (Intel® VT)”. The list of boards supporting VT-D is at the bottom. I am contemplating buying the DQ67EP from Amazon.
Hello all !
The author posting at the following link :
tells us that Asrock does the job, i.e. enables VT-x and VT-d on its Z68 extreme 3 gen 3 motherboard.
Let’s keep on searching and posting (un)lucky results !
bit of a late replay on this topic, one year ago I bought the intel dp67bg thanks to this blog…., I was able to passthrough devices but the GPU didn’t work under ESXI4 nor 5.
Today, a year later, I managed to do it with this formula:
ATI drives 12.4, bios 2185, and disabling the onboard audio (might need to disable the external SATA controller as well) this works pretty well on win7 64bin, I do have a SAS controller on the second x16 pcie slot, so it also might be part of the formula to get it working on this card.
Motherboard that claims to support Intel vPro,, Will support VT-d …
Hope this will help…
vPro right now is being pushed more as a "security" feature.VT-d is a chipset technology that gives you the ability to map specific components of your motherboard directly to your virtual machines.There’s a list here but I’d keep researching. It’s BIOS enabled and some mb manufactures, even though the chipset supports it, don’t have it available *cough*Asus.Last note: only certain CPU’s support VT-d. Non-K, e.g., i5 2500 i7 2600.