VMware Communities
Ricebucket
Contributor
Contributor

Poor support for Intel 12th gen processors

I have an intel i9-12900 processor running VMWare Workstation Pro 16 on windows 11 running Ubuntu 18.04 guest. There are several problems that I've noticed:

1) cannot specify the right number of cores: Since the # of processors and cores per processor are powers of two, the maximum I can configure in the UI is 16 cores out of 24 that I have. That's only 2/3, leaving a lot of wasted power!?

I can edit the vmx file manually and manually specify the number of cores via the numvcpus parameter, but that leads to problem two:

2) Something is wrong with processor performance. I tried 8, 16, 20, and 24 cores. The 24 core version refused to boot, i didn't debug that further. 20 core booted. 8 and 16 were supported by the UI.

But in all 4 cases, I tried running some benchmarks, and the numbers were identical! I looked at the per-core CPU utility in HWInfo, and it seems that all of the CPU were pinned on the efficiency cores and my power cores were barely getting any use. The total CPU utilization was stuck at slightly over 50%. This explains why changing the core count does not improve the performance, because it's using only the efficiency cores!

I tried both the standard vm mode and hyper-v based mode. The results were the same. 

Anyone else notice this?

Reply
0 Kudos
35 Replies
vmwareuser4922
Contributor
Contributor

I am having very similar issue here. Basically vmware workstation can't utilize the second core of the performance core. I am running i9-13900k with 8 P core and 16 E core, suppose to get 32 total threads, but it only use 24. 

I can even see it in the windows task manager that only one thread out of the two threads for each P core is used. Windows 11 and latest vmware workstation. Also I am running a desktop, so there is no power limitation. 

any idea?

Updated with solution:

  1. in windows host, settings, power, power mode, change to performance. Note that you have to choose "balance" in Control Panel-Power Option, in order to change the one in Setting. (Thanks, Microsoft)

  2. run VMware Workstation as Administrator. By right clicking your VMware shortcut, Properties, Advanced, check "Run as Administrator"

And of course you need to set the number of cores/threads available in your VM setting, but you don't need to mess around the vmx file.

ZoltantheG
Contributor
Contributor

Got my hopes up when WS Player 17 came out.  Nope.  Still unusable at default settings.

Reply
0 Kudos
WaltGV
Contributor
Contributor

Like you, I was hoping for a major improvement with 17, which by default I did not see.  I have had the same e-core issues since moving to an i9-12900K.   I would like to contribute some observations from today's testing, if that might help.  

Using the Intel XTU utility, I too had noticed that the e-cores, rather than the p-cores, were being used by VMWare, specifically while running benchmarks on my Linux and Windows (11) guest vm's.   In order to circumvent the issue, I had tried a couple of things in the past.

First disabled the e-cores in bios.  This resulted in a dramatic performance improvement in the benchmarks, as might be expected...typically by a factor of 2 to 1 or so. This, of course, is not an acceptable long term solution.  

Next, I specified cpu affinity, as has been suggested in a couple of other posts.  This too worked well for my linux vm, pushing activity to the p-cores.  Performance essentially duplicated the results of totally disabling the e-cores in bios. Since the Windows 11 vm needed to be encrypted, however, editing the vmx file for cpu affinity has not really been an option, without deleting the tpm and then decrypting.  

In looking at the doc again, and also based on a reference in another post, I today changed the default "input grabbed" priority ("edit>preferences") to "high" (not sure why the default is "normal"), and made sure my vm's were using the default .  I saw activity now driven to the p-cores, not the e-cores.  Results were similar again to totally disabling the e-cores.  This, however, is only the case while the vm has focus.  If it is placed in the background or loses focus, activity reverts to the e-cores.  Unfortunately there is currently no "high" priority option for "input ungrabbed", as far as I can tell.  So running a long task in the vm, and wanting to switch to something else in the meantime, results in the e-core performance degradation.

This works for me, by the way, when running vmware as a standard user (my preference), and with either a "balanced" or "performance" power plan in the Windows host, which in my case is also Windows 11, 22H1 at this point.  My "balanced" plan has a cpu minimum of 5%, max of 100%.  

My config: i9-12900K processor, 32G memory, Windows 11 22H1 host.  Ubuntu 22.10 vm, Windows 11 vm, each specifying 8 cpu's and 8G memory.    Linux benchmarks are Mathematica 13, and a hand-coded python single-thread cpu burner.  Windows benchmarks are Cinebench and the same python program.  

I have used vmware as a programming tool for many years, but had been flummoxed by this recent e-core issue.  So I would certainly welcome anything in the doc or other posts I might have missed.  It would seem that many other have encountered the same issues.  Unless I've missed something, I cannot believe it has not received more attention.  

Any other experiences, observations or pointers welcome, of course.  

TimothyHuckabay
Enthusiast
Enthusiast

There continues to be NO answer to Intel's big.little or hybrid cores since Alder Lake's release. That means that even VMware Workstation 17 Pro does NOT offer ANY official support or workaround for Intel's recent CPU core architectures—and VMware has MINIMALLY had three years to work on this. SHAME on VMware, its management, architects and developers, for such a gross oversight after so long.
Reply
0 Kudos
WaltGV
Contributor
Contributor

I would agree.  Given that allocation of p-cores seems to be controlled indirectly via specifying high priority on "input grabbed" in preferences, seems they could easily do the same when "input ungrabbed" is the state.  Doesn't seem to be a major programming fix to me. And as an earlier post has pointed out, why no problem when running elevated as an admin?

