Hey guys,
I’ve been trying to set up a windows VM for a solid 3 days now.
I’ve managed to set the actual VM up, but for some reason, my GPU isn’t being passed through to the VM.
Oddly enough, the audio device attached to the GPU works perfectly.
So here’s my full situation. Ubuntu 19.10, kernel version 5.3.0-23, 1080ti, AsRock x470 Taichi Ultimate (bios version 3.30), Ryzen 7 1700, RX550 (Host GPU), 1080Ti (GPU that I’m trying to pass through). I hope that’s all the relevant information.
I’ve tried a good number of things, but so far only the only thing I’ve managed to fix is the GPU audio.
The only clue I have for what might be causing my troubles is the dmesg output for vfio.
At boot I get expected stuff, namely
[ 4.349582] vfio-pci 0000:0e:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
[ 4.368092] vfio_pci: add [10de:1b06[ffffffff:ffffffff]] class 0x000000/00000000
[ 4.392444] vfio_pci: add [10de:10ef[ffffffff:ffffffff]] class 0x000000/00000000
But if I try to launch the VM, I get more lines. Most of them seem normal, but two lines confuse me…
[ 50.620484] vfio-pci 0000:0e:00.0: vfio_ecap_init: hiding ecap 0x19@0x900
[ 50.644065] vfio-pci 0000:0e:00.1: enabling device (0000 -> 0002)
[ 51.847825] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 51.848054] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.015179] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.015664] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 53.024259] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.024742] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 53.029768] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.030250] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 53.033151] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.037588] vfio-pci 0000:0e:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
[ 53.037737] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.044279] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.048365] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.048410] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.048466] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 53.048702] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 53.048746] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 53.048966] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.049011] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 53.051824] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.051872] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 53.057102] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.057147] vfio-pci 0000:0e:00.0: vfio_bar_restore: reset recovery - restoring BARs
[ 53.057192] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
[ 53.057237] vfio-pci 0000:0e:00.1: vfio_bar_restore: reset recovery - restoring BARs
The lines [ 50.620484] vfio-pci 0000:0e:00.0: vfio_ecap_init: hiding ecap 0x19@0x900
and [ 53.037588] vfio-pci 0000:0e:00.0: Invalid PCI ROM header signature: expecting 0xaa55, got 0xffff
confuse me, and I think they might be a clue as to what’s going on.
lspci -nnv
also gives a half-expected, half-odd result…
0e:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] [10de:1b06] (rev ff) (prog-if ff)
!!! Unknown header type 7f
Kernel driver in use: vfio-pci
Kernel modules: nvidiafb, nouveau
0e:00.1 Audio device [0403]: NVIDIA Corporation GP102 HDMI Audio Controller [10de:10ef] (rev ff) (prog-if ff)
!!! Unknown header type 7f
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel
Not sure what to make of the header type, but at least I know vfio has claimed the card.
Something that’s also been frustrating is the fact that I get the reset bug if I try to boot the VM while attempting to pass the GPU through, forcing me to reboot the host if I wanna try again.
If anyone has a clue as to what’s going on, I’d greatly appreciate your input