Hi,

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 a PCIe bridge as well as 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
qemu command-line rough translation: 
https://gitlab.com/snippets/1788426#note_127194064
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
erra...@yourstruly.sx


_______________________________________________
vfio-users mailing list
vfio-users@redhat.com
https://www.redhat.com/mailman/listinfo/vfio-users

Reply via email to