[vfio-users] Windows 10 guest refuses to boot when passed my NVIDIA graphics card

Abdulla Bubshait darkstego at gmail.com
Tue Sep 15 16:27:57 UTC 2015


I experience instant guest crash on Starcraft2 and Heroes of the Storm
(both use the same engine). The guest would just shutdown and reboot as
soon as you start the games. Same result whether using Nvidia GTX 770 or
AMD R9 Fury X.

Games work fine if I boot Windows 10 on the same HW (non virtual). I would
assume it will take a few months to get these things sorted out.

On Tue, Sep 15, 2015 at 12:18 PM Okky Hendriansyah <okky at nostratech.com>
wrote:

> Hmm, weird, I have my Windows 10 work very smooth on my setup using the
> latest NVIDIA driver. Although I didn’t install it fresh like Jasen did, I
> upgraded mine from a Windows 8.1. What games are you experiencing the
> contant crash?
>
> --
> *Okky Hendriansyah*
>
> On September 15, 2015 at 23:15:51, Abdulla Bubshait (darkstego at gmail.com)
> wrote:
>
> I stopped trying to get win10 running due to constant crashing in certain
> games with VFIO with all different kinds of GPU. Something about win10
> isn't working well in virtualized environment.
>
> On Tue, Sep 15, 2015 at 11:58 AM Blank Field <ihatethisfield at gmail.com>
> wrote:
>
>> All i can say about this problem: try another OS.
>> I've ran into that kind of problem exceptionally on win10.
>> And i have a radeon card, go figure why the new OS is upset again.
>> On Sep 15, 2015 6:33 PM, "Jasen Borisov" <tajjada at gmail.com> wrote:
>>
>>> Hello everyone,
>>>
>>> I have been following the guides on the vfio blogspot for setting up a
>>> Windows guest for gaming by passing it my NVIDIA GeForce GTX 980 graphics
>>> card. I have an AMD Radeon R7 250 graphics card for my Linux host. I have
>>> ran into a strange problem and have not managed to find a solution to it
>>> online, so I decided to come here and see if anyone knows anything about it.
>>>
>>> Here is the problem I am facing:
>>>
>>> I installed the Windows guest (Windows 10 Pro) in a kvm virtual machine
>>> made with virt-manager, using the default qxl/spice setup during the
>>> installation, as instructed here
>>> <http://vfio.blogspot.bg/2015/05/vfio-gpu-how-to-series-part-4-our-first.html>.
>>> After the installation completed, I removed any extra virtual devices and
>>> added the PCI host/vfio device for my NVIDIA graphics card. I also edited
>>> the XML to hide the kvm virtualization, in preparation for installing the
>>> NVIDIA drivers on Windows, when I boot with my actual graphics card. I have
>>> made no attempt to configure hugepages yet.
>>>
>>> However, when starting up the VM, Windows no longer booted successfully.
>>> I saw the Tianocore splash on my physical monitor, followed by the Windows
>>> logo. The Windows logo stayed frozen (without the spinning loading
>>> indicator under it) for a few minutes, and then the spinning-dots loading
>>> indicator appeared for a few seconds and the machine *reset*. It kept
>>> resetting again and again, never getting past the Windows boot screen.
>>>
>>> I would assume that my PCI passthrough worked successfully, since my
>>> physical monitor turned on and I saw the video output from the virtual
>>> machine on it. However, I can't figure out why Windows cannot finish
>>> booting successfully. Any help with this issue would be greatly
>>> appreciated.
>>>
>>> The same copy of Windows (or rather, installed from the same
>>> installation ISO) works fine with my NVIDIA card on my actual hardware /
>>> when not in a virtual machine, so I am sure this is not a hardware problem.
>>>
>>>
>>> Here is some relevant information about my system:
>>>
>>> /proc/cmdline:
>>> ... intel_iommu=on iommu=pt vfio-pci.ids=10de:13c0,10de:0fbb,8086:8d26
>>> vfio.disable_vga=1 ...
>>> (I omitted my rootfs and other irrelevant kernel options)
>>> The PCI IDs listed in my kernel commandline are my GPU, its audio, and
>>> an EHCI controller on my system for USB, in that order.
>>>
>>> I did not need to use any "hacks" like the ACS override patch or the
>>> enable_unsafe_interrupts option, since I did not experience the relevant
>>> issues that they were made to fix. Each one of the PCI IDs above is in its
>>> own IOMMU group. My system has no integrated graphics (Core i7 Extreme
>>> 5960X CPU).
>>>
>>>
>>> These lines appeared in dmesg when the VM started:
>>>
>>> [  582.886435] kvm: SMP vm created on host with unstable TSC; guest TSC
>>> will not be reliable
>>> [  584.200023] vfio-pci 0000:02:00.0: enabling device (0100 -> 0103)
>>> [  584.200114] vfio_ecap_init: 0000:02:00.0 hiding ecap 0x1e at 0x258
>>> [  584.200120] vfio_ecap_init: 0000:02:00.0 hiding ecap 0x19 at 0x900
>>> [  584.223041] vfio-pci 0000:00:1d.0: enabling device (0000 -> 0002)
>>> [  584.324093] vfio_cap_init: 0000:00:1d.0 hiding cap 0xa
>>> [  589.132151] kvm: zapping shadow pages for mmio generation wraparound
>>> [  589.133051] kvm: zapping shadow pages for mmio generation wraparound
>>>
>>>
>>> The libvirt domain XML of the virtual machine (yes, I called my VM
>>> "nouveideo" = "nouveau" + "video" :) ):
>>>
>>> <domain type='kvm'>
>>>  <name>nouveideo</name>
>>>  <uuid>849fe365-1dfe-44f6-9755-9b48eb325400</uuid>
>>>  <memory unit='KiB'>12345344</memory>
>>>  <currentMemory unit='KiB'>12345344</currentMemory>
>>>  <memoryBacking>
>>>    <nosharepages/>
>>>  </memoryBacking>
>>>  <vcpu placement='static'>16</vcpu>
>>>  <cputune>
>>>    <vcpupin vcpu='0' cpuset='0'/>
>>>    <vcpupin vcpu='1' cpuset='1'/>
>>>    <vcpupin vcpu='2' cpuset='2'/>
>>>    <vcpupin vcpu='3' cpuset='3'/>
>>>    <vcpupin vcpu='4' cpuset='4'/>
>>>    <vcpupin vcpu='5' cpuset='5'/>
>>>    <vcpupin vcpu='6' cpuset='6'/>
>>>    <vcpupin vcpu='7' cpuset='7'/>
>>>    <vcpupin vcpu='8' cpuset='8'/>
>>>    <vcpupin vcpu='9' cpuset='9'/>
>>>    <vcpupin vcpu='10' cpuset='10'/>
>>>    <vcpupin vcpu='11' cpuset='11'/>
>>>    <vcpupin vcpu='12' cpuset='12'/>
>>>    <vcpupin vcpu='13' cpuset='13'/>
>>>    <vcpupin vcpu='14' cpuset='14'/>
>>>    <vcpupin vcpu='15' cpuset='15'/>
>>>  </cputune>
>>>  <os>
>>>    <type arch='x86_64' machine='pc-i440fx-2.4'>hvm</type>
>>>    <loader
>>> type='pflash'>/btrfs/VirtualMachines/OVMF_nouveideo.fd</loader>
>>>  </os>
>>>  <features>
>>>    <acpi/>
>>>    <apic/>
>>>    <pae/>
>>>    <kvm>
>>>      <hidden state='on'/>
>>>    </kvm>
>>>    <vmport state='off'/>
>>>  </features>
>>>  <cpu mode='host-passthrough'>
>>>    <topology sockets='1' cores='8' threads='2'/>
>>>  </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/bin/qemu-system-x86_64</emulator>
>>>    <disk type='file' device='disk'>
>>>      <driver name='qemu' type='raw'/>
>>>      <source file='/btrfs/VirtualMachines/Win10NOUVEIDEO.img'/>
>>>      <target dev='vda' bus='virtio'/>
>>>      <boot order='1'/>
>>>      <address type='pci' domain='0x0000' bus='0x00' slot='0x07'
>>> function='0x0'/>
>>>    </disk>
>>>    <disk type='block' device='cdrom'>
>>>      <driver name='qemu' type='raw'/>
>>>      <target dev='hdb' bus='ide'/>
>>>      <readonly/>
>>>      <boot order='2'/>
>>>      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
>>>    </disk>
>>>    <disk type='file' device='cdrom'>
>>>      <driver name='qemu' type='raw'/>
>>>      <source file='/btrfs/VirtualMachines/virtio-win-0.1.109.iso'/>
>>>      <target dev='hdc' bus='ide'/>
>>>      <readonly/>
>>>      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
>>>    </disk>
>>>    <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='usb' index='0' model='nec-xhci'>
>>>      <address type='pci' domain='0x0000' bus='0x00' slot='0x02'
>>> function='0x0'/>
>>>    </controller>
>>>    <interface type='bridge'>
>>>      <mac address='52:54:00:b3:71:21'/>
>>>      <source bridge='br0'/>
>>>      <model type='virtio'/>
>>>      <address type='pci' domain='0x0000' bus='0x00' slot='0x03'
>>> function='0x0'/>
>>>    </interface>
>>>    <sound model='ich6'>
>>>      <address type='pci' domain='0x0000' bus='0x00' slot='0x04'
>>> function='0x0'/>
>>>    </sound>
>>>    <hostdev mode='subsystem' type='pci' managed='yes'>
>>>      <source>
>>>        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
>>>      </source>
>>>      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a'
>>> function='0x0' multifunction='on'/>
>>>    </hostdev>
>>>    <hostdev mode='subsystem' type='pci' managed='yes'>
>>>      <source>
>>>        <address domain='0x0000' bus='0x02' slot='0x00' function='0x1'/>
>>>      </source>
>>>      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a'
>>> function='0x1'/>
>>>    </hostdev>
>>>    <hostdev mode='subsystem' type='pci' managed='yes'>
>>>      <source>
>>>        <address domain='0x0000' bus='0x00' slot='0x1d' function='0x0'/>
>>>      </source>
>>>      <address type='pci' domain='0x0000' bus='0x00' slot='0x1d'
>>> function='0x0'/>
>>>    </hostdev>
>>>    <memballoon model='virtio'>
>>>      <address type='pci' domain='0x0000' bus='0x00' slot='0x08'
>>> function='0x0'/>
>>>    </memballoon>
>>>  </devices>
>>> </domain>
>>>
>>> Let me know if there is any other information I could provide which
>>> could help identify and correct the problem.
>>>
>>> _______________________________________________
>>> vfio-users mailing list
>>> vfio-users at redhat.com
>>> https://www.redhat.com/mailman/listinfo/vfio-users
>>>
>>> _______________________________________________
>> vfio-users mailing list
>> vfio-users at redhat.com
>> https://www.redhat.com/mailman/listinfo/vfio-users
>>
> _______________________________________________
> vfio-users mailing list
> vfio-users at redhat.com
> https://www.redhat.com/mailman/listinfo/vfio-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20150915/c9501be0/attachment.htm>


More information about the vfio-users mailing list