Trouble with EVGA GTX 970 Passthrough


Recommended Posts

Asrock Z77 Extreme 11 with Xenon 1220Lv2

(both support Vt-D and VT-X, also in bios i saw that information, eveything is supported)

 

Some time ago with success i run GT730 with Openelec VM plugin

but with GTX970 for windows i have problem - anyone could help ?

 

@jonp maybe you could me something advice ??

 

==================================================

UPDATE !

==================================================

 

I finly get working !!! i suppose my problem was aditional GPU

Becuase my CPU dont have inside any, (xenon 1220lv2 is without) when i add second GPU

i filny get working GTX970 with windows !!!!

 

SO i have question there is any chance get working with only 1 GPU ?

i saw without 2nd GPU - my GPU was in IMMOU group with other devices, now when i add second is alone

in separate group.

 

2 question - if i change CPU on model with GPU - could this resolve my problem ? i use only one on PCIE ?

 

 

 

btw. what is the latest version of working driver nvidia under KVM for windows x64 ??

 

Link to comment

i have now problem with FPS i get something arround 20fps in game Heroes and Generals

where without KVM - i get 120fps .... ???

 

any idea how this fix ?

Whoa. Never seen a frame rate issue like that. Sure you're doing a true apples to apples test?  Share the XML for your VM please.

Link to comment
Whoa. Never seen a frame rate issue like that. Sure you're doing a true apples to apples test?  Share the XML for your VM please.

 

im used this same windows and nvidia driver version on setup without KVM, and this same rest of hardware

Im also tested with MSI turned OFF/ON - but nothing change with framerate - just fix audio

 

Also i was try to switch between q35 and i440 (that why in xml now i440) - but this change

also nothing change (just keyboard works before windows is loaded in q35 start working only in windows)

 

im dont know why is so big diffrence

 

 

Im tried to switch to OVMF but when i created VMs  from webui after start i get error about to many IDE controler on 1 bus

(i map Virtio driver iso and iso with windows installation)

 

<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit Win7-Games
or other application using the libvirt API.
-->

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Win7-Games</name>
  <uuid>67c30d24-8117-d25c-400f-ffdd7b83aacb</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows7.png" os="windows7"/>
  </metadata>
  <memory unit='KiB'>16777216</memory>
  <currentMemory unit='KiB'>16777216</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='4' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/.vms/Win7/Win7-Games/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/.vms/virtio-win.iso'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:61:f0:1c'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x04b3'/>
        <product id='0x3025'/>
      </source>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0a12'/>
        <product id='0x0001'/>
      </source>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=03:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=03:00.1,bus=root.1,addr=00.1'/>
  </qemu:commandline>
</domain>

 

I have few question:

 

Map ROM bios could help ??

Switch to OVMF ???

switch to windows 8.1 ??

Link to comment

Whoa. Never seen a frame rate issue like that. Sure you're doing a true apples to apples test?  Share the XML for your VM please.

 

im used this same windows and nvidia driver version on setup without KVM, and this same rest of hardware

Im also tested with MSI turned OFF/ON - but nothing change with framerate - just fix audio

 

Also i was try to switch between q35 and i440 (that why in xml now i440) - but this change

also nothing change (just keyboard works before windows is loaded in q35 start working only in windows)

 

im dont know why is so big diffrence

 

 

Im tried to switch to OVMF but when i created VMs  from webui after start i get error about to many IDE controler on 1 bus

(i map Virtio driver iso and iso with windows installation)

 

<!--
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
  virsh edit Win7-Games
or other application using the libvirt API.
-->

<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Win7-Games</name>
  <uuid>67c30d24-8117-d25c-400f-ffdd7b83aacb</uuid>
  <metadata>
    <vmtemplate name="Custom" icon="windows7.png" os="windows7"/>
  </metadata>
  <memory unit='KiB'>16777216</memory>
  <currentMemory unit='KiB'>16777216</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
  </cputune>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
  </os>
  <features>
    <acpi/>
    <apic/>
  </features>
  <cpu mode='host-passthrough'>
    <topology sockets='1' cores='4' threads='1'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/cache/.vms/Win7/Win7-Games/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/cache/.vms/virtio-win.iso'/>
      <target dev='hda' bus='ide'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='ide' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:61:f0:1c'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x04b3'/>
        <product id='0x3025'/>
      </source>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x0a12'/>
        <product id='0x0001'/>
      </source>
    </hostdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value='-device'/>
    <qemu:arg value='ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=2,chassis=1,id=root.1'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=03:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=03:00.1,bus=root.1,addr=00.1'/>
  </qemu:commandline>