Also ran across this https://learn.microsoft.com/en-us/answers/questions/1027852/windows-11-22h2-thread-director-issues-w... relative to Windows 11 22H2 and HandBrake, and e-core issues.  

As a side note, now that the linux kernel 5.18 and above are available in mainstream distributions such as Ubuntu (22.10), I wonder what the experiences have been using that as a vmware host with the Alder and Raptor Lake processors. May try that myself if/when I have some spare time.  

Reply
0 Kudos
ahmedrana
Contributor
Contributor

Input Grabbed is giving the high priority. This is something I need. When my VM is not in focus I want it to use minimum resources (or at least the e-cores) and when its in focus I want it to be performant.

Tags (1)
Reply
0 Kudos
ahmedrana
Contributor
Contributor

5 mins in 1185G7 

5 mins in 1260P

1260P should be much faster.

What are your host and guest OS? Is it because of Ubuntu.

Were you able to further optimize it and bring the time even down (using input grabbed to high)?

I am considering to upgrade AMD 5800h laptop to Intel 12700h laptop. I have to run windows 10/11 VM on it. I was wondering will it be a an upgrade or downgrade for my VM?

Reply
0 Kudos
Technogeezer
Immortal
Immortal

Put some of the blame on Microsoft. I'm reading lots of posts saying that the Windows thread director does not do a good job of assigning threads to the P cores - the Handbrake discussion in the Microsoft forum posted above is one instance where it's not working well. Since a VCPU is a thread to Windows, VMware is at the mercy of what Windows provides to assign the thread to a P core. Nothing VMware can do about that. 

The only workaround that I've heard might make a difference is to set the power mode to "performance" rather than "balanced". 

- Paul (Technogeezer)
Editor of the Unofficial Fusion Companion Guides
Reply
0 Kudos
WaltGV
Contributor
Contributor

Hello ahmedrana,

Configuration, as posted above is:

i9-12900K processor, 32G memory, Windows 11 22H1 host.  Ubuntu 22.10 vm, Windows 11 vm, each specifying 8 cpu's and 8G memory.    Linux benchmarks are Mathematica 13, and a hand-coded python single-thread cpu burner.  Windows benchmarks are Cinebench and the same python program.  

Input grabbed set to high causes vmware to use the p-cores, so yes, it helps.  Problem again is, if vmware loses focus, it often recedes to the e-cores.  As you pointed out in an earlier reply, maybe this is what you want to happen.  But not if you have a long running  job (e.g. machine learning) or the like running in the vm.

Again, this can also be mitigated by specifying processor affinity using the Processorxx.use = "True"/"FALSE" in the vmx file, at least for Linux or Windows 10 vm's (not Win 11, as far as I can tell, since the vmx file is encrypted). 

As far as a 12700h machine, since it is an 8/8 p/e configuration, I would think that you would run into some of the same issues I ran into. 

 

WaltGV
Contributor
Contributor

Hi Technogeezer, 

I would certainly agree that Microsoft and Intel between them have done a poor job of implementing support for the processor configuration.  I just recently ran into a problem with Win 11 22H2 where python processes running in powershell are assigned e-cores, rather than p-cores as was the case with 22H1.  Ugh.

Since I'm not enough of a Windows hound to understand what's going on under the covers, I don't understand all the ways a process can communicate to Windows that p vs. e cores should be assigned.  Clearly VMware does something along those lines since "input grabbed" affects the core assignment.  Also, as mentioned above, the "Processorxx.use"  parameter in the vmx file has a direct effect as well, so there is some specific communication going on between VMware and Windows.  So it would seem more than just leaving guesswork to Windows.  A topic for more research. 

I did some testing with an Ubuntu (22.10, 5.19 kernel) host and VM.  Don't seem to have similar e-core performance issues.  But then again, everything I've used (primarily python), is vastly faster under Linux to begin with.  

I sure wish the VMware wizards would provide some clarification on this, rather than leave it up to discussions in the forums. 

Appreciate your input...from a fellow geezer. 

ZoltantheG
Contributor
Contributor

"I sure wish the VMware wizards would provide some clarification on this, rather than leave it up to discussions in the forums. "

^^^ This !!!

ZoltantheG
Contributor
Contributor

Just wandered back in and saw the "run as administrator" fix.  Nice.  That gets performance back to almost 11th gen numbers.  A Ubuntu build took ~5 minutes, not 22.

I see about the same result by either setting the performance slider to Performance instead of Balanced, or running as Admin.  Guess is that either mode hands the app P cores instead of E cores.

For me the run as Admin approach is much preferred since it doesn't kill global battery run time.  I hope.

Maybe some day Intel/MS/VMware will get their poop in a group and fix this... and monkeys might fly...

Z.

Reply
0 Kudos
docderwood
Contributor
Contributor

Any word on whether this issue got addressed? Considering this processor vs AMD

 

 

Reply
0 Kudos
lsteger
Contributor
Contributor

This one helped for me:

https://lr.mint.lgbt/r/vmware/comments/v0rzr8/workaroundtemporary_fixsolution_intel_12th_gen/

powercfg /powerthrottling disable /path "C:\Program Files (x86)\VMware\VMware Workstation\x64\vmware-vmx.exe"

Reply
0 Kudos
Geraldius
Contributor
Contributor

I could not open that link

I have also Performance problem with Win11/Fujitsu 5412 and vm-ware player 

Reply
0 Kudos