d0u8l3m Posted February 12, 2016 Share Posted February 12, 2016 Hi i currently have a new unraid server that im trying to run a windows 10 vm on for gaming and im having issues post install. Windows runs fine post install before i install the graphics drivers, but once the drivers are installed the OS freezes and the screen goes black, and i have to force stop and start the vm again. Specs: Gigabyte z87-ud3h i7 4790k 32gb ram (16 allocated for vm) gtx 770 (i had two originally but took one out since sli is not supported) Things ive tried to remedy the issue -Switch bios to OVMF This only made things worse as once windows crashed it would take out Unraid with it, and i needed to hold the power button on the machine to get it running again -Update the GPU Bios/firmware This didn't make any noticeable difference -adding iommu=pt to the syslinux config also didnt make any noticeable difference Im using the 770 to install and the integrated graphics is set to default in the bios for unraid to use Im also passing the 770s audio component in the vm config I have the latest bios from gigabyte installed Im really at a loss as what i should try next i cant even get into windows at this point to try to enable MSI interrupts any help would be greatly appreciated d0u8l3m-server-diagnostics-20160211-1902.zip Quote Link to comment
ashman70 Posted February 12, 2016 Share Posted February 12, 2016 What PCIe slot is the current video card in? Try changing it to a different slot and see if that helps. Quote Link to comment
Scrapz Posted February 12, 2016 Share Posted February 12, 2016 Enable MSI for interrupts for both your video and audio portions of your GPU (http://lime-technology.com/wiki/index.php/UnRAID_6/VM_Guest_Support#Enable_MSI_for_Interrupts_to_Fix_HDMI_Audio_Support) Quote Link to comment
d0u8l3m Posted February 13, 2016 Author Share Posted February 13, 2016 What PCIe slot is the current video card in? Try changing it to a different slot and see if that helps. I haven't tried this yet ill see if i can get to it today Enable MSI for interrupts for both your video and audio portions of your GPU (http://lime-technology.com/wiki/index.php/UnRAID_6/VM_Guest_Support#Enable_MSI_for_Interrupts_to_Fix_HDMI_Audio_Support) Well after a few restarts i was able to do this i think it may have helped as its not freezing much once im in the VM anymore Now it seems like i have to restart it 2-3 times for it to be fine because on the initial start and restart it will load windows but when i move my mouse it will freeze every few seconds and the mouse jumps around from it being so slow any other tricks i can try to get it working on first boot? Thanks for the help btw =D Quote Link to comment
SpaceInvaderOne Posted February 13, 2016 Share Posted February 13, 2016 please post your xml file Quote Link to comment
d0u8l3m Posted February 13, 2016 Author Share Posted February 13, 2016 Attached Here Windows_VM_XML.txt Quote Link to comment
SpaceInvaderOne Posted February 13, 2016 Share Posted February 13, 2016 Sorry can you also post your pci devices and iommu groups from the tools, system devices. Please post it using the insert code button on the tool bar # just makes it easier to read than a file attachment. so your xml would look like this <domain type='kvm' id='2' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'> <name>Windows Rig</name> <uuid>9e4bbedc-f281-a0d5-4129-c2589968ed39</uuid> <metadata> <vmtemplate name="Custom" icon="windows.png" os="windows"/> </metadata> <memory unit='KiB'>16777216</memory> <currentMemory unit='KiB'>16777216</currentMemory> <memoryBacking> <nosharepages/> <locked/> </memoryBacking> <vcpu placement='static'>6</vcpu> <cputune> <vcpupin vcpu='0' cpuset='1'/> <vcpupin vcpu='1' cpuset='2'/> <vcpupin vcpu='2' cpuset='3'/> <vcpupin vcpu='3' cpuset='5'/> <vcpupin vcpu='4' cpuset='6'/> <vcpupin vcpu='5' cpuset='7'/> </cputune> <resource> <partition>/machine</partition> </resource> <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='6' 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/user/Domains/Windows Rig/vdisk1.img'/> <backingStore/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <alias name='virtio-disk2'/> <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/user/ISOs/en_windows_10_multiple_editions_version_1511_x64_dvd_7223712.iso'/> <backingStore/> <target dev='hda' bus='ide'/> <readonly/> <boot order='2'/> <alias name='ide0-0-0'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/ISOs/virtio-win-0.1.112.iso'/> <backingStore/> <target dev='hdb' bus='ide'/> <readonly/> <alias name='ide0-0-1'/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='usb' index='0'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/> </controller> <controller type='pci' index='0' model='pci-root'> <alias name='pci.0'/> </controller> <controller type='ide' index='0'> <alias name='ide'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/> </controller> <controller type='virtio-serial' index='0'> <alias name='virtio-serial0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:41:26:73'/> <source bridge='br0'/> <target dev='vnet0'/> <model type='virtio'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/0'/> <target port='0'/> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/0'> <source path='/dev/pts/0'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/Windows Rig.org.qemu.guest_agent.0'/> <target type='virtio' name='org.qemu.guest_agent.0' state='disconnected'/> <alias name='channel0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <hostdev mode='subsystem' type='pci' managed='yes'> <driver name='vfio'/> <source> <address domain='0x0000' bus='0x00' slot='0x14' function='0x0'/> </source> <alias name='hostdev0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </hostdev> <memballoon model='virtio'> <alias name='balloon0'/> <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=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=00:03.0,bus=root.1,addr=01.0'/> <qemu:arg value='-device'/> <qemu:arg value='vfio-pci,host=00:1b.0,bus=root.1,addr=02.0'/> </qemu:commandline> </domain> Quote Link to comment
d0u8l3m Posted February 13, 2016 Author Share Posted February 13, 2016 Didn't realize there was a button for that my bad haha here ya go PCI Devices 00:00.0 Host bridge: Intel Corporation 4th Gen Core Processor DRAM Controller (rev 06) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06) 00:02.0 VGA compatible controller: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller (rev 06) 00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06) 00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04) 00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04) 00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 04) 00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04) 00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4) 00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d4) 00:1c.5 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #6 (rev d4) 00:1c.6 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #7 (rev d4) 00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation Z87 Express LPC Controller (rev 04) 00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04) 00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04) 01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 770] (rev a1) 01:00.1 Audio device: NVIDIA Corporation GK104 HDMI Audio Controller (rev a1) 03:00.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev 41) 05:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9172 SATA 6Gb/s Controller (rev 11) 06:00.0 USB controller: Renesas Technology Corp. uPD720202 USB 3.0 Host Controller (rev 02) IOMMU Groups /sys/kernel/iommu_groups/0/devices/0000:00:00.0 /sys/kernel/iommu_groups/1/devices/0000:00:01.0 /sys/kernel/iommu_groups/1/devices/0000:01:00.0 /sys/kernel/iommu_groups/1/devices/0000:01:00.1 /sys/kernel/iommu_groups/2/devices/0000:00:02.0 /sys/kernel/iommu_groups/3/devices/0000:00:03.0 /sys/kernel/iommu_groups/4/devices/0000:00:14.0 /sys/kernel/iommu_groups/5/devices/0000:00:16.0 /sys/kernel/iommu_groups/6/devices/0000:00:19.0 /sys/kernel/iommu_groups/7/devices/0000:00:1a.0 /sys/kernel/iommu_groups/8/devices/0000:00:1b.0 /sys/kernel/iommu_groups/9/devices/0000:00:1c.0 /sys/kernel/iommu_groups/10/devices/0000:00:1c.4 /sys/kernel/iommu_groups/11/devices/0000:00:1c.5 /sys/kernel/iommu_groups/12/devices/0000:00:1c.6 /sys/kernel/iommu_groups/13/devices/0000:00:1d.0 /sys/kernel/iommu_groups/14/devices/0000:00:1f.0 /sys/kernel/iommu_groups/14/devices/0000:00:1f.2 /sys/kernel/iommu_groups/14/devices/0000:00:1f.3 /sys/kernel/iommu_groups/15/devices/0000:03:00.0 /sys/kernel/iommu_groups/16/devices/0000:05:00.0 /sys/kernel/iommu_groups/17/devices/0000:06:00.0 Quote Link to comment
d0u8l3m Posted February 15, 2016 Author Share Posted February 15, 2016 any idea guys? Still dealing with constant freezing and restarts Quote Link to comment
SpaceInvaderOne Posted February 15, 2016 Share Posted February 15, 2016 Problem looks like your gpu not alone in its own iommu group /sys/kernel/iommu_groups/1/devices/0000:00:01.0 /sys/kernel/iommu_groups/1/devices/0000:01:00.0 /sys/kernel/iommu_groups/1/devices/0000:01:00.1 Try the PCIe ACS Override set to yes and see if that sets the gpu in its owm iommu group. hope that helps Quote Link to comment
d0u8l3m Posted February 16, 2016 Author Share Posted February 16, 2016 Well after doing that the gpu and its associated audio are still in a single group but im still having issues =[ Quote Link to comment
bungee91 Posted February 16, 2016 Share Posted February 16, 2016 You don't need to isolate the bridge, you can remove the ACS override option (if you did, this would have never worked at all). You can attempt to pass the rom file for the card (see the wiki), this can help with certain cards. If not, you may want to search and see if others have had issues or success with the 770, specifically your make model (if there is enough data | it can actually make a difference). This will help you to make the best decision moving forward. It is possible that this particular card does not work correctly virtualized, it is an unfortunate occurrence, but very much a reality here. If so, it is better to get a different card, and not have the issues you're experiencing (I started with multiple cards that had similar issues that I no longer own). Quote Link to comment
d0u8l3m Posted February 17, 2016 Author Share Posted February 17, 2016 You don't need to isolate the bridge, you can remove the ACS override option (if you did, this would have never worked at all). You can attempt to pass the rom file for the card (see the wiki), this can help with certain cards. If not, you may want to search and see if others have had issues or success with the 770, specifically your make model (if there is enough data | it can actually make a difference). This will help you to make the best decision moving forward. It is possible that this particular card does not work correctly virtualized, it is an unfortunate occurrence, but very much a reality here. If so, it is better to get a different card, and not have the issues you're experiencing (I started with multiple cards that had similar issues that I no longer own). well i guess ill turn acs override off then. From what ive read on here it looks like people are running 770s fine, so im not sure whats going on. I am getting a 980ti soon anyways though since i just got two more monitors to run nvidia surround so i guess ill post an update when i get that. I might just do a complete fresh install of windows and reconfigure my vm. Any tips and tricks this time around to make sure i dont have issues? Like for instance it looks like the Q35 chipset implementation is far superior to the i440 so would it be better to use that? and which bios would be the better one to use. Im curious as to what settings would be the most stable and give me the closest native performance i can get Thanks! Quote Link to comment
bungee91 Posted February 17, 2016 Share Posted February 17, 2016 440fx is the recommended Windows chipset, Q35 for Linux VM's. I know that 6.2 (whenever we actually SEE that!) has some upgrades for VFIO/QEMU that could be beneficial. OVMF/UEFI is recommended, however with 6.1.8, SeaBIOS may be less problematic (dependent on the card/hardware). For my use case, I have 4 VM's, all windows, all SeaBIOS (i440FX) without any real issue (I'm sure I could bitch about something, but all 4 are up at all times(typing on one now)). If you were reinstalling Windows now, OVMF is certainly recommended though, so keep that in mind (and the default moving forward). You can also try the Windows default drivers, as opposed to the Nvidia ones, however that is certainly not preferred, and shouldn't be needed if able to resolve the reason(s) for your issues. Have you tried passing the rom for the card? The wiki explains how to do this, and may help with stability. Quote Link to comment
bungee91 Posted February 17, 2016 Share Posted February 17, 2016 Since we were discussing 440FX vs Q35, I wanted to add a post with some good information that I just stumbled upon (bottom section). "The VGA space itself is a shared resource, so every time the guest tries to access VGA space it gets gets trapped into QEMU, which forwards the request to VFIO, which negotiates with the VGA arbiter and adjusts chipset routing as necessary. Therefore VGA mode is bearable when there's one consumer, once you start getting contention and the arbiter needs to switch routing on each access, this can certainly become a bottleneck. However, even when using a legacy BIOS with x-vga, those VGA accesses *only* occur during early boot or if you're using non-accelerated drivers, so the window for contention is very small. Once the guest is up and running, access to legacy VGA space ceases, and there's no performance difference between legacy BIOS and UEFI that I'm aware of. FWIW, it's also a misconception that Q35 based VMs provide some sort of performance advantage vs 440FX. The chipset is virtual, it has no bearing on performance. Thanks, Alex" https://www.redhat.com/archives/vfio-users/2016-February/msg00036.html Quote Link to comment
d0u8l3m Posted February 18, 2016 Author Share Posted February 18, 2016 Thanks for all the info. My 980ti should be here tomorrow and im gonna remake a new vm. Ill try to follow your recommended settings and hope my issues are resolved. Will update once its running Quote Link to comment
hrv231 Posted March 16, 2018 Share Posted March 16, 2018 On 2/17/2016 at 8:31 PM, d0u8l3m said: Thanks for all the info. My 980ti should be here tomorrow and im gonna remake a new vm. Ill try to follow your recommended settings and hope my issues are resolved. Will update once its running Did you receive the 980ti and did it work fine? I'm having the same issue with my GTX660Ti , soon my trial with unraid will expire and I will have to move to Windows if I don't make my card to work well with my VM. The card passthrough fine using the "rom file = " commmand for UEFI, but as soon as I install the latest version or different versions of the driver, the VM OS gets really slow, the mouse jumps and the Windows 10 becomes a turtle, really crazy! I tried installing again a VM and as soon as I install the drivers it happens the same all over again. I know the card is old, and I'm using unRAID 6.4.1, but still.. if the card works with the rom file command, then the rest should stay the same as if it is native right? Then why is this problem happening? I have tried enable and disable Hyper-V, enable and disable ACS override, different CPU core pairs and nothing helps. Please someone share a light on this because soon I will have to make a decision about this. Thanks. Quote Link to comment
Recommended Posts
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.