NVidia GTX 1660 Super GPU passthrough to Win10 VM

AxAn

Member
Jan 15, 2020
25
5
8
45
tl;dr:
If you can't pass-through a NVidia Super GPU to a VM and you have a long Proxmox boot time then try this:
Code:
echo "blacklist i2c-nvidia-gpu" >> /etc/modprobe.d/blacklist.conf
update-initramfs -u -k all
reboot

Full info:
I've spent a lot of time to try and get a GeForce GTX 1660 SUPER AERO ITX OC GPU passed through to a Windows 10 VM.
I changed my AMD RX 570 for a Nvidia 1660 Super and immediately got 2 problems:

1. The boot time for Proxmox got 1 min and 33 seconds longer.
2. I could not GPU passthrough my NVidia 1660 Super

I found a post where it was said that all kernels after 5.0.21-5 has this problem.
You can fix the problem by downgrading to this kernel version:
(spoiler: DON'T DO THIS)
Bash:
apt install pve-kernel-5.0.21-5-pve
reboot
(select 5.0.21-5 on boot)
grub-editenv - set saved_entry="Proxmox Virtual Environment GNU/Linux, with Linux 5.0.21-5-pve"

//delete newer kernels (5.3-*)
touch '/please-remove-proxmox-ve'
apt remove "pve-kernel-5.3-*"
reboot

On the most recent kernel (5.3.13-3-pve) I get this output after doing the common GPU passthrough stuff:
Code:
lspci -nnk
09:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:21c4] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: nvidiafb, nouveau
09:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:1aeb] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel
09:00.2 USB controller [0c03]: NVIDIA Corporation Device [10de:1aec] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: xhci_hcd
09:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device [10de:1aed] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: nvidia-gpu
        Kernel modules: i2c_nvidia_gpu

As you can see there is a "USB controller" connected to the GPU and also a "Serial bus controller".
Both of then are not using the vfio-pci kernel driver, which is needed for a passthrough to work.

When checking why the system is booting so slow I get this:
Code:
systemd-analyze blame
    1min 33.115s ifupdown-pre.service
    1min 33.101s systemd-udev-settle.service
          5.800s smartmontools.service
          5.506s zfs-import-cache.service
          2.127s systemd-modules-load.service
...

If I try and start a Win10 VM with 09:00 passthrough I get the following:
Code:
Feb  9 12:52:04 prox pvedaemon[13664]: start VM 100: UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam:
Feb  9 12:52:04 prox pvedaemon[13173]: <root@pam> starting task UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam:
Feb  9 12:55:31 prox kernel: [  449.004296] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 12:55:31 prox kernel: [  449.004300] usb usb6: USB disconnect, device number 1
Feb  9 12:55:31 prox kernel: [  449.004422] xhci_hcd 0000:09:00.2: USB bus 6 deregistered
Feb  9 12:55:31 prox kernel: [  449.004428] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 12:55:31 prox kernel: [  449.004428] usb usb5: USB disconnect, device number 1
Feb  9 12:55:31 prox kernel: [  449.005083] xhci_hcd 0000:09:00.2: USB bus 5 deregistered
Feb  9 12:55:31 prox systemd[1]: Created slice qemu.slice.
Feb  9 12:55:31 prox systemd[1]: Started 100.scope.
Feb  9 12:55:31 prox kernel: [  449.226960] BUG: unable to handle page fault for address: ffff9f9380121000
Feb  9 12:55:31 prox kernel: [  449.226964] #PF: supervisor read access in kernel mode
...
Notice that nothing happens for around 3:30 minutes.
After I tried starting the VM and the error messages shows up the system gets unstable and I need to power down Proxmox by a hard reset.

How to fix this problem:
This problem can be fixed by blacklisting the "i2c nvidia gpu" kernel module:
Code:
echo "blacklist i2c-nvidia-gpu" >> /etc/modprobe.d/blacklist.conf
update-initramfs -u -k all
reboot

