Windows 10 crashing/GPU error 43 again


d.bech

Recommended Posts

I had installed the recent unraid update but hadn't rebooted yet as I was mid editing a video. Everything was running normally. There was also a windows update waiting to be applied.

 

After rebooting I also decided to add some of my shares as HDDs into my VM.

 

I they re added my USB devices which don't show up in the gui via XML and re added a fix from a previous thread which got my GPU working (a nvidia GTX970) found here https://lime-technology.com/forum/index.php?topic=45486

 

I then booted my VM and it got stuck in a crash loop, most of the time it would just crash other times it would BSOD with the error UNHANDLED_THREAD_EXCEPTION.

 

So I tried removing all the new drives I added and it was still the same.

 

So next I took it all the way back to just the stock XML and it crashed a couple of times and then booted, I couldn't do anything as one of the USB devices I add manually is my keyboard. I then shut it down added my usb devices back in and it crashed a little then booted up. It is now very laggy but I don't see any resources within windows that are maxing out checking my stats in unRAID I am almost always very close to maxing out the memory  as I give 10 gb of it to the VM and leave 6 to unRAID.

 

So I tried giving more memory to unraid 8gb to the VM 8gb to unRAID. Still the same.

 

Next I rolled back the windows update. Still the same.

 

I can't imagine the unRAID update would cause this so I haven't rolled it back yet but anyone have any ideas? I had a very stable VM yesterday and now I have a laggy mess

 

VM XML

<domain type='kvm' id='38' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>
  <name>Windows 10</name>
  <uuid>fc8280c4-7269-a6dd-ebdf-41fd12e5cf5e</uuid>
  <description>Windows 10 64bit</description>
  <metadata>
    <vmtemplate name="Custom" icon="windows.png" os="windows"/>
  </metadata>
  <memory unit='KiB'>8388608</memory>
  <currentMemory unit='KiB'>8388608</currentMemory>
  <memoryBacking>
    <nosharepages/>
    <locked/>
  </memoryBacking>
  <vcpu placement='static'>4</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='1'/>
    <vcpupin vcpu='2' cpuset='2'/>
    <vcpupin vcpu='3' cpuset='3'/>
  </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='4' 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/cache/boot/Windows 10/vdisk1.img'/>
      <backingStore/>
      <target dev='hda' bus='virtio'/>
      <boot order='1'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </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='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:ce:26:89'/>
      <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 10.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='usb' managed='yes'>
      <source>
        <vendor id='0x045e'/>
        <product id='0x02e6'/>
        <address bus='1' device='4'/>
      </source>
      <alias name='hostdev0'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x17a0'/>
        <product id='0x0303'/>
        <address bus='1' device='24'/>
      </source>
      <alias name='hostdev1'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <vendor id='0x046d'/>
        <product id='0xc52b'/>
        <address bus='1' device='5'/>
      </source>
      <alias name='hostdev2'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <address bus='1' device='2'/>
      </source>
      <alias name='hostdev3'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <address bus='1' device='3'/>
      </source>
      <alias name='hostdev4'/>
    </hostdev>
    <hostdev mode='subsystem' type='usb' managed='yes'>
      <source>
        <address bus='1' device='6'/>
      </source>
      <alias name='hostdev5'/>
    </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=00:1b.0,bus=root.1,addr=01.0'/>
    <qemu:arg value='-device'/>
    <qemu:arg value='vfio-pci,host=01:00.1,bus=root.1,addr=00.1'/>
  </qemu:commandline>
</domain>

 

My diag file exceeds the size limit of attachments so here it is: http://puu.sh/mQ9cs/bf243fdc14.zip

Link to comment

I changed my clock to this and it's stable again but my GPU has gone back to not working with code 43 as in https://lime-technology.com/forum/index.php?topic=45486

 

<clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>

 

I'm guessing based on the name 'hypervclock' that this is using hyperv which stopps my GPU from working so I think I need to change the clock just not to this. Any ideas?

 

 

Link to comment

I changed my clock to this and it's stable again but my GPU has gone back to not working with code 43 as in https://lime-technology.com/forum/index.php?topic=45486

 

<clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>

 

I'm guessing based on the name 'hypervclock' that this is using hyperv which stopps my GPU from working so I think I need to change the clock just not to this. Any ideas?

I removed the line that contained hyperv and it went right back to crashing a bunch then booting into a laggy VM.

 

So maybe it's not the clock and its just that that particular line was putting it back into hyper v mode which works fine but my GPU doesn't like it :/

Link to comment

I changed my clock to this and it's stable again but my GPU has gone back to not working with code 43 as in https://lime-technology.com/forum/index.php?topic=45486

 

<clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>

 

I'm guessing based on the name 'hypervclock' that this is using hyperv which stopps my GPU from working so I think I need to change the clock just not to this. Any ideas?

I removed the line that contained hyperv and it went right back to crashing a bunch then booting into a laggy VM.

 

So maybe it's not the clock and its just that that particular line was putting it back into hyper v mode which works fine but my GPU doesn't like it :/

However going back to the stock clock

 

<clock offset='localtime'>
    <timer name='rtc' tickpolicy='catchup'/>
    <timer name='pit' tickpolicy='delay'/>
    <timer name='hpet' present='no'/>
</clock>

 

The VM won't boot its just stuck in the crash loop. I guess I'll try messing with it until something happens or I find more information on the parameters

Link to comment

FWIW, I use this to allow me to remote into my windows Virtual Machines, which often lets me 'fix' weird issues or do maintenance.

 

https://github.com/binarymaster/rdpwrap

 

It can be set to allow you to 'shadow' into the machine, so the family can be watching a movie on the HTPC VM, and I can remote into it, and launch MakeMKV to convert a new download, and they never know it's happening.

 

It also lets me get into a malfunctioning VM to try to get it working again.

Link to comment

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.