[vfio-users] radeon vfio bus information issue?

Alex Williamson alex.williamson at redhat.com
Mon Oct 24 17:43:53 UTC 2016


On Mon, 24 Oct 2016 10:38:08 -0700
globalgorrilla at fastmail.fm wrote:

> On 24 Oct 2016, at 10:23, Alex Williamson wrote:
> 
> > On Mon, 24 Oct 2016 10:20:08 -0700
> > globalgorrilla at fastmail.fm wrote:
> >  
> >> Hi,
> >>
> >> Pass-through works fine with the the same linux 4.8 VM and nouveau 
> >> and a
> >> Quadro K2200.
> >>
> >> Passing-through both a R7 260X and and a R9 290 I get the same kernel
> >> oops:
> >>
> >> IP: [<ffffffffc029efd9>] drm_pcie_get_speed_cap_mask+0x39/0xf0 [drm]
> >>
> >> More here:
> >> http://pastebin.com/Waysyk2e
> >>
> >> Both the AMD cards work fine if I pass them through to a Windows VM.
> >>
> >> I'm supposing this might likely be then an issue with Radeon.
> >>
> >> However the oops makes me think perhaps it's breaking on unexpected 
> >> PCIE
> >> information?
> >>
> >> Is it possible there some missing information in that radeon is 
> >> looking
> >> for that's missing? What PCIE information is passed through by vfio
> >> (lspci from both host and vm also in the pastebin)?
> >>
> >> Anybody using radeon with passthrough AMD cards and seen this?  
> >
> > Radeon with a Linux guest is actually one of the few cases where you
> > need to be running a Q35 machine with the GPU placed behind a PCIe
> > downstream/root port.  The code blindly assumes that an upstream PCIe
> > bridge is present and tries to poke registers on it.  
> 
> Bingo.
> 
> I'll have to clone and try with that.
> 
> Alex, do you know if is enough to just simply passthrough the device but 
> with Q35? Or is a custom topology needed?

I would recommend a PCIe root port with the Radeon on the bus created
by that.  The Linux driver assumes this sort of topology.




More information about the vfio-users mailing list