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

Blank Field ihatethisfield at gmail.com
Tue Sep 15 16:19:32 UTC 2015


You know, if the darn calculator starts on the second launch only and draws
a loading screen - that's not the environment to blame.
Although my cards do support directX 12, is there any benchmarks or games i
can use to test it?
On Sep 15, 2015 7:15 PM, "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
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20150915/8a308266/attachment.htm>


More information about the vfio-users mailing list