<div dir="ltr">Hi all,<div><br></div><div>I've been experiencing issues with getting passthrough working on my GTX 970.</div><div><br></div><div>Ubuntu 15.10</div><div>Tested kernel versions:  4.2.0-16.19 (works), 4.2.0-30.35 (fails), 4.4.1-040401 (fails)</div><div>Guest OS:  Windows 10</div><div><br></div><div>Under 4.2.0-16.19, everything works.  Occasionally, I'll get a 43, but if I remove and re-add the card inside the Device Manager in Windows, it goes back to working perfectly.  On later kernels, I've had no such luck.  Running precisely the same options to qemu, I get error 43 every time.  I'm hoping someone might have some insight on what change may be causing this issue, because I'd rather not have to bisect my way through ~1500 commits just to find it.</div><div><br></div><div>My startup script is as follows below:</div><div><br></div><div><div>#!/bin/bash</div><div>OPTS=""</div><div>OPTS="$OPTS -cpu host,kvm=off,hv_time,hv_relaxed,hv_vapic,hv_spinlocks=0x1fff,hv_vendor_id=Nvidia43FIX"<br></div><div>OPTS="$OPTS -smp 4,sockets=1,cores=4,threads=1"<br></div><div>OPTS="$OPTS -enable-kvm"<br></div><div>OPTS="$OPTS -m 8192"<br></div><div>OPTS="$OPTS -device vfio-pci,host=01:00.0,multifunction=on"<br></div><div>OPTS="$OPTS -device vfio-pci,host=01:00.1"</div><div>OPTS="$OPTS -drive if=pflash,format=raw,readonly,file=/usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd"<br></div><div>OPTS="$OPTS -drive if=pflash,format=raw,file=$(pwd)/OVMF_VARS-pure-efi.fd"</div><div>OPTS="$OPTS -hda $(pwd)/qemu_vm.qcow2"<br></div><div>OPTS="$OPTS -cdrom $(pwd)/win10.iso"<br></div><div>OPTS="$OPTS -vga qxl"<br></div><div>OPTS="$OPTS -monitor stdio"<br></div><div>OPTS="$OPTS -soundhw hda"<br></div><div>OPTS="$OPTS -device e1000,netdev=net0,mac=DE:AD:BE:EF:01:02 -netdev tap,id=net0"<br></div><div>OPTS="$OPTS -vnc :1"<br></div><div><br></div><div>VM_SOUND=""</div><div>VM_SOUND="$VM_SOUND QEMU_AUDIO_DRV=pa"</div><div>VM_SOUND="$VM_SOUND QEMU_PA_SAMPLES=64"</div><div><br></div><div>sudo $VM_SOUND qemu-system-x86_64 $OPTS</div></div><div><br></div><div><br></div><div>I've tried numerous option changes (including not using any of the hv flags, and going through virt-manager), with no success.  I've also tried different versions of qemu (2.0, 2.3, 2.5).  I've got passthrough itself working, so it seems to me it's something to do with how the hv flags are being passed in, or possibly the hv_vendor_id flag not being respected somehow by kvm.  If anybody's got thoughts on where to go with this, I'd love to hear them.</div><div><br></div><div>Thanks in advance.</div></div>