KVM and PCI (VGA) passthrough · uwot.eu
another meaningless subtitle

KVM and PCI (VGA) passthrough

· by fabio · Read in about 2 min · (401 Words)

First off, I failed so there will not be any kind of walk-through or guide.
Hardware/software setup is sub-optimal and is for sure part of the problem for at least three reasons:
1. as primary display adapter I use an Nvidia GTX 750ti;
2. I use Nvidia proprietary driver because nouveau support for newest graphic cards isn’t good (this is an understatement to say the least);
3. it isn’t completely clear if Intel Z97 chipset supports VT-D or not and if it does on what level it does.

The whole configuration is:
– Xeon E3-1241v3
– Gigabyte Z97X-UD5H (BIOS F8)
– Crucial DDR3 2×8 GB PC3-12800
– Nvidia GTX 750ti :: host graphic card
– ATI HD7950 :: VM graphic card

Another issue is the complete lack of documentation on vfio_pci and VGA passthrough in general, even Fedora KVM related documentation is not up to date and make no mention of vfio kernel module; the best place to get information on the subject is a thread on the Arch Linux forum but even this time the whole process is not documented in a decent way.
Anyway, I had this beefy HD7950 lying around and I thought: why not give VGA passthrough a try? After configuring the thing with information I found around the net I got prompted with the following error:

vfio: error, group 1 is not viable, please ensure all devices within the iommu_group are bound to their vfio bus driver

PCI slot isolation on this Gigabyte sucks, both the ATI (first slot) and Nvidia (second slot) – I tried every slot combination – are bound to the same IOMMU group and even patching and recompiling a custom kernel with ACS overrider and VGA arbiter lock patches didn’t really solve the issue.
Just before giving up I took out the Nvidia and plugged in an old Matrox PCI graphic card, this way with the IOMMU group #1 used only for the ATI HD7950 I was able to start the VM so VGA passthrough works at least to some extent on this Gigabyte motherboard.
Some questions like “an integrated graphic card will be bound to the same IOMMU group as PCI-E graphic cards?” or “using two ATI would make any difference?” remain unanswered.

For reference I also gave Virtualbox a try since they advertise PCI passthrough too, when starting the VM the whole host system freeze…so no luck with it either.