Wow.... these are such exotic argurments!! I love such things. Pass GPU directly to the VM is surely the final move to use Linux and run a windows vm for gaming!!
I'm just dreaming, but it really seems someone is actually "working" on it! Thanks
I'm using Xen for some time now with VGA passthrough to a Windows 7 VM. It works incredibly well!
Yes, it has been a pain to set up, mainly because of my stubborness to use unconfirmed hardware (a Nvidia Quadro 600 for the Windows guest system didn't work, my Quadro 2000 now works perfect) and because of making it work on a distro that hasn't yet seen a how-to on that.
The most important step before embarking on it is to check that the hardware meets the requirements. If it does, it's quite simple.
To be honest, since Xen is able to do it for some time now and I have heard of nobody really using it, I have little hope this getting usable soon. Or is Xen that much more difficult to use then kvm?
I totally disagree with Xen being more difficult than kvm. It's perhaps not the easiest of hypervisors, but at least it offers a wealth of documentation. KVM on the other hand is a disaster! Perhaps the hype about KVM is because it's the new kid on the block?
When I started out on my quest for VGA passthrough I was set on KVM and almost dismissed Xen. One reason for dismissing Xen was the wealth of documentation which at that time I misinterpreted for Xen being complex. Yes, Xen offers multiple options and tools to reach the same goal (see below), but the fact that there is a lot of documentation is a real asset. The other reason for almost dismissing it was some reports here on Phoronix about poor performance. Boy, am I glad I dug a little deeper into that. It turned out there was some bug (which is long fixed now), but for most of these tests here I don't really see a point other than proofing that KVM is getting closer to Xen in some areas. As to real-life performance: you need to see it to believe it.
Some of the tests here are a bit questionable, for example comparing KVM and Xen with Linux HVM guests. The only reason I use Linux HVM guests from time to time is to check out a distro, but I don't expect performance miracles. Most times a Linux PV guest will perform better since it has access to the hardware drivers of the hypervisor and doesn't need an emulation layer. Linux HVM guest performance can be improved by using PVHVM drivers and I believe (or hope) they have been used by Phoronix. With Xen offering several options, it's really necessary to be precise about a test setup. Newcomers would certainly be helped with an explanation of why one option was chosen over another.
Recently Xen developers have rolled out a lot of improvements with kernel 3.x and Xen 4.x. Now that Xen 4.2 stable is out (but not yet included in the major distros) things should become even easier, with better support for more hardware. Xen 4.2 also does away with a lot of accumulated code and layers that are not really helping it. The new xl toolstack replaces xm and xend (among others), and is more efficient.
It is true there are probably not many KVM users who have accomplished VGA passthrough, though it's been done. But there are quite many people already doing Xen VGA passthrough.
From a practical perspective, I am using Xen and Windows with VGA/PCI passthrough for semi-professional photography work. When I compare my Xen system with native Windows 7 installs on similar hardware owned by friends, I find even less reasons to look back. If you have the right hardware, I would go for it any second.
So would this mean that I can then install an nVidia driver in my Windows guest in order to use my nVidia GPU as if it was running natively? If so it would be great to do that especially for games and for any Windows based graphics programs that make extensive use of GPU's
nVidia can be tricky or outright impossible to pass through. I am using a nVidia Quadro 2000 for pass through and it works perfect, BUT this card along with some more expensive ones are the only nVidia cards that officially support what they call "multi-OS" which is exactly what's needed for it to work.