Now it looks like this:
Code:
lspci -nnk
09:00.0 VGA compatible controller [0300]: NVIDIA Corporation Device [10de:21c4] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: nvidiafb, nouveau
09:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:1aeb] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel
09:00.2 USB controller [0c03]: NVIDIA Corporation Device [10de:1aec] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: xhci_hcd
09:00.3 Serial bus controller [0c80]: NVIDIA Corporation Device [10de:1aed] (rev a1)
        Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:8d94]
        Kernel driver in use: vfio-pci
        Kernel modules: i2c_nvidia_gpu
(09:00.3 is using vfio-pci)

Now there is no delay at boot and I can start my VM with the GPU passthrough but /var/log/syslog still says it has problems with xhci_hcd on the first boot of the VM:
Code:
Feb  9 13:08:34 prox pvedaemon[1999]: <root@pam> starting task UPID:prox:0000093D:00002B69:5E3FF642:qmstart:100:root@pam:
Feb  9 13:08:35 prox kernel: [  110.935303] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 13:08:35 prox kernel: [  110.935306] usb usb6: USB disconnect, device number 1
Feb  9 13:08:35 prox kernel: [  110.935426] xhci_hcd 0000:09:00.2: USB bus 6 deregistered
Feb  9 13:08:35 prox kernel: [  110.935431] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 13:08:35 prox kernel: [  110.935432] usb usb5: USB disconnect, device number 1
Feb  9 13:08:35 prox kernel: [  110.936068] xhci_hcd 0000:09:00.2: USB bus 5 deregistered
This only happens on the first boot of the VM. After that 09:00.2 is using the vfio-pci kernel driver.

While I was trying to fix the main problem did I find a way to set so "09:00.2 USB controller" is using vfio-pci from the start but it includes making a script:
Code:
nano unbind-gtx-usb.sh
Bash:
#!/bin/sh
DEVICE1="09:00.2"
modprobe vfio-pci
for dev in "0000:$DEVICE1"; do
        vendor=$(cat /sys/bus/pci/devices/$dev/vendor)
        device=$(cat /sys/bus/pci/devices/$dev/device)
        if [ -e /sys/bus/pci/devices/$dev/driver ]; then
                echo $dev > /sys/bus/pci/devices/$dev/driver/unbind
        fi
        echo $vendor $device > /sys/bus/pci/drivers/vfio-pci/new_id
done
Code:
chmod u+x unbind-gtx-usb.sh
./unbind-gtx-usb.sh

If you run that before you start the VM there is no error, but this seems like overkill now since it doesn't seem to be needed.
 
Full log from /var/log/syslog when the VM was failing before doing the above fix:

