You are not logged in.

#1 2016-09-03 21:57:28

biasha
Member
Registered: 2014-11-16
Posts: 4

qemu nvidia pass-through with Windows 10 "Anniversary" - code 43 again

Hi,

Windows 10 "Anniversary" update (ver 1607) has arrived and eventually it will be enforced on every Windows 10 installations via automatic updates.

My setup works perfectly with Windows 10 Pro (and below versions of Windows) using latest nvidia drivers. So I've tried the Anniversary update and received the famous "Code 43" driver error on the passed-though nvidia card. Does anyone else experience this? Any ideas?

What I know so far:

  1. Affects at least Nvidia GeForce GTX 980.

  2. Only affects Windows 10 Anniversary.

  3. Only affects nvidia drivers 352.86+. It WORKS with 350.12 and below versions! (ironically this version is officially named "GRAND THEFT")

  4. Fails with both "pc" and "q35" machines.

  5. Fails with both seabios and ovmf.

  6. Fails with both vfio-pci and pci-stub.

  7. Same behavior on the new and my 2 years old archlinux/qemu 2.3 setup.

  8. x-vga=on option does not change anything.

What I have not tried yet:

  1. Latest kernel/qemu/ovmf versions.

  2. Using additional virtual pci bus index "1" to keep pci address the same.

  3. It has never bothered me (I've checked bandwidths with nvidia tools and it is ok) but nvidia panel "system info" says "Bus: PCI Express x0" instead of "PCIe 3.0 x16" - does anyone know the reason?

Here is my setup for reference:

Hardware: Intel i7-5930K, ASRock Fatal1ty X99 Professional, Nvidea GTX 980, and Radeon card as a primary video for the bios and linux screen.
ArchLinux: 2016.08.01 (have not tried today's yet) - only pacman packages installed, nothing special.
uname: 4.7.2-1-ARCH #1 SMP PREEMPT Sat Aug 20 23:02:56 CEST 2016 x86_64 GNU/Linux
QEMU emulator version 2.6.0

Starting VM with:

taskset -c 0-3,6-9 qemu-system-x86_64 \
    -name Windows10 \
    -drive if=pflash,format=raw,readonly,file=./bios/bios_CODE.bin \
    -drive if=pflash,format=raw,file=./bios/bios_VARS.bin \
    -serial none -parallel none -nodefaults -nodefconfig -no-user-config \
    -enable-kvm \
    -cpu host,kvm=off,hv_vendor_id=sugoidesu \
    -smp 8,sockets=1,cores=4,threads=2 \
    -m 16G -mem-path /dev/hugepages -mem-prealloc \
    -machine pc,accel=kvm,kernel_irqchip=on,mem-merge=off \
    -rtc base=localtime,clock=host,driftfix=none \
    -device virtio-scsi-pci,id=scsi \
        -device scsi-hd,drive=drive0 \
            -drive if=none,id=drive0,file=w10.raw,format=raw,cache=none,aio=native \
    -net nic,vlan=0,macaddr=${MACADDR_0},model=virtio -net bridge,vlan=0,br=br0 \
    -device vfio-pci,host=01:00.0,addr=10.0,multifunction=on \
    -device vfio-pci,host=01:00.1,addr=10.1 \
    -vga none -nographic \
    -usb -usbdevice host:046d:c52b -usbdevice host:046d:c537

Last edited by biasha (2016-09-04 02:12:57)

Offline

#2 2016-10-05 20:25:50

biasha
Member
Registered: 2014-11-16
Posts: 4

Re: qemu nvidia pass-through with Windows 10 "Anniversary" - code 43 again

biasha wrote:

What I have not tried yet:
b. Using additional virtual pci bus index "1" to keep pci address the same.

I feel so lonely ) Found solution myself: connecting through ioh3420 helps.

-device ioh3420,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
-device vfio-pci,host=02:00.0,bus=root.1,addr=0.0,multifunction=on \
-device vfio-pci,host=02:00.1,bus=root.1,addr=0.1 \

Last edited by biasha (2016-10-05 20:29:04)

Offline

Board footer

Powered by FluxBB