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

Jasen Borisov tajjada at gmail.com
Tue Sep 15 18:26:04 UTC 2015


Seems like I have a problem with VFIO in general, not just specifically
with graphics cards. I just tried booting Arch Linux (i trust it more than
MSWindows) in the virtual machine using QXL graphics but with another
device (an EHCI controller) passed with VFIO. Boots fine without any VFIO
devices, but when I pass my physical USB controller via VFIO, it doesn't
boot anymore. So, devices other than graphics cards don't work either ...

Could this have anything to do with kernel (mis)configuration? Any specific
kernel config options that I should be wary of? Could it be a hardware
problem? VT-d is enabled in my motherboard UEFI Setup ... I wouldn't have
even gotten this far without it.

On Tue, Sep 15, 2015 at 9:08 PM, Abdulla Bubshait <darkstego at gmail.com>
wrote:

> Could you please send me your config or script. Because mine would always
> crash on startup. I tried a win10 upgrade, fresh install and multiple video
> cards. So I am guessing maybe some config is causing the game to crash.
>
>
> On Tue, Sep 15, 2015 at 1:41 PM Okky Hendriansyah <okky at nostratech.com>
> wrote:
>
>> Seems pretty normal in my Windows 10 VM. Ran silky smooth. Still in
>> tutorial though. Here’s a picture of it.
>> https://www.dropbox.com/s/6avpiyxoedp5v4s/2015-09-16%2000.31.20.jpg?dl=0
>>
>> <https://www.dropbox.com/s/6avpiyxoedp5v4s/2015-09-16%2000.31.20.jpg?dl=0>
>> --
>> *Okky Hendriansyah*
>>
>> On September 15, 2015 at 23:31:54, Okky Hendriansyah (okky at nostratech.com)
>> wrote:
>>
>> OK, let me try to install Heroes of the Storm first.
>>
>> --
>> *Okky Hendriansyah*
>>
>> On September 15, 2015 at 23:28:09, Abdulla Bubshait (darkstego at gmail.com)
>> wrote:
>>
>> 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/b937fbea/attachment.htm>


More information about the vfio-users mailing list