Code:
Feb  9 12:52:04 prox pvedaemon[13664]: start VM 100: UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam:
Feb  9 12:52:04 prox pvedaemon[13173]: <root@pam> starting task UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam:
Feb  9 12:53:38 prox kernel: [  336.053891] ucsi_ccg 0-0008: PPM NOT RESPONDING
Feb  9 12:55:31 prox kernel: [  449.004296] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 12:55:31 prox kernel: [  449.004300] usb usb6: USB disconnect, device number 1
Feb  9 12:55:31 prox kernel: [  449.004422] xhci_hcd 0000:09:00.2: USB bus 6 deregistered
Feb  9 12:55:31 prox kernel: [  449.004428] xhci_hcd 0000:09:00.2: remove, state 4
Feb  9 12:55:31 prox kernel: [  449.004428] usb usb5: USB disconnect, device number 1
Feb  9 12:55:31 prox kernel: [  449.005083] xhci_hcd 0000:09:00.2: USB bus 5 deregistered
Feb  9 12:55:31 prox systemd[1]: Created slice qemu.slice.
Feb  9 12:55:31 prox systemd[1]: Started 100.scope.
Feb  9 12:55:31 prox kernel: [  449.226960] BUG: unable to handle page fault for address: ffff9f9380121000
Feb  9 12:55:31 prox kernel: [  449.226964] #PF: supervisor read access in kernel mode
Feb  9 12:55:31 prox kernel: [  449.226966] #PF: error_code(0x0000) - not-present page
Feb  9 12:55:31 prox kernel: [  449.226967] PGD 42cd54067 P4D 42cd54067 PUD 42cd55067 PMD 42cd56067 PTE 0
Feb  9 12:55:31 prox kernel: [  449.226971] Oops: 0000 [#1] SMP NOPTI
Feb  9 12:55:31 prox kernel: [  449.226973] CPU: 10 PID: 212 Comm: kworker/10:1 Tainted: P           O      5.3.13-3-pve #1
Feb  9 12:55:31 prox kernel: [  449.226975] Hardware name: Gigabyte Technology Co., Ltd. X570 AORUS ULTRA/X570 AORUS ULTRA, BIOS F11 12/06/2019
Feb  9 12:55:31 prox kernel: [  449.226980] Workqueue: events ccg_pm_workaround_work [ucsi_ccg]
Feb  9 12:55:31 prox kernel: [  449.226983] RIP: 0010:gpu_i2c_check_status.isra.5+0x52/0xa0 [i2c_nvidia_gpu]
Feb  9 12:55:31 prox kernel: [  449.226986] Code: 25 00 00 00 60 3d 00 00 00 60 75 24 be 58 02 00 00 bf f4 01 00 00 e8 ed 0b 1d cd 48 8b 05 c6 0c d1 cd 4c 39 e0 79 09 49 8b 06 <8b> 18 85 db 78 ce 48 8b 05 b1 0c d1 cd 49 39 c4 0f 88 b6 02 00 00
Feb  9 12:55:31 prox kernel: [  449.226989] RSP: 0018:ffff9f938059fcc0 EFLAGS: 00010283
Feb  9 12:55:31 prox kernel: [  449.226991] RAX: ffff9f9380121000 RBX: 00000000ffffffff RCX: 0000000000000000
Feb  9 12:55:31 prox kernel: [  449.226993] RDX: ffff8c3daea9db40 RSI: 0000000000000000 RDI: ffff9f938059fbf8
Feb  9 12:55:31 prox kernel: [  449.226995] RBP: ffff9f938059fce0 R08: 0000000000000000 R09: 0000000000000003
Feb  9 12:55:31 prox kernel: [  449.226996] R10: 000000000000000e R11: ffff8c3daeaa94c4 R12: 00000001000091a3
Feb  9 12:55:31 prox kernel: [  449.226998] R13: ffff8c3dac740818 R14: ffff8c3dac740820 R15: 00000001000090a9
Feb  9 12:55:31 prox kernel: [  449.227000] FS:  0000000000000000(0000) GS:ffff8c3daea80000(0000) knlGS:0000000000000000
Feb  9 12:55:31 prox kernel: [  449.227002] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Feb  9 12:55:31 prox kernel: [  449.227004] CR2: ffff9f9380121000 CR3: 00000003d97f8000 CR4: 0000000000340ee0
Feb  9 12:55:31 prox kernel: [  449.227005] Call Trace:
Feb  9 12:55:31 prox kernel: [  449.227009]  gpu_i2c_master_xfer+0xe8/0x22d [i2c_nvidia_gpu]
Feb  9 12:55:31 prox kernel: [  449.227013]  __i2c_transfer+0x180/0x4d0
Feb  9 12:55:31 prox kernel: [  449.227015]  i2c_transfer+0x88/0x100
Feb  9 12:55:31 prox kernel: [  449.227018]  ccg_read+0x11e/0x170 [ucsi_ccg]
Feb  9 12:55:31 prox kernel: [  449.227021]  ? __switch_to_asm+0x40/0x70
Feb  9 12:55:31 prox kernel: [  449.227023]  ? __switch_to_asm+0x40/0x70
Feb  9 12:55:31 prox kernel: [  449.227025]  ucsi_ccg_sync+0x56/0xb0 [ucsi_ccg]
Feb  9 12:55:31 prox kernel: [  449.227028]  ucsi_notify+0x26/0x120 [typec_ucsi]
Feb  9 12:55:31 prox kernel: [  449.227030]  ccg_pm_workaround_work+0x15/0x20 [ucsi_ccg]
Feb  9 12:55:31 prox kernel: [  449.227034]  process_one_work+0x20f/0x3d0
Feb  9 12:55:31 prox kernel: [  449.227036]  worker_thread+0x34/0x400
Feb  9 12:55:31 prox kernel: [  449.227038]  kthread+0x120/0x140
Feb  9 12:55:31 prox kernel: [  449.227040]  ? process_one_work+0x3d0/0x3d0
Feb  9 12:55:31 prox kernel: [  449.227042]  ? __kthread_parkme+0x70/0x70
Feb  9 12:55:31 prox kernel: [  449.227044]  ret_from_fork+0x22/0x40
Feb  9 12:55:31 prox kernel: [  449.227046] Modules linked in: ebtable_filter ebtables ip_set ip6table_raw iptable_raw ip6table_filter ip6_tables iptable_filter bpfilter softdog nfnetlink_log nfnetlink edac_mce_amd kvm_amd kvm zfs(PO) zunicode(PO) zlua(PO) zavl(PO) icp(PO) amdgpu crct10dif_pclmul crc32_pclmul ghash_clmulni_intel iwlmvm amd_iommu_v2 gpu_sched snd_hda_codec_hdmi mac80211 ttm btusb libarc4 btrtl aesni_intel snd_hda_intel ucsi_ccg btbcm drm_kms_helper btintel snd_hda_codec aes_x86_64 crypto_simd drm cryptd glue_helper snd_hda_core bluetooth typec_ucsi mxm_wmi fb_sys_fops wmi_bmof zcommon(PO) pcspkr snd_hwdep iwlwifi syscopyarea k10temp typec sysfillrect snd_pcm sysimgblt ccp ecdh_generic input_leds znvpair(PO) ecc snd_timer snd cfg80211 soundcore spl(O) vhost_net vhost tap ib_iser mac_hid rdma_cm iw_cm ib_cm ib_core iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi vfio_pci vfio_virqfd irqbypass sunrpc vfio_iommu_type1 vfio ip_tables x_tables autofs4 btrfs xor zstd_compress raid6_pq dm_thin_pool
Feb  9 12:55:31 prox kernel: [  449.227075]  dm_persistent_data dm_bio_prison dm_bufio libcrc32c usbmouse hid_generic usbkbd usbhid hid i2c_piix4 i2c_nvidia_gpu ahci libahci igb i2c_algo_bit dca wmi
Feb  9 12:55:31 prox kernel: [  449.227096] CR2: ffff9f9380121000
Feb  9 12:55:31 prox kernel: [  449.227098] ---[ end trace de3e9f7af629ba3d ]---
Feb  9 12:55:31 prox kernel: [  449.227100] RIP: 0010:gpu_i2c_check_status.isra.5+0x52/0xa0 [i2c_nvidia_gpu]
Feb  9 12:55:31 prox kernel: [  449.227102] Code: 25 00 00 00 60 3d 00 00 00 60 75 24 be 58 02 00 00 bf f4 01 00 00 e8 ed 0b 1d cd 48 8b 05 c6 0c d1 cd 4c 39 e0 79 09 49 8b 06 <8b> 18 85 db 78 ce 48 8b 05 b1 0c d1 cd 49 39 c4 0f 88 b6 02 00 00
 
Code:
Feb  9 12:55:31 prox kernel: [  449.227105] RSP: 0018:ffff9f938059fcc0 EFLAGS: 00010283
Feb  9 12:55:31 prox kernel: [  449.227107] RAX: ffff9f9380121000 RBX: 00000000ffffffff RCX: 0000000000000000
Feb  9 12:55:31 prox kernel: [  449.227108] RDX: ffff8c3daea9db40 RSI: 0000000000000000 RDI: ffff9f938059fbf8
Feb  9 12:55:31 prox kernel: [  449.227110] RBP: ffff9f938059fce0 R08: 0000000000000000 R09: 0000000000000003
Feb  9 12:55:31 prox kernel: [  449.227112] R10: 000000000000000e R11: ffff8c3daeaa94c4 R12: 00000001000091a3
Feb  9 12:55:31 prox kernel: [  449.227113] R13: ffff8c3dac740818 R14: ffff8c3dac740820 R15: 00000001000090a9
Feb  9 12:55:31 prox kernel: [  449.227115] FS:  0000000000000000(0000) GS:ffff8c3daea80000(0000) knlGS:0000000000000000
Feb  9 12:55:31 prox kernel: [  449.227117] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Feb  9 12:55:31 prox kernel: [  449.227119] CR2: ffff9f9380121000 CR3: 00000003d97f8000 CR4: 0000000000340ee0
Feb  9 12:55:31 prox systemd-udevd[14286]: Using default interface naming scheme 'v240'.
Feb  9 12:55:31 prox systemd-udevd[14286]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb  9 12:55:31 prox systemd-udevd[14286]: Could not generate persistent MAC address for tap100i0: No such file or directory
Feb  9 12:55:31 prox kernel: [  449.542082] device tap100i0 entered promiscuous mode
Feb  9 12:55:31 prox systemd-udevd[14286]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb  9 12:55:31 prox systemd-udevd[14286]: Could not generate persistent MAC address for fwbr100i0: No such file or directory
Feb  9 12:55:31 prox systemd-udevd[14286]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb  9 12:55:31 prox systemd-udevd[14286]: Could not generate persistent MAC address for fwpr100p0: No such file or directory
Feb  9 12:55:31 prox systemd-udevd[14283]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
Feb  9 12:55:31 prox systemd-udevd[14283]: Using default interface naming scheme 'v240'.
Feb  9 12:55:31 prox systemd-udevd[14283]: Could not generate persistent MAC address for fwln100i0: No such file or directory
Feb  9 12:55:31 prox kernel: [  449.558164] fwbr100i0: port 1(fwln100i0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.558169] fwbr100i0: port 1(fwln100i0) entered disabled state
Feb  9 12:55:31 prox kernel: [  449.558219] device fwln100i0 entered promiscuous mode
Feb  9 12:55:31 prox kernel: [  449.558252] fwbr100i0: port 1(fwln100i0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.558254] fwbr100i0: port 1(fwln100i0) entered forwarding state
Feb  9 12:55:31 prox kernel: [  449.560207] vmbr0: port 2(fwpr100p0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.560211] vmbr0: port 2(fwpr100p0) entered disabled state
Feb  9 12:55:31 prox kernel: [  449.560254] device fwpr100p0 entered promiscuous mode
Feb  9 12:55:31 prox kernel: [  449.560283] vmbr0: port 2(fwpr100p0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.560284] vmbr0: port 2(fwpr100p0) entered forwarding state
Feb  9 12:55:31 prox kernel: [  449.561738] fwbr100i0: port 2(tap100i0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.561740] fwbr100i0: port 2(tap100i0) entered disabled state
Feb  9 12:55:31 prox kernel: [  449.561786] fwbr100i0: port 2(tap100i0) entered blocking state
Feb  9 12:55:31 prox kernel: [  449.561787] fwbr100i0: port 2(tap100i0) entered forwarding state
Feb  9 12:55:32 prox kernel: [  450.570061] vfio-pci 0000:09:00.0: enabling device (0000 -> 0003)
Feb  9 12:55:32 prox kernel: [  450.675493] vfio-pci 0000:09:00.0: vfio_ecap_init: hiding ecap 0x1e@0x258
Feb  9 12:55:32 prox kernel: [  450.675520] vfio-pci 0000:09:00.0: vfio_ecap_init: hiding ecap 0x19@0x900
Feb  9 12:56:00 prox systemd[1]: Starting Proxmox VE replication runner...
Feb  9 12:56:00 prox systemd[1]: pvesr.service: Succeeded.
Feb  9 12:56:00 prox systemd[1]: Started Proxmox VE replication runner.
Feb  9 12:56:01 prox pvedaemon[13664]: start failed: command '/usr/bin/kvm -id 100 -name Win10HTPC -chardev 'socket,id=qmp,path=/var/run/qemu-server/100.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/100.pid -daemonize -smbios 'type=1,uuid=8b4ab735-3d41-40c3-9da7-e971b5729f67' -drive 'if=pflash,unit=0,format=raw,readonly,file=/usr/share/pve-edk2-firmware//OVMF_CODE.fd' -drive 'if=pflash,unit=1,format=raw,id=drive-efidisk0,file=/dev/zvol/TreeDisk/vm-100-disk-0' -smp '4,sockets=2,cores=2,maxcpus=4' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vga none -nographic -no-hpet -cpu 'kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=proxmox,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,hv_synic,hv_stimer,hv_ipi,enforce,kvm=off' -m 8032 -device 'vmgenid,guid=b1c66a0a-1b3e-45d7-9378-8a140cc94eef' -readconfig /usr/share/qemu-server/pve-q35-4.0.cfg -device 'nec-usb-xhci,id=xhci,bus=pci.1,addr=0x1b' -device 'usb-tablet,id=tablet,bus=ehci.0,port=1' -device 'vfio-pci,host=0000:09:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,multifunction=on' -device 'vfio-pci,host=0000:09:00.1,id=hostpci0.1,bus=ich9-pcie-port-1,addr=0x0.1' -device 'vfio-pci,host=0000:09:00.2,id=hostpci0.2,bus=ich9-pcie-port-1,addr=0x0.2' -device 'vfio-pci,host=0000:09:00.3,id=hostpci0.3,bus=ich9-pcie-port-1,addr=0x0.3' -device 'usb-host,bus=xhci.0,vendorid=0x046d,productid=0xc051,id=usb0' -device 'usb-host,bus=xhci.0,vendorid=0x413c,productid=0x2107,id=usb1' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:ee284c19ac3e' -drive 'file=/NoBackup/ISO/template/iso/Windows10.iso,if=none,id=drive-ide2,media=cdrom,aio=threads' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -device 'ahci,id=ahci0,multifunction=on,bus=pci.0,addr=0x7' -drive 'file=/dev/zvol/NoBackup/vm-100-disk-0,if=none,id=drive-sata0,cache=writeback,format=raw,aio=threads,detect-zeroes=on' -device 'ide-hd,bus=ahci0.0,drive=drive-sata0,id=sata0,bootindex=100' -netdev 'type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown' -device 'e1000,mac=96:3C:13:D3:3D:35,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -rtc 'driftfix=slew,base=localtime' -machine 'type=q35+pve1' -global 'kvm-pit.lost_tick_policy=discard'' failed: got timeout

Feb  9 12:56:01 prox pvedaemon[13173]: <root@pam> end task UPID:prox:00003560:00005E98:5E3FF264:qmstart:100:root@pam: start failed: command '/usr/bin/kvm -id 100 -name Win10HTPC -chardev 'socket,id=qmp,path=/var/run/qemu-server/100.qmp,server,nowait' -mon 'chardev=qmp,mode=control' -chardev 'socket,id=qmp-event,path=/var/run/qmeventd.sock,reconnect=5' -mon 'chardev=qmp-event,mode=control' -pidfile /var/run/qemu-server/100.pid -daemonize -smbios 'type=1,uuid=8b4ab735-3d41-40c3-9da7-e971b5729f67' -drive 'if=pflash,unit=0,format=raw,readonly,file=/usr/share/pve-edk2-firmware//OVMF_CODE.fd' -drive 'if=pflash,unit=1,format=raw,id=drive-efidisk0,file=/dev/zvol/TreeDisk/vm-100-disk-0' -smp '4,sockets=2,cores=2,maxcpus=4' -nodefaults -boot 'menu=on,strict=on,reboot-timeout=1000,splash=/usr/share/qemu-server/bootsplash.jpg' -vga none -nographic -no-hpet -cpu 'kvm64,+lahf_lm,+sep,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=proxmox,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,hv_synic,hv_stimer,hv_ipi,enforce,kvm=off' -m 8032 -device 'vmgenid,guid=b1c66a0a-1b3e-45d7-9378-8a140cc94eef' -readconfig /usr/share/qemu-server/pve-q35-4.0.cfg -device 'nec-usb-xhci,id=xhci,bus=pci.1,addr=0x1b' -device 'usb-tablet,id=tablet,bus=ehci.0,port=1' -device 'vfio-pci,host=0000:09:00.0,id=hostpci0.0,bus=ich9-pcie-port-1,addr=0x0.0,multifunction=on' -device 'vfio-pci,host=0000:09:00.1,id=hostpci0.1,bus=ich9-pcie-port-1,addr=0x0.1' -device 'vfio-pci,host=0000:09:00.2,id=hostpci0.2,bus=ich9-pcie-port-1,addr=0x0.2' -device 'vfio-pci,host=0000:09:00.3,id=hostpci0.3,bus=ich9-pcie-port-1,addr=0x0.3' -device 'usb-host,bus=xhci.0,vendorid=0x046d,productid=0xc051,id=usb0' -device 'usb-host,bus=xhci.0,vendorid=0x413c,productid=0x2107,id=usb1' -device 'virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3' -iscsi 'initiator-name=iqn.1993-08.org.debian:01:ee284c19ac3e' -drive 'file=/NoBackup/ISO/template/iso/Windows10.iso,if=none,id=drive-ide2,media=cdrom,aio=threads' -device 'ide-cd,bus=ide.1,unit=0,drive=drive-ide2,id=ide2,bootindex=200' -device 'ahci,id=ahci0,multifunction=on,bus=pci.0,addr=0x7' -drive 'file=/dev/zvol/NoBackup/vm-100-disk-0,if=none,id=drive-sata0,cache=writeback,format=raw,aio=threads,detect-zeroes=on' -device 'ide-hd,bus=ahci0.0,drive=drive-sata0,id=sata0,bootindex=100' -netdev 'type=tap,id=net0,ifname=tap100i0,script=/var/lib/qemu-server/pve-bridge,downscript=/var/lib/qemu-server/pve-bridgedown' -device 'e1000,mac=96:3C:13:D3:3D:35,netdev=net0,bus=pci.0,addr=0x12,id=net0,bootindex=300' -rtc 'driftfix=slew,base=localtime' -machine 'type=q35+pve1' -global 'kvm-pit.lost_tick_policy=discard'' failed: got timeout
 
great that you found a solution, a different one would have been to only passthrough the gpu and audio device with a line in the config such as this:

'hostpci0: 0X:00.0;0X:00.1,pcie=1....'

at least in my tries this always worked, but i did not need the usb functionality anyway (this is only for the VirtualLink[0] VR capability afaics)

0: https://en.wikipedia.org/wiki/VirtualLink
 
great that you found a solution, a different one would have been to only passthrough the gpu and audio device with a line in the config such as this:

'hostpci0: 0X:00.0;0X:00.1,pcie=1....'

at least in my tries this always worked, but i did not need the usb functionality anyway (this is only for the VirtualLink[0] VR capability afaics)

0: https://en.wikipedia.org/wiki/VirtualLink

I tried, at an early stage, to only passthrough the GPU and HDMI sound but I could not get that to work either.

My graphics card doesn't have a USB port so I assume that it's up to the manufacturer to implement it or not.
I did see a post somewhere about a Gigabyte card, I think it was, that had the same problem and they released a new vbios to simply remove the USB device - that couldn't be used anyway since there was no connection for it.

From what I have been reading you should always try and passthrough a whole IOMMU group and because I could not get it to work with only GPU and audio I followed along those lines.

This specific problem might be connected to either the NVidia Super cards or the USB port.
While searching for a solution did I notice a few others that specifically had NVidia Super cards.
 
From what I have been reading you should always try and passthrough a whole IOMMU group and because I could not get it to work with only GPU and audio I followed along those lines.
in general thats true, but i had an rtx2060 for which it worked to only passthrough the gpu and audio... but yes your mileage may vary...