Hi there,
first of all, my Host and VM Setup
Host: Windows 11 Pro (fresh install, nothing except drivers), AMD Ryzen 7 4800H (8 Cores, 16 Threads) :: 64GB RAM
Guest: Windows 10 Enterprise (existing VM) 8 Cores :: 32GB RAM
I previously had Archlinux on my Host and with that, and VMware Workstation, the VM run at pretty much native speed. I could put it into Fullscreen and not even notice, its an VM. I could watch YouTube videos in 4K fluent, games worked fine, everything just fine.
But because there is no Unity Mode on Linux, i wanted to use Windows 11 on the Host so i could use the Unity Mode on Windows 10.
Now the Windows 11 Hosts works fine, everything is performing as it should but VMware is extremely slow. The application itself (opening the VM settings takes like 5 Seconds or so) but also the VM.
When i start the VM, it takes roughly 15 seconds until the BIOS shows up and another 30 Seconds until Windows is bootet.
For comparison, the whole boot process took 15 seconds in total on the Linux host.
I am using the exact same VM i used in Linux, when opening it he asked me if i copied it or moved it, i said moved and thats it.
And the VM itself is very slow. Moving windows around is lagging, watching YouTube videos is pretty much impossible and so on.
I read that some issues appear on Hyper-V enabled hosts, but this is not an Hyper-V Enabled host (Hyper-V is not installed)
I already changed the setting that VMware is putting the VM completely into RAM and not using the page file which helped a bit, but its still a much worse performance than on the Linux host.
Hi,
Your host is running in user level mode (a.k.a. under a hypervisor)
2022-08-10T17:07:16.875Z In(05) vmx Monitor Mode: ULM
ULM is User Level Mode a.k.a. Hyper-V
CPL0 is ring 0, a.k.a. no hypervisor
In order to turn off Hyper-V mode, run the following command at the host in windows command-line with Administrator privileges:
bcdedit /set hypervisorlaunchtype off
Reboot the system to activate your changes.
If you want to go back to Hyper-V mode again, then you can enable it like this:
bcdedit /set hypervisorlaunchtype auto
See also:
Note that you also might have to disable Memory Integrity.
Windows Security -> Device Security -> Core Isolation details
Don't forget to reboot the host after making any of these changes.
--
Wil
Please attach a vmware.log file from the vm.
--
Wil
Hi,
Your host is running in user level mode (a.k.a. under a hypervisor)
2022-08-10T17:07:16.875Z In(05) vmx Monitor Mode: ULM
ULM is User Level Mode a.k.a. Hyper-V
CPL0 is ring 0, a.k.a. no hypervisor
In order to turn off Hyper-V mode, run the following command at the host in windows command-line with Administrator privileges:
bcdedit /set hypervisorlaunchtype off
Reboot the system to activate your changes.
If you want to go back to Hyper-V mode again, then you can enable it like this:
bcdedit /set hypervisorlaunchtype auto
See also:
Note that you also might have to disable Memory Integrity.
Windows Security -> Device Security -> Core Isolation details
Don't forget to reboot the host after making any of these changes.
--
Wil
Thank you so much, the performance is back to normal.
May i ask you if i did something wrong during the setup? Or did i miss something? Should i have read the Manual?^^
Because Hyper-V is not installed (i just checked again, everything is unchecked in the Windows Features section) i would not have guessed any relation to that.
No, you did everything correct.
This is just Microsoft being a PITA by not being clear when they enable a hypervisor on your behalf.
--
Wil
This also seemed to have fixed my issue.
I did
bcdedit /set hypervisorlaunchtype off
And the performance increased again.
The problem with this is tho, it makes WSL2 unusable. Is there any way to work around this? To be able to have both, VMWare working and WSL2?
Thanks!
I typed this into the run command and rebooted my laptop. i opened up the vmware.log again and it still says Monitor Mode: ULM.
Is the log file update every time VMWare is opened, because maybe I'm seeing the previous log before I did the bcdedit.
It normally updates every time.
Easy enough to check, just rename the vmware.log file and restart the VM.
Most likely you missed one of the other steps.
edit: also please note that the log file is time stamped, many lines have a datetime in the first column.
So that would be another way to check.
--
Wil