There have been some recent reports from users observing performance issues when running VMware Workstation on Windows 11 along with using recent Intel (12th Gen and later) Hybrid CPUs, which introduces a new hybrid big.LITTLE architecture for Intel's x86 consumer CPUs.
This new Intel Hybrid CPU contains two types of CPU cores: Performance-cores (P-cores) and Efficiency-cores (E-cores) into the same physical CPU die, which follows a similar design to Apple Silicon CPUs. For information about the new Intel hybrid Intel CPUs, check out this resource HERE.
At first glance, most users had assumed this was due to Virtual Machines being scheduled to run on the less powerful E-Cores, this was problematic even for non-VMware use cases and with the recent introduction of Intel Thread Director, this was supposed to have been improved with Windows 11.
However, after some internal testing, the Intel Hybrid CPU may not actually be the culprit.
Since I had access to a recent Intel Hybrid CPU via Intel 13 NUC Pro with Intel i7-1360P (4P + 8E Cores), I was able to help validate some observations that was made by our Engineering teams regarding the performance issue.
We found that if you just launched VMware Workstation without the "Run as administrator", the performance of the workload would be impacted. I had confirmed this behavior by simply running the PassMark CPU-only Benchmark inside of a Windows 11 VM using latest VMware Workstation Pro 17.
Here is the result for running VMware Workstation with the non-admin role:
Here is the result for running VMware Workstation with the admin role:
As you can see, the performance immediately improves quite significantly!
VMware Engineering is still investigating the issue and is also working with Microsoft to better understand what is happening. For now, starting VMware Workstation with the "Run as administrator" should mitigate the performance impact until a better solution is available. I believe we will also be publishing an official VMware KB with more information, so stay tuned for those details and I will update the blog post once that is available for those intersted.
Interestingly, earlier this week I caught an article about a new tool from Bitsum called CoreDirector that can help manage which applications can run on the P and E-Cores.
After installing CoreDirector, you simply add the executable name or pattern, in our case for VMware Workstation it is vmware.exe and that is supposed to ensure these applications do not use the E-Cores.
Here is the result for running VMware Workstation with the non-admin role running on the P-Cores:
Here is the result for running VMware Workstation with the admin role running on the P-Cores:
Using the more capable P-Cores, you can see the performance does help a bit further but only when running with the admin role.
While CoreDirector can be used to pin the entire VMware Workstation application and all of its VMs to run exclusively on the P-Cores, you might want finer control on which VMs get access the P-Cores. In VMware Workstation, you can indeed exclude certain VMs from being scheduled on the E-Cores by adding the list of processors to use or not use into a VM's VMX file.
For my setup, I have an Intel i7-1360P which contains 4 x P-Cores and 8 x E-Cores, each P-Core is Hyperthread capable (assuming you have not disabled that in the BIOS). This means in total, I have 16 Processors and if you want to exclude the VM from using all the E-Cores, we need to add the following to the VM's VMX file:
processor8.use = "FALSE"
processor9.use = "FALSE"
processor10.use = "FALSE"
processor11.use = "FALSE"
processor12.use = "FALSE"
processor13.use = "FALSE"
processor14.use = "FALSE"
processor15.use = "FALSE"
Since I have 16 processors, the counter starts at 0 and ends at 15 with the last 8 processors being the E-Cores. Depending on your total P and E-Core count (including Hyperthreading), your entries will vary.
Here is the result for running VMware Workstation with the non-admin role and only the VM running on the P-Cores:
Here is the result for running VMware Workstation with the admin role and only VM running on the P-Cores:
If you are not seeing a noticeable performance impact for running VMs on both the P and E-Cores, you can keep things simple without having to pin either the VM and/or VMware Workstation but if you want to make full use of the P-Cores for certain workloads, this would be best way to achieve this on a per-VM basis.
Abraham says
powercfg /powerthrottling disable /path "C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe"
Mk says
Thank you, was helpful !
Brian says
Hi William, a bit off topic but is it possible to do something similar in ESXi 8? Or even differentiate P and E cores somehow in ESXi 8. I'm aware of the two options to 1. disable E cores or 2. add the boot command but unfortunately my mini pc does not have the option in the BIOS to disable cores so I was wondering if it was possible to identify and segregate them as assign only P cores to a VM or only E cores to a VM so they all match for that VM in case the VM itself also does not support a mix. Hope that makes sense. Thanks
Vladislav says
Quite literally first link of google
"vmware assign specific cores to vm"
https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-resource-management/GUID-5FCC0AAA-9D58-4EDF-9A5F-8628F1C8B830.html
Brian says
Thanks, I found it soon after I posted. See post below.
Brian says
Hi William. I got a Minisforum NPB6 on sale recently. It is a i7 13620H CPU with 6 P cores and 4 E cores but there is no option to disable cores in th Bios. So far everything is "working" as in functional and without error in ESXi 8 but I have seen some strangeness. I noticed using 4 cores 0-3 for example (P cores) would use 75W in a stress test but using cores 7-10 ( E cores) only used 45W in a stress test. This means the cores are not randomised so I thought I could at least use similar cores in different VMs. But no matter which core I use the CPU speed is fixed at 2.92GHz and never changes or goes up or down. Is this expected after using the cpu uniformity check bypass? Are all cores now locked at that speed? Do you know what other side effects there are? Thanks
William Lam says
Thanks for sharing Brian, but unfortunately there's no pre-determined behavior given VMkernel does not actually understand P/E Cores ...
Regarding the BIOS disablement, I heard from another user after reaching out to Minisforum that they don't provide that in their custom BIOS, which is really a shame as this is a generic feature in all Intel-based systems. If they don't allow you to disable P or E Cores, then that's another consideration to be aware of with going with these other lesser known vendors
Martin says
has anyone solved this issue on 11th or younger Gen intel CPU's?
On lenovo P15 gen1 & 2 the cpu ( at least at my company) is gen10 & 11 intel i7.
We're seeing massive slowdown of vm's running in workstation.
Funny thing is.. If I copy a vm that's run fine under windows 10 to a brand new win11 then it'll run very slow.. boot time is above 2 minutes.
If I copy the same VM ( vanilla template built on windows 10 but never run under windows 10 after )
Then it'll boot in about 40 seconds.
It's as if something in the vmx/cache or whatever affects the performance when moved to windows 11.
Same issue if I have a windows 10 inplace upgrade where windows is just updated.
Still digging into this but not finding much..
The powercfg doesn't work - bcdedit hypervisior off doesn't work..
Nothing seems to work .
manuel roldan says
I am currently trying to install vmware esxi 7.0/8.0 with an intel i7 13700K disabling core E and P I can not install it, the error that announces is Failed to initialize acpi subsystem: Failure. could you help me?
Willem Ditters says
Meanwhile apparently Broadcome figured it out … They said that took some real low-level work, but there are new APIs from MS that they can use now to basically qualify the VMWare processes as ‘this is not a background service’. Unitl now for whatever reason Windows was erroneously qualifying VMWare Workstation as such before. Broadcom said they will ship in Sept if their schedule holds.
Pauline Liu says
-----------
For now, starting VMware Workstation with the "Run as administrator" should mitigate the performance impact until a better solution is available.
-----------
Is there any a better solution available?
Waiting for your response.