berta123 Posted December 3, 2022 Share Posted December 3, 2022 I recently migrated my unraid system over to new hardware (Intel i9-13900k from old threadripper). I am trying to get WSL2 running in a windows VM and it seems every time I enable Virtual Machine Platform the VM refuses to boot and goes to Startup Repair. Frustratingly it won't give me the safe boot option or allow me to restore from a restore point so to troubleshoot my only option is to continually reinstall the OS. I've tried Q35 and i440fx. I have kvm-intel.nested=1 in my syslinux config. I'm at a total loss. Any ideas? Here is my config: <?xml version='1.0' encoding='UTF-8'?> <domain type='kvm' id='8'> <name>matt-ws-vm</name> <uuid>59d27f82-1b9f-b464-d414-569246da5e34</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 11" icon="windows11.png" os="windowstpm"/> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</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> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-7.1'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader> <nvram>/etc/libvirt/qemu/nvram/59d27f82-1b9f-b464-d414-569246da5e34_VARS-pure-efi-tpm.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv mode='custom'> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='8' threads='2'/> <cache mode='passthrough'/> </cpu> <clock offset='localtime'> <timer name='hypervclock' present='yes'/> <timer name='hpet' present='no'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/domains/matt-ws-vm/vdisk1.img' index='3'/> <backingStore/> <target dev='hdc' bus='virtio'/> <boot order='1'/> <alias name='virtio-disk2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/Win11_22H2_English_x64v1.iso' index='2'/> <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.225-2.iso' index='1'/> <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' model='ich9-ehci1'> <alias name='usb'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <alias name='usb'/> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <alias name='usb'/> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <alias name='usb'/> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' 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='0x04' function='0x0'/> </controller> <interface type='bridge'> <mac address='52:54:00:73:2b:d0'/> <source bridge='br0'/> <target dev='vnet7'/> <model type='virtio-net'/> <alias name='net0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <source path='/dev/pts/1'/> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> <alias name='serial0'/> </serial> <console type='pty' tty='/dev/pts/1'> <source path='/dev/pts/1'/> <target type='serial' port='0'/> <alias name='serial0'/> </console> <channel type='unix'> <source mode='bind' path='/var/lib/libvirt/qemu/channel/target/domain-8-matt-ws-vm/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> <input type='tablet' bus='usb'> <alias name='input0'/> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'> <alias name='input1'/> </input> <input type='keyboard' bus='ps2'> <alias name='input2'/> </input> <tpm model='tpm-tis'> <backend type='emulator' version='2.0' persistent_state='yes'/> <alias name='tpm0'/> </tpm> <graphics type='vnc' port='5901' autoport='yes' websocket='5701' listen='0.0.0.0' keymap='en-us'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <alias name='video0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/> </video> <memballoon model='virtio'> <alias name='balloon0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </memballoon> </devices> <seclabel type='dynamic' model='dac' relabel='yes'> <label>+0:+100</label> <imagelabel>+0:+100</imagelabel> </seclabel> </domain> Quote Link to comment
Jairus Christensen Posted December 3, 2022 Share Posted December 3, 2022 I have the same issue! Hyper-V does not work in both my Windows 10 and Windows 11 boxes and will cause both to not boot if installed. Because WSL1 doesn't use Hyper-V, it will work fine, but WSL2 and Docker Desktop break my installs. I've intentionally tried this on VMs that are the Unraid default for Windows 10 and 11 with the GUI drop-down for "Hyper-V" set to "Yes". So, I'm not convinced it works as intended. Before you ask, yes, I have the kernel module installed and I have already tried adding the following line into the CPU portion of my config. <feature policy='require' name='vmx'/> Quote Link to comment
VladoPortos Posted May 26, 2023 Share Posted May 26, 2023 Any news, I have the exact same issue... docker install just kills the VM to not be able to boot. 1 Quote Link to comment
Jairus Christensen Posted May 26, 2023 Share Posted May 26, 2023 Unfortunately, no. I haven't been able to get this to work. Quote Link to comment
mackid1993 Posted July 18, 2023 Share Posted July 18, 2023 Sorry to dig up this old thread, I've been following it for a while and was able to find a solution for my i7 12700K with the help of this thread: https://superuser.com/questions/1431148/kvm-nested-virtualbox-windows-guest/1589286#1589286 Try modifying this section of your XML: <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='8' threads='2'/> <cache mode='passthrough'/> </cpu> Change it to this, just be sure to keep your <topology> line the same to not change the core count: <cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-noTSX-IBRS</model> <topology sockets='1' dies='1' cores='20' threads='1'/> <feature policy='disable' name='hypervisor'/> <feature policy='require' name='vmx'/> <feature policy='disable' name='mpx'/> </cpu> I also had to add <feature policy='disable' name='mpx'/> which wasn't in the superuser post. I was getting an error when booting my VM so there may be some modification needed based on CPU model. With this I was able to get WSL2 working! I'm not sure if this will greatly impact performance. I'm hoping someone more knowledgeable like @SimonF may be willing to comment as I've found him to be all knowing when it comes to Unraid and VMs! 1 Quote Link to comment
VladoPortos Posted July 18, 2023 Share Posted July 18, 2023 (edited) 8 hours ago, mackid1993 said: Sorry to dig up this old thread, I've been following it for a while and was able to find a solution for my i7 12700K with the help of this thread: https://superuser.com/questions/1431148/kvm-nested-virtualbox-windows-guest/1589286#1589286 Try modifying this section of your XML: <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='8' threads='2'/> <cache mode='passthrough'/> </cpu> Change it to this, just be sure to keep your <topology> line the same to not change the core count: <cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-noTSX-IBRS</model> <topology sockets='1' dies='1' cores='20' threads='1'/> <feature policy='disable' name='hypervisor'/> <feature policy='require' name='vmx'/> <feature policy='disable' name='mpx'/> </cpu> I also had to add <feature policy='disable' name='mpx'/> which wasn't in the superuser post. I was getting an error when booting my VM so there may be some modification needed based on CPU model. With this I was able to get WSL2 working! I'm not sure if this will greatly impact performance. I'm hoping someone more knowledgeable like @SimonF may be willing to comment as I've found him to be all knowing when it comes to Unraid and VMs! This works, the VM starts, but boy the CPU is not liking it, its constant 80 to 99% Edited July 18, 2023 by VladoPortos spelling Quote Link to comment
mackid1993 Posted July 18, 2023 Share Posted July 18, 2023 (edited) My CPU usage is fairly low. I also ran Geekbench and performance was close to baseline bare metal 12700k. Edit: To test I rolled everything back and ran Geekbench again. I actually got a lower score with the default XML for some reason. Edited July 18, 2023 by mackid1993 Quote Link to comment
SimonF Posted July 18, 2023 Share Posted July 18, 2023 17 hours ago, mackid1993 said: Sorry to dig up this old thread, I've been following it for a while and was able to find a solution for my i7 12700K with the help of this thread: https://superuser.com/questions/1431148/kvm-nested-virtualbox-windows-guest/1589286#1589286 Try modifying this section of your XML: <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='8' threads='2'/> <cache mode='passthrough'/> </cpu> Change it to this, just be sure to keep your <topology> line the same to not change the core count: <cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-noTSX-IBRS</model> <topology sockets='1' dies='1' cores='20' threads='1'/> <feature policy='disable' name='hypervisor'/> <feature policy='require' name='vmx'/> <feature policy='disable' name='mpx'/> </cpu> I also had to add <feature policy='disable' name='mpx'/> which wasn't in the superuser post. I was getting an error when booting my VM so there may be some modification needed based on CPU model. With this I was able to get WSL2 working! I'm not sure if this will greatly impact performance. I'm hoping someone more knowledgeable like @SimonF may be willing to comment as I've found him to be all knowing when it comes to Unraid and VMs! I would expect to see more load as the cpu is going to be emulated rather than passthru. But would need to test. Quote Link to comment
mackid1993 Posted July 18, 2023 Share Posted July 18, 2023 (edited) 2 hours ago, SimonF said: I would expect to see more load as the cpu is going to be emulated rather than passthru. But would need to test. I'm not really seeing a difference. I also ran comparisons with Geekbench and the difference in performance seems like none. I got a lower score when using host passthrough rather than emulated which was probably just by chance. If I am correct maybe this can be something that can be added as an option in the GUI down the line. I have WSL working fine and my server is sitting at idle right now with the VM running in this configuration. I'm not home right now so it's got to be 80 degrees Farenheit in my apartment with the AC off and my CPU is sitting at 37 degrees celcius currently. From my testing I see no difference other than nested virtualization working. If there is anything I can do to help test performance let me know! Edit: Perhaps if this is a viable solution it may be helpful to make a more visible thread to help other users. I've seen a bunch of threads on this issue and it may be helpful to consolidate the discussion into one place. Edited July 18, 2023 by mackid1993 Quote Link to comment
mackid1993 Posted July 31, 2023 Share Posted July 31, 2023 I got around to doing a bit more testing and there definitely is a performance hit from this. Quote Link to comment
ArchonX Posted January 21 Share Posted January 21 是否有解决方案能够让WSL2在Windows 11 VM 中运行?13900K遇到了同样的问题 Quote Link to comment
RajanPatel Posted February 6 Share Posted February 6 (edited) I recently got a Razer Blade (Razer Blade 17 _2022_ - RZ09-0423) which shipped with a 12th Gen Intel® Core™ i9-12900H × 20. Using <model fallback='allow'>Skylake-Client-noTSX-IBRS</model> was not going to work. I ran virsh capabilities and learned that I have a <model>Broadwell-noTSX-IBRS</model> Before I installed my Windows 11 VM under KVM in Ubuntu 22.04.3, I edited the CPU XML configuration, and removed host-passthrough and manually used just this. Note: "cores=8" because the number of vCPUs allocated to my Windows 11 machine was 8. You will want these numbers to match, or Virtual Machine Manager will complain. <cpu mode="custom" match="exact" check="partial"> <model fallback="allow">Broadwell-noTSX-IBRS</model> <topology sockets="1" dies="1" cores="8" threads="1"/> <feature policy="disable" name="hypervisor"/> <feature policy="require" name="vmx"/> <feature policy="disable" name="mpx"/> </cpu> This worked with great success. Windows 11 installed successfully, and I got an Ubuntu WSL 2 instances running inside my WIndows 11 VM. Attempting to change the CPU XML configurations in Virtual Machine Manager AFTER installing Windows 11 was a fool's errand. The performance hit may likely be remediated by appending the other CPU features as outlined in virsh capabilities. EDIT: I was able to simplify my CPU configuration to be just this: <cpu mode="custom" match="exact" check="partial"> <model fallback="allow">Broadwell-noTSX-IBRS</model> <feature policy="require" name="vmx"/> </cpu> Edited February 6 by RajanPatel Quote Link to comment
rvijay007 Posted April 30 Share Posted April 30 On 2/5/2024 at 7:57 PM, RajanPatel said: EDIT: I was able to simplify my CPU configuration to be just this: <cpu mode="custom" match="exact" check="partial"> <model fallback="allow">Broadwell-noTSX-IBRS</model> <feature policy="require" name="vmx"/> </cpu> I used this and my Windows11 VM finally booted to finish the Ubuntu 24.04 LTS WSL installation. However, when I checked the VM definition, it seems to have auto changed this section into the following: ``` <cpu mode='custom' match='exact' check='full'> <model fallback='forbid'>Broadwell-noTSX-IBRS</model> <topology sockets='1' dies='1' cores='8' threads='2'/> <feature policy='require' name='vmx'/> <feature policy='require' name='vme'/> <feature policy='disable' name='pcid'/> <feature policy='require' name='f16c'/> <feature policy='require' name='rdrand'/> <feature policy='require' name='hypervisor'/> <feature policy='require' name='arat'/> <feature policy='require' name='xsaveopt'/> <feature policy='require' name='abm'/> </cpu> ``` which seems to the be opposite of the intended effect. I'm running an Intel 13900K processor; does this have anything to do with this re-definition? Quote Link to comment
dboris Posted July 13 Share Posted July 13 (edited) On 7/18/2023 at 2:19 AM, mackid1993 said: Sorry to dig up this old thread, I've been following it for a while and was able to find a solution for my i7 12700K with the help of this thread: https://superuser.com/questions/1431148/kvm-nested-virtualbox-windows-guest/1589286#1589286 Try modifying this section of your XML: <cpu mode='host-passthrough' check='none' migratable='on'> <topology sockets='1' dies='1' cores='8' threads='2'/> <cache mode='passthrough'/> </cpu> Change it to this, just be sure to keep your <topology> line the same to not change the core count: <cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-noTSX-IBRS</model> <topology sockets='1' dies='1' cores='20' threads='1'/> <feature policy='disable' name='hypervisor'/> <feature policy='require' name='vmx'/> <feature policy='disable' name='mpx'/> </cpu> I also had to add <feature policy='disable' name='mpx'/> which wasn't in the superuser post. I was getting an error when booting my VM so there may be some modification needed based on CPU model. With this I was able to get WSL2 working! I'm not sure if this will greatly impact performance. I'm hoping someone more knowledgeable like @SimonF may be willing to comment as I've found him to be all knowing when it comes to Unraid and VMs! This fixed the VM not booting. However I was attempting to do some nested virtualisation and it's just not possible. Edited July 13 by dboris Quote Link to comment
mackid1993 Posted July 14 Share Posted July 14 It's not possible with Windows. The second you enable hyper-v the VM doesn't boot. You have to go in to recovery and run dism /Disable-Feature /FeatureName:Microsoft-Hyper-V /Image:C:\ at a command prompt. Quote Link to comment
SimonF Posted July 14 Share Posted July 14 I have the following I can run on my Dev/Test machine. Unraid host Unraid VM running a Linux ArchBang Win 2k6 with Hyperv and Linux. Prox with Linux Also can run windows with WSL. 1 Quote Link to comment
mackid1993 Posted July 14 Share Posted July 14 2 hours ago, SimonF said: I have the following I can run on my Dev/Test machine. Unraid host Unraid VM running a Linux ArchBang Win 2k6 with Hyperv and Linux. Prox with Linux Also can run windows with WSL. Do you have an Intel CPU? I've been trying to run WSL on a 12700k for so long now. Is this working now in 7.0.0 beta2? Quote Link to comment
SimonF Posted July 14 Share Posted July 14 12 minutes ago, mackid1993 said: Do you have an Intel CPU? I've been trying to run WSL on a 12700k for so long now. Is this working now in 7.0.0 beta2? Yes I have a 12600K in my test server, Was running before beta2 attached is the XML. <domain type='kvm'> <name>Windows 11 WSL</name> <uuid>8008103e-ccc2-a237-89e3-ac4cfc28326e</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 11" icon="windows11.png" os="windowstpm" storage="vmpoolzfs"/> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>4</vcpu> <cputune> <vcpupin vcpu='0' cpuset='8'/> <vcpupin vcpu='1' cpuset='9'/> <vcpupin vcpu='2' cpuset='10'/> <vcpupin vcpu='3' cpuset='11'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-8.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader> <nvram>/etc/libvirt/qemu/nvram/8008103e-ccc2-a237-89e3-ac4cfc28326e_VARS-pure-efi-tpm.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv mode='custom'> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vpindex state='on'/> <synic state='on'/> <stimer state='on'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-noTSX-IBRS</model> <topology sockets='1' dies='1' clusters='1' cores='4' threads='1'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='hypervisor'/> <feature policy='require' name='vmx'/> </cpu> <clock offset='localtime'> <timer name='hpet' present='no'/> <timer name='hypervclock' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/domains2/Windows 11 WSL/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <serial>vdisk1</serial> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/Win11_22H2_EnglishInternational_x64v2.iso'/> <target dev='hda' bus='sata'/> <readonly/> <boot order='2'/> <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.96.iso'/> <target dev='hdb' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='pci' index='0' model='pci-root'/> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:ef:66:65'/> <source bridge='br0'/> <model type='virtio-net'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <tpm model='tpm-tis'> <backend type='emulator' version='2.0' persistent_state='yes'/> </tpm> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' sharePolicy='ignore'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </memballoon> </devices> </domain> Quote Link to comment
mackid1993 Posted July 14 Share Posted July 14 7 minutes ago, SimonF said: Yes I have a 12600K in my test server, Was running before beta2 attached is the XML. <domain type='kvm'> <name>Windows 11 WSL</name> <uuid>8008103e-ccc2-a237-89e3-ac4cfc28326e</uuid> <metadata> <vmtemplate xmlns="unraid" name="Windows 11" icon="windows11.png" os="windowstpm" storage="vmpoolzfs"/> </metadata> <memory unit='KiB'>8388608</memory> <currentMemory unit='KiB'>8388608</currentMemory> <memoryBacking> <nosharepages/> </memoryBacking> <vcpu placement='static'>4</vcpu> <cputune> <vcpupin vcpu='0' cpuset='8'/> <vcpupin vcpu='1' cpuset='9'/> <vcpupin vcpu='2' cpuset='10'/> <vcpupin vcpu='3' cpuset='11'/> </cputune> <os> <type arch='x86_64' machine='pc-i440fx-8.2'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/qemu/ovmf-x64/OVMF_CODE-pure-efi-tpm.fd</loader> <nvram>/etc/libvirt/qemu/nvram/8008103e-ccc2-a237-89e3-ac4cfc28326e_VARS-pure-efi-tpm.fd</nvram> </os> <features> <acpi/> <apic/> <hyperv mode='custom'> <relaxed state='on'/> <vapic state='on'/> <spinlocks state='on' retries='8191'/> <vpindex state='on'/> <synic state='on'/> <stimer state='on'/> <vendor_id state='on' value='none'/> </hyperv> </features> <cpu mode='custom' match='exact' check='partial'> <model fallback='allow'>Skylake-Client-noTSX-IBRS</model> <topology sockets='1' dies='1' clusters='1' cores='4' threads='1'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='hypervisor'/> <feature policy='require' name='vmx'/> </cpu> <clock offset='localtime'> <timer name='hpet' present='no'/> <timer name='hypervclock' present='yes'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/local/sbin/qemu</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='writeback'/> <source file='/mnt/user/domains2/Windows 11 WSL/vdisk1.img'/> <target dev='hdc' bus='virtio'/> <serial>vdisk1</serial> <boot order='1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/> </disk> <disk type='file' device='cdrom'> <driver name='qemu' type='raw'/> <source file='/mnt/user/isos/Win11_22H2_EnglishInternational_x64v2.iso'/> <target dev='hda' bus='sata'/> <readonly/> <boot order='2'/> <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.96.iso'/> <target dev='hdb' bus='sata'/> <readonly/> <address type='drive' controller='0' bus='0' target='0' unit='1'/> </disk> <controller type='pci' index='0' model='pci-root'/> <controller type='sata' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/> </controller> <controller type='virtio-serial' index='0'> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </controller> <controller type='usb' index='0' model='ich9-ehci1'> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/> </controller> <controller type='usb' index='0' model='ich9-uhci1'> <master startport='0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/> </controller> <controller type='usb' index='0' model='ich9-uhci2'> <master startport='2'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/> </controller> <controller type='usb' index='0' model='ich9-uhci3'> <master startport='4'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/> </controller> <interface type='bridge'> <mac address='52:54:00:ef:66:65'/> <source bridge='br0'/> <model type='virtio-net'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> <input type='tablet' bus='usb'> <address type='usb' bus='0' port='1'/> </input> <input type='mouse' bus='ps2'/> <input type='keyboard' bus='ps2'/> <tpm model='tpm-tis'> <backend type='emulator' version='2.0' persistent_state='yes'/> </tpm> <graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' sharePolicy='ignore'> <listen type='address' address='0.0.0.0'/> </graphics> <audio id='1' type='none'/> <video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x1a' function='0x0'/> </video> <memballoon model='virtio'> <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/> </memballoon> </devices> </domain> Ah so the key is <model fallback='allow'>Skylake-Client-noTSX-IBRS</model> does that impact performance? 1 Quote Link to comment
SimonF Posted July 14 Share Posted July 14 11 minutes ago, mackid1993 said: Ah so the key is <model fallback='allow'>Skylake-Client-noTSX-IBRS</model> does that impact performance? Not noticed, but its only a test machine so never stressed it. 1 Quote Link to comment
wacko37 Posted July 19 Share Posted July 19 (edited) Hi Team, just wanted to say thankyou for all your efforts here on this thread, as its helped me get UWP version of Roblox to work on my VM, really much appriecated. Info on my fix found here: Edited July 19 by wacko37 Quote Link to comment
mackid1993 Posted July 19 Share Posted July 19 13 hours ago, wacko37 said: Hi Team, just wanted to say thankyou for all your efforts here on this thread, as its helped me get UWP version of Roblox to work on my VM, really much appriecated. Info on my fix found here: I wonder if we could emulate a newer CPU. Emulating Skylake may cause issues with Windows 11. Quote Link to comment
SimonF Posted July 19 Share Posted July 19 10 minutes ago, mackid1993 said: I wonder if we could emulate a newer CPU. Emulating Skylake may cause issues with Windows 11. Current options available. root@computenode:~# virsh cpu-models x86_64 486 pentium pentium2 pentium3 pentiumpro coreduo n270 core2duo qemu32 kvm32 cpu64-rhel5 cpu64-rhel6 qemu64 kvm64 Conroe Penryn Nehalem Nehalem-IBRS Westmere Westmere-IBRS SandyBridge SandyBridge-IBRS IvyBridge IvyBridge-IBRS Haswell-noTSX Haswell-noTSX-IBRS Haswell Haswell-IBRS Broadwell-noTSX Broadwell-noTSX-IBRS Broadwell Broadwell-IBRS Skylake-Client Skylake-Client-IBRS Skylake-Client-noTSX-IBRS Skylake-Server Skylake-Server-IBRS Skylake-Server-noTSX-IBRS Cascadelake-Server Cascadelake-Server-noTSX Icelake-Client Icelake-Client-noTSX Icelake-Server Icelake-Server-noTSX Cooperlake Snowridge SapphireRapids athlon phenom Opteron_G1 Opteron_G2 Opteron_G3 Opteron_G4 Opteron_G5 EPYC EPYC-IBPB EPYC-Rome EPYC-Milan EPYC-Genoa Dhyana root@computenode:~# Quote Link to comment
wacko37 Posted July 20 Share Posted July 20 10 hours ago, mackid1993 said: I wonder if we could emulate a newer CPU. Emulating Skylake may cause issues with Windows 11. I didn't realise that would be an issue for Windows 11, although I really have very limited knowledge as to how this all works under the hood. Your comment has just made me realise my 11700k is Rocket lake not Skylake, I never thought to check as the “virsh capabilities” CMD brought up Skylake. Would it be worth trying the Icelake-client? Quote Link to comment
wacko37 Posted July 28 Share Posted July 28 On 7/20/2024 at 4:51 AM, mackid1993 said: I wonder if we could emulate a newer CPU. Emulating Skylake may cause issues with Windows 11. Sadly this seems to be the case, as I'm having severe stability issues on the VM when gaming with this "custom" CPU passthrough method. I'm not exactly sure why but after 20+ mins of solid gaming without any FPS drops / lagging the VM starts to lag hard, it never locks up totally but FPS drop to 10 FPS. Sometimes the VM recovers after 1min but it quickly drops to 10fps again, other times the FPS drop and then starts bouncing between 10 to 60fps ( have set a global limit of 60fps ) but it never fully recovers until a fully shutdown and reboot of the VM. There seems to be no specific reason for it, as the VM was working absolutely perfectly with heavy loads before the FPS drops. Changing settings within the game has zero effect on this outcome or how the VM runs in general. I've mainly been using GTA5 to test but it doesn't matter the game at all. I reverted back to the standard CPU passthrough mode applied by default in Unraid to test. I can see the moments where the VM starts to struggle but it always recovers quickly and FPS come back up, settings within the game most definitely have an effect on stability in this type of CPU passthrough. It's almost as if certain features of the CPU are not being enabled correctly as @mackid1993 has pointed out, but I don't know how to go about proving that theory. The only reason I'm using a custom CPU passthrough is because its the only thing that allows Roblox to be played within a VM as mentioned in my previous comment. Ive exhausted all other avenues to achieve this and I have no idea why the custom CPU passthrough allows Roblox to work but it does. Sadly that brings other no serious issues along with it. Attached are both XMLs in .txt files As always any advice or knowledge is much appreciated. 2024-07-20 - Windows 11 - Gaming VM - Custom CPU passthrough.txt 2024-07-27 - Windows 11 - Gaming VM - XML - Default CPU passthrough.txt 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.