You are not logged in.

#1 2015-08-10 16:40:27

avi9526
Member
Registered: 2015-05-15
Posts: 116

[libvirt] Passed GPU not working or cause guest Windows to go BSoD

I was able to get working guest Windows OS with GPU passthrough on my hardware with Ubuntu 14.04 (hardware still the same). But seems things have changed or I miss something.

My hardware:
MB: GA-990FXA-UD5
CPU: FX-8320
GPU Host: GeForce 7600 GS (5th PCI-E slot) default in BIOS
GPU Guest: Radeon HD 6950 (upgraded to HD 6970 long time ago, 1st PCI-E slot)

Latest updates installed at time of this post.

Sometimes Windows Device Manager show code 10 or code 43 for passed GPU. But commonly result in BSoD. Sometimes BSoD appears on boot, other times ~1 minute after desktop loaded. Tried with VM BIOS and UEFI OVMF (from ovmf package).

List of PCI devices

lspci -nn | grep -iP "radeon|nvidia"

01:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cayman PRO [Radeon HD 6950] [1002:6719]
01:00.1 Audio device [0403]: Advanced Micro Devices, Inc. [AMD/ATI] Cayman/Antilles HDMI Audio [Radeon HD 6900 Series] [1002:aa80]
04:00.0 VGA compatible controller [0300]: NVIDIA Corporation G73 [GeForce 7600 GS] [10de:0392] (rev a1)

Managing virtual machine using virt-manager GUI. Config for VM

<domain type='kvm'>
  <name>win-8.1</name>
  <uuid>6d4d4553-5853-42d7-bd08-31bc48198d94</uuid>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <vcpu placement='static'>4</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-2.3'>hvm</type>
    <loader type='rom'>/usr/share/ovmf/ovmf_x64.bin</loader>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
    <vmport state='off'/>
  </features>
  <cpu mode='host-model'>
    <model fallback='allow'/>
    <topology sockets='1' cores='4' threads='1'/>
  </cpu>
  <clock offset='utc'>
    <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>
  <pm>
    <suspend-to-mem enabled='no'/>
    <suspend-to-disk enabled='no'/>
  </pm>
  <devices>
    <emulator>/usr/sbin/qemu-system-x86_64</emulator>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source dev='/dev/sdc'/>
      <target dev='vda' bus='virtio'/>
      <boot order='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
    </disk>
    <disk type='block' device='cdrom'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <target dev='hdb' bus='ide'/>
      <readonly/>
      <boot order='1'/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw' cache='none' io='native'/>
      <source file='/home/avi9526/Setup/Drivers/virtio-win-0.1.105.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>
    <controller type='usb' index='0' model='nec-xhci'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </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='0x06' function='0x0'/>
    </controller>
    <interface type='network'>
      <mac address='52:54:00:51:11:23'/>
      <source network='default'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target port='0'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='spicevmc'>
      <target type='virtio' name='com.redhat.spice.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <graphics type='spice' autoport='yes'>
      <image compression='off'/>
    </graphics>
    <sound model='ich6'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </sound>
    <video>
      <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </hostdev>
    <redirdev bus='usb' type='spicevmc'>
    </redirdev>
    <redirdev bus='usb' type='spicevmc'>
    </redirdev>
    <memballoon model='virtio'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
    </memballoon>
  </devices>
</domain>

Related dmesg output

dmesg | grep -iP "pci-stub|nouveau|nvidia|radeon|iommu"

[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=8c3f7451-e2b8-4721-b32b-d01c938bdd17 rw quiet pci-stub.ids=1002:6719,1002:aa80
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=8c3f7451-e2b8-4721-b32b-d01c938bdd17 rw quiet pci-stub.ids=1002:6719,1002:aa80
[    0.898152] AMD-Vi: Found IOMMU at 0000:00:00.2 cap 0x40
[    2.520853] pci-stub: add 1002:6719 sub=FFFFFFFF:FFFFFFFF cls=00000000/00000000
[    2.520865] pci-stub 0000:01:00.0: claimed by stub
[    2.520872] pci-stub: add 1002:AA80 sub=FFFFFFFF:FFFFFFFF cls=00000000/00000000
[    2.520879] pci-stub 0000:01:00.1: claimed by stub
[    2.728611] [drm] radeon kernel modesetting enabled.
[    2.733101] AMD IOMMUv2 driver by Joerg Roedel <jroedel@suse.de>
[    2.733103] AMD IOMMUv2 functionality not available on this system
[    2.758199] nvidia: module license 'NVIDIA' taints kernel.
[    2.768396] [drm] Initialized nvidia-drm 0.0.0 20140818 for 0000:04:00.0 on minor 0
[    2.768404] NVRM: loading NVIDIA UNIX x86_64 Kernel Module  304.125  Mon Dec  1 19:58:28 PST 2014
[    4.149428] NVRM: on the primary VGA device. The NVIDIA Linux graphics driver

Any idea how to fix this?

Last edited by avi9526 (2015-08-10 16:42:09)

Offline

#2 2015-08-10 22:57:16

fukawi2
Ex-Administratorino
From: .vic.au
Registered: 2007-09-28
Posts: 6,224
Website

Re: [libvirt] Passed GPU not working or cause guest Windows to go BSoD

avi9526 wrote:

I was able to get working guest Windows OS with GPU passthrough on my hardware with Ubuntu 14.04 (hardware still the same).

Just to be clear, is this issue with Ubuntu, or are you using Arch and previously had it working with Ubuntu?

Offline

#3 2015-08-10 23:10:44

avi9526
Member
Registered: 2015-05-15
Posts: 116

Re: [libvirt] Passed GPU not working or cause guest Windows to go BSoD

I have Arch (4.1.4-1-ARCH), with latest updates at the time of first post. Ubuntu no longer present on my PC. But I had working GPU passthrough with it before its been removed. On Arch I can't make it work and don't know why…

Last edited by avi9526 (2015-08-10 23:11:46)

Offline

#4 2015-08-12 20:56:01

lersek
Member
Registered: 2015-03-15
Posts: 38

Re: [libvirt] Passed GPU not working or cause guest Windows to go BSoD

A new mailing list called vfio-users has been created:

https://www.redhat.com/mailman/listinfo/vfio-users

consider subscribing and asking the question there.

See also https://www.redhat.com/archives/vfio-us … 00003.html if you are not familiar with mailing lists.

Offline

Board footer

Powered by FluxBB