</domain>

 

I have few question:

 

Map ROM bios could help ??

Switch to OVMF ???

switch to windows 8.1 ??

 

8.1 will be your best bet.  I think OVMF wouldn't be bad either.  I don't believe Win7 supported OVMF.

Link to comment

Hi @jonp

I try switch to Win8.1 and Win10 RTM

But i can't run install with OVMF - just freez after start - on logo Windows

 

from UEFI i executed from fs0:> \EFI\BOOT\BOOTX64.EFI

do i must do it something else ?? format vdisk manual ?

i dont know why both windows 8.1/10 just freez after start installator

 

(i tried make bootable USB from ISO, with MBR and GPT part, also with FAT32, and NTFS, and boot from ISO,

and on all combination installation just freez)

 

When i switch to seaBios everything working fine - but on both win8.1/10 still i get arround 20-30fps in games

 

Link to comment

Hi @jonp

I try switch to Win8.1 and Win10 RTM

But i can't run install with OVMF - just freez after start - on logo Windows

 

from UEFI i executed from fs0:> \EFI\BOOT\BOOTX64.EFI

do i must do it something else ?? format vdisk manual ?

i dont know why both windows 8.1/10 just freez after start installator

 

(i tried make bootable USB from ISO, with MBR and GPT part, also with FAT32, and NTFS, and boot from ISO,

and on all combination installation just freez)

 

When i switch to seaBios everything working fine - but on both win8.1/10 still i get arround 20-30fps in games

 

That's pretty odd.  Do you have a listing of the exact hardware you're using for your system?

Link to comment

Here's my current setup (testing UnRAID to see if the Win 8.1/10 VM works well enough to warrant  license):

 

CPU: i7-4930K (no integrated graphics, like OP)

Mobo: Asus Rampage IV Gene (X79, and will be replaced with a full ATX if this works)

RAM: 4x4GB 2133MHz

GPU: 2x EVGA GTX 970, and an AMD R5 220 for testing (all UEFI compatible)

 

I get a similar issue to the OP. I get a black screen when starting the VM under some specific conditions. I've tried all five steps under "Help! I can start my VM with a GPU assigned by all I get is a black screen on my monitor!"

 

No matter what cards are plugged in and in what slot, my BIOS and the UnRAID console display via the outputs of the topmost card (i.e., if there are cards in the second and third slots, it will display via the card in the second. I can successfully pass through any GPU that isn't that card. If I include card displaying BIOS/console in the passthrough, I get a black screen when starting the VM. When I put a 970 in the top, and only pass through the other 970 or the 5450, it works. When I pass through a 970 in the bottom slot and have any other card in the top of middle slot, the VM works.

 

TL;DR- Seems like my system won't relinquish the host GPU to the VM. Don't know if this is expected behavior, a missing setting, or a motherboard issue.

 

Thought it was relevant to post here due to similar GPU and similar issue to OP.

Link to comment
  • 10 months later...

Similar issues here. GPU passthrough doesn't seem to work and i get a blank screen (no signal).

unRAID runs on IGFX.

 

Asus Z170-A

i7-6700K

EVGA GTX970 SSC

EFI up to date for GPU and MoBo.

 

Tried top and middle PCIe16X slots with same result.

Also tried mutliple guest OS for the VM and none works with the GPU passthrough (VNC does work)

Will get a GTX1070 and see if I have more luck there.

Any suggestions greatly appreciated!

Link to comment
  • 1 month later...

I'm having the same issue..

 

Asrock z170 gaming i7

i7-6700K

Gigabyte GTX 1070 Xtreme Gaming

 

Updated mobo bios, Windows 10 via VNC

To update driver for GPU, I set onboard graphics as primary and GTX1070 as secondary.  No output from GPU onto monitor via HDMI (it would display mobo bios, etc.  just no dice with passing through VM).  Accessed VM via VNC, installed updated GPU driver from Gigabyte. Still nothing.

 

Looked under device management.  Gives error "Windows has stopped this device because it has reported problems. Code 43." Tried updating further but says I have the latest driver.  Stuck here.  Any advice would be appreciated.

 

Link to comment
  • 4 months later...

absinthePhD

eventually, did you succeed to passthrough the 1070?  how ? what are the main configuration points and steps

thanks in advance

 

I did not. I returned the card, which did not appear to work with my setup. I moved on to a stand alone PC. Sorry that I can't be of more help.  I did weeks of troubleshooting without success.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.