Thursday, January 14, 2010

AMD IOMMU is AMD Vi

This post isn't about the kernel boot error regarding 64MB of memory and IOMMU. This post is about IOMMU and virtualization

Much to my chagrin, I've discovered that the AMD IOMMU virtualization technology now called AMD Vi is not supported on any of its 7xx chipsets. I've recently upgraded from a 780G motherboard to a 790GX. From whatever reason, I was under the impression that AMD was supporting this IOMMU capability already. Intel has been supporting it forever. They call it VT-d. Since Intel has been supporting it for so, it's probably why I assumed that AMD was supporting it. Finally after digging around wikipedia and the AMD website this evening, I came to the conclusion that it wasn't supported. I should have dug around a bit more before I purchased the Intel Gigabit ET ethernet card that has SR-IOV support.

Now, I'm feeling pretty jaded about my decision to buy AMD products. I've been buying them because they have reasonable performance for a good price. All of the AMD processors have virtualization support, whereas not all Intel processors had it. Even some of the higher end Intel desktop processors didn't have it.

Even if I had chosen to go with Intel, I would have had to be careful. Not all of Intel's chipsets support VT-d. Just a quick search with google shows that there has been quite a bit of confusion. Some people were calling Intel support and couldn't get an answer.

The confusion associated with finding out what virtualization tech is supported by a particular processor and chipset should not exist. At the very least the there should be a table for processors and a table for chipsets that list capabilities. Instead there's lots of confusion.

Even PC/laptop manufacturers make it tough for consumers. HP and another big name vendor, either Sony or Lenovo, have been known not to support enabling of virtualization in the BIOS. (Yes you typically have to enable it in the BIOS. It's not on by default.) HP finally enabled it in one model after enough outcry, but the other vendor gave their customers the finger. (Not literally of course.)

Overall, I'm please with how well the virtualization stuff is working. I no longer have to use a proprietary Virtual Machine solution to run windows and other items. KVM+QEMU work well. Fedora 12's implementation is great. I'm just disgusted that determining capabilities about vendor solutions is so problematic.

Update:
If you want IOMMU (VT-d or AMD-Vi) on a desktop chipset, you'll have to stick with Intel for now. The wikipedia page for Intel chipsets seems to have the best information about VT-d support for chipsets in one place. If you can provide a better link to more information, please post.

X86 Virtualization
AMD Server Chipset
AMD-Vi

Update:
AMD's newest chipset for desktops, the 890FX, has support for IOMMU 1.2 according to Anandtech. From what I know, IOMMU 1.2 is AMD-Vi.