KVM Passthrough Question

Hey guys, I have a quick question about KVM passthrough. If I have 2 Vega 64s would I be able to use one to pass through to a VM when I want, but be able to use it in crossfire when the VM was offline? I’m not sure if I’d have to rebuild and reboot every time I want to swap back and forth.

Thanks for any help you can give!

EDIT: Tacking on my much better reddit post (wasn’t on mobile to post it)

Hey guys! Quick question about pass-through into a Windows 10 VM. I was originally planning my new build around dual Vega 64s and a 1080Ti all in the same box, with the 1080Ti being dedicated for pass-through.
Since then, I’ve had some concerns with keeping it all cool and I was wondering if it was possible to just get the Vegas and omit the 1080Ti. I would then use crossfire when the VM was down and pass one of the cards into the VM when it is alive. Ideally I’d like something “seamless” that just steals the second GPU dynamically on VM boot.
Is this a good idea/even possible?
Thank you for any help!
EDIT: I forgot to mention that I saw something like this here but wasn’t sure if it was an actual thing or not.

As far as I know, Vega 64 on linux does not support crossfire.

AMDGPU is the driver it uses on Linux, and as far as I know AMDGPU does not support crossfire. Older cards that used the fglrx driver which did have crossfire but AMDGPU is the only driver for GCN cards.

Multiple AMD cards on Linux would work for compute workloads, and possibly Vulkan multi-gpu, although I do not know on that front.


Also, it is posible but not recommend to use identical cards for passthrough. It adds another somewhat uncommon configuration hoop to jump through and it is another think to break. Identical in this case means having the same PCI IDs


It is posible to use both cards on the host, then pass one through. Unbind from host GPU driver, bind to VFIO, start VM, use VM, shutdown VM, unbind VFIO, rescan PCI bus, start using card on host. That can be scripted fairly easily, and you can find examples online.

1 Like

Thanks for the great info! I didn’t know that Vega 64 crossfire wasn’t supported in AMDGPU, that’s great to know before I dump $500 on another card lol. The fact that you can script it makes it relatively painless, but useless since I wouldn’t be able to crossfire inside of Linux anyway.

TL;DR I learned my lesson today and figured out that I should stick with 1 Vega 64 for Linux and 1 1080Ti for Windows.

1 Like

Also, hopefully, you are aware of Nvidia code 43 issues?

Yup, I’m aware that I’ll have to fight NVIDIA and M$ pretty much every step of the way, but it’s way better than relying on it to be stable for my work every day >_>

Microsoft has put a surprising amount of effort to make sure Windows works well in this kind of virtualized enviroment, so the only problem is code 43, which is also pretty easy to get around with a few lines in the QEMU xml file.

Microsoft isn’t the ultimate evil in this world, doesn’t mean I like windows in it’s current form very much.

Yeah I knew about the workaround, but I’m surprised Microsoft put any effort in. I deal with heavy virtualization at work and Windows always gives us the worst issues. Granted, it’s definitely gotten better recently, but they still add up to roughly 90% of the problems we have.

When setting up my own windows KVM, installing windows, and using windows in it has been as easy as if I were to install in on bare metal. The hardest part with setting it up is getting everything configured correctly on the host side.

After having done it a few times it only takes half an hour or so to edit the very few files and set up a KVM capable of installing and running windows 10.

Not saying this will be the case for everyone, but considering I am using the first gen intel i7 CPU with VT-D and VT-I support (i7-3770) I think most people will be pretty safe if they have the correct hardware and some slight linux know how these days.

Yeah, most of our problems are from inside of the guest and not the actual virtualization of said guest. We use KVM exclusively so I’m very familiar with both it and Linux. I’ll be getting a TR 2950x for this build :slight_smile:

That acutally reminds me, had some trouble with games that wouldn’t start in my windows kvm. Turned out to be problems with unsupported msrs messaging in KVM where the gpu or something was sending multiple thousand messages forcing windows to BSOD. Fixed it by setting KVM to ignore the messages. Yes, not always the best thing to ignore stuff like that, but for my purposes it works for the use I have of the VM, which is playing games.

Also, realy want a TR build myself, but that would require a significant hardware investement. xD

Probably gonna wait for Ryzen 3000 and Zen 2.

Oh, good info. Thanks! I’m sure I would have had the same issue. I was debating on waiting but I really want to power off some of my lab and having TR will allow me to do that, not planning on upgrading for a while afterwards :wink:

So, I’m looking at this with a 1060 and a 1070, and from what I can read from this is that it should be no problem with switching from host to vm on one of the cards?

I found a blog post that explained this, but was using amd cards. I imagine it’s the same process if it is supported…?

Some people have reported problems with rebinding to the Nouveau driver. But it should work with the Nvidia proprietary driver and with AMDGPU.

Nice, will test this when the card arrives.

I’ll be using the proprietary driver for the nvidia cards