I'm trying to setup a windows 10 guest on an LMDE host with VPU passthrough using qemu.
The machine is a threadripper 2950x, host running on an RTX2080 and guest passthrough is a quadro RTX5000.
What have I done wrong?
virtualization enabled in the bios...
I've got a monitor connected to the guest GPU
boot parameters... check
iommu groups... check
guest GPU is bound to the vfio driver
installed the vfio and qemu drivers in the guest...
When I boot the guest machine, I get the windows desktop on the monitor connected to the pass-through GPU
Windows device manager detects the nvidia card, and windows update automatically downloads Nvidia drivers.
But its SOOOO slow... sometimes the cursor lags so far behind the mouse it's unusable.
That's without including -vga none, so I still also have the virtual graphics adapter in device manager.
But if I add -vga none to my qemu options, I never get any video output from the guest GPU.
lspci -k for the guest GPU:
Code: Select all
12:00.0 VGA compatible controller: NVIDIA Corporation TU104GL [Quadro RTX 5000] (rev a1)
Subsystem: NVIDIA Corporation TU104GL [Quadro RTX 5000]
Kernel driver in use: vfio-pci
Kernel modules: nvidia
12:00.1 Audio device: NVIDIA Corporation Device 10f8 (rev a1)
Subsystem: NVIDIA Corporation Device 129f
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel
12:00.2 USB controller: NVIDIA Corporation Device 1ad8 (rev a1)
Subsystem: NVIDIA Corporation Device 129f
Kernel driver in use: vfio-pci
Kernel modules: xhci_pci
12:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device 1ad9 (rev a1)
Subsystem: NVIDIA Corporation Device 129f
Kernel driver in use: vfio-pci
Code: Select all
BOOT_IMAGE=/vmlinuz-4.19.0-14-amd64 root=UUID=8e7c3f4b-bfc3-4eca-9dbe-258f6e33e719 ro amd_iommu=on acpi=force quiet splash
Code: Select all
[ 0.893817] AMD-Vi: IOMMU performance counters supported
[ 0.893876] AMD-Vi: IOMMU performance counters supported
[ 0.929109] AMD-Vi: Found IOMMU at 0000:00:00.2 cap 0x40
[ 0.929110] AMD-Vi: Extended features (0xf77ef22294ada):
[ 0.929112] AMD-Vi: Found IOMMU at 0000:40:00.2 cap 0x40
[ 0.929113] AMD-Vi: Extended features (0xf77ef22294ada):
[ 0.929114] AMD-Vi: Interrupt remapping enabled
[ 0.929114] AMD-Vi: virtual APIC enabled
[ 0.929275] AMD-Vi: Lazy IO/TLB flushing enabled
qemu command line:
Code: Select all
qemu-system-x86_64 \
-cpu host,kvm=off \
-enable-kvm \
-smp 8,sockets=8,cores=1,threads=1 \
-m 32G \
-mem-prealloc \
-rtc base=localtime,clock=host \
-display none \
-usb \
-device qemu-xhci \
-device vfio-pci,host=12:00.0 \
-device vfio-pci,host=12:00.1 \
-device vfio-pci,host=12:00.2 \
-device vfio-pci,host=12:00.3 \
-device usb-host,vendorid=0x03f0,productid=0x134a \
-device usb-host,vendorid=0x04f3,productid=0x0103 \
-device usb-host,vendorid=0x0e6f,productid=0x02a4 \
-device usb-host,vendorid=0x0bb4,productid=0x0306 \
-device usb-host,vendorid=0x0424,productid=0x274d \
-device usb-host,vendorid=0x28de,productid=0x2101 \
-device usb-host,vendorid=0x28de,productid=0x2101 \
-device usb-host,vendorid=0x0bb4,productid=0x2c87 \
-device usb-host,vendorid=0x28de,productid=0x2000 \
-device usb-host,vendorid=0x0bb4,productid=0x2134 \
-device usb-host,vendorid=0x0bb4,productid=0x2744 \
-device usb-host,vendorid=0x0d8c,productid=0x0012 \
-device usb-host,vendorid=0x045e,productid=0x02b0 \
-device usb-host,vendorid=0x0409,productid=0x005a \
-cdrom ./virtio-win-0.1.208.iso \
-drive file=/dev/md127,format=raw