[vfio-users] Ryzen Primary GPU passthrough success and woes

Paige Thompson erratic at yourstruly.sx
Tue Dec 25 12:01:45 UTC 2018


Hey guys, 

As you probably know there is a workaround to use i440fx instead of q35 to get the R9 390 working with VFIO. However, I have managed to get it working with Q35 by adding PCIe upstream and downstream ports to the configuration. You've probably noticed that the R9 390 card works fine with Q35 up until the point in which you install the AMD drivers and then it starts crashing. As near as I can tell the driver simply doesn't like it if you attach the video card directly to the root complex. 

Here is a link to the configuration that I am using: https://gitlab.com/snippets/1788426#note_127191397 
For the entire work log :  https://gitlab.com/snippets/1788426

I'd also like to point out that this also works with a Linux guest as I confirmed a moment ago. I never could get Linux to work with either i440fx or q35 before I tried using a pcie bridge in q35. My understanding of why Windows would work with i440fx is unclear but I know that pcie devices essentially speak the same as pci devices and there are no pcie devices on i440fx platforms; still whatever the amd drivers check for is somehow circumvented in that particular configuration. 

I'm surprised nobody knew to suggest this, I sort of figured this out based on something I read somewhere about how it's a bad idea to allow devices to talk directly as discrete devices to the root complex anyway. So, I gave this a try and low and behold it worked. It won't give you any performance improvements, but q35 is a more accurate emulation of a modern system and may help with other aspects of troubleshooting, it just requires more topology complexity to be configured correctly.

Hope that helps, 

Paige Thompson 
erratic at yourstruly.sx




More information about the vfio-users mailing list