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
bluefirestorm
Champion
Champion


@Ricebucket wrote:

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!?


The "number of cores per processors" are not in powers of 2. I can see 1, 2, 3, 4, 6, 8, 12, 16, 24, 32. Only the "Number of processors" are powers of 2 (1, 2, 4, 8, 16, 32). So theoretically you can reach 24 vCPU using 1x24, 2x12, or 8x3, 4x6. Anyway, the number of virtual sockets does not affect VM performance. It does have an effect on OS licensing. For example, specifying "Number of processors" of 2 for Windows 10/11 Professional Edition OS VM is viable but for Home Edition it won't be able to recognise the extra virtual socket and thus reduces the number of vCPUs.


@Ricebucket wrote:

Anyone else notice this?


Yes. There is an earlier thread. You could try setting CPU core affinity use the vmx entries such as Processor23.use = "TRUE". See this thread.
https://communities.vmware.com/t5/VMware-Workstation-Pro/Workstation-16pro-on-alder-lake-system/m-p/...

Reply
0 Kudos
Ricebucket
Contributor
Contributor

Thanks for the help and for pointing out my mistake.

(But of course it does seem like my conclusion was right after all... since any efficiency cores are out of the question, I can use only 16 cores at most)

By the way on a side note, do you know why 24 cores failed? (I saw an error message on boot with 20 cores also, but it did complete booting. 24 cores would not complete.)

Reply
0 Kudos
bluefirestorm
Champion
Champion

Without any specific error message and/or vmware.log from the attempt to power up a VM with 20 vCPUs/24vCPUs, it is pointless for me to speculate why your attempts failed. I would suggest though if you want to try 20 vCPU (or 24vCPU), keep it to single virtual socket as most modern OS are able to handle multicore. In the physical machine world, it is very rare now to find an Intel-based machine that uses more than 8 sockets.

The way I understand efficient/performance cores, it is really up to the CPU to decide which core to execute. I don't think the OS or in the case of the VMware hypervisor would pick a particular core/thread (just like for pre-12th gen Intel CPUs it does not choose a particular core/thread).

The workaround with the processor affinity does not even guarantee that the performance cores will be used all the time. It just excludes (some or all of) the efficient core(s) as per affinity/dis-affinity configuration while maintaining there are enough logical CPUs to handle the vCPU count. So unless you have a specific VM use case for CPU intensive task (like in the other thread post it was building binaries from source code), it would be best to avoid assigning core/thread affinity for VMs. It can get gnarly quickly if you have multiple VMs with affinity/dis-affinity assignments.

So for 20 vCPUs, you would have (assuming the 8 efficient cores are Processor16 to Processor23 and you would like to have the affinity workaround).

numvcpus = "20"
cpuid.coresPerSocket = "20"
Processor0.use = "TRUE"
Processor1.use = "TRUE"
Processor2.use = "TRUE"
Processor3.use = "TRUE"
Processor4.use = "TRUE"
Processor5.use = "TRUE"
Processor6.use = "TRUE"
Processor7.use = "TRUE"
Processor8.use = "TRUE"
Processor9.use = "TRUE"
Processor10.use = "TRUE"
Processor11.use = "TRUE"
Processor12.use = "TRUE"
Processor13.use = "TRUE"
Processor14.use = "TRUE"
Processor15.use = "TRUE"
Processor16.use = "TRUE"
Processor17.use = "TRUE"
Processor18.use = "TRUE"
Processor19.use = "TRUE"
Processor20.use = "FALSE"
Processor21.use = "FALSE"
Processor22.use = "FALSE"
Processor23.use = "FALSE"

 

Ricebucket
Contributor
Contributor

Your proposed config for 20 core doesn't work, unfortunately.

As mentioned in my reply to the other thread you linked, the presence of ANY efficiency cores causes vmware to direct all cores to those cores. 

In the 20 core config, 4 efficiency cores are activated. This causes vmware to put all 20 cores on those 4 cores. So in fact, by going from 16 to 20 cores, we've gone down from 16 real power cores to 4 efficiency cores, at 1/4 of the performance. This is validated by actual testing.

I can't come up with a way to enable more than 16 cores under this bug. I assume in the extreme example, if we enable 17 cores, all 17 cores would be assigned to the single efficiency core that's enabled.

This has to be a VMware bug, not an OS one. Other programs don't have this problem.

Reply
0 Kudos
Fetakungen
Contributor
Contributor

I have the same issue since maybe Windows January Update.. all of my vm's are crazy, to make things "ok" i park the effeciency cores but vm's with windows 11 take 1-2 min just to get to the flag.. Also running the 12900k.

Reply
0 Kudos
continuum
Immortal
Immortal

If I remember right WS 16 allows a maximum of 16 vCPUs per VM.

Ulli

 


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

Reply
0 Kudos
bluefirestorm
Champion
Champion

Fetakungen,
From your post, it is not clear whether your host is Windows 11 or Windows 10. From my understanding only Windows 11 kernel can make use of the Intel Thread Director of Alder Lake CPUs. If you are seeing a performance drop after a Windows update, you might want to check whether Hyper-V somehow got enabled.

Look at the vmware.log, if it shows ULM for Monitor Mode, Hyper-V is detected. If it shows CPL0, the faster native Intel VT-x hypervisor is used.

<timestamp>| vmx| I005: Monitor Mode: ULM

To remove Hyper-V, use this KB as reference https://kb.vmware.com/s/article/2146361 Also make sure Memory Integrity is OFF.

Reply
0 Kudos
Ricebucket
Contributor
Contributor

Continuum,

Since I can get it to run with 20 cores, I don't think this is the problem.

Reply
0 Kudos
aaa26
Contributor
Contributor

My i7-1260p is also working so slow in vmplayer. It's seems only use effi. cores. 

Reply
0 Kudos
mwb1100v
Enthusiast
Enthusiast

@Ricebucket concluded (in this thread) that "It seems that even if 1 efficiency core is enabled, it will not use any power cores"

Reply
0 Kudos
ZoltantheG
Contributor
Contributor

(Going to try one more time to post this.. hope it doesn't show up 4 times...)

Using Workstation Player 16, but seems like the same issue and "fix" as Pro.

Running an i7-1280p in a ThinkPad X1 Yoga Gen 7. Takes over 22 minutes to build a Ubuntu 21.10 client. Ugh.  Same build on my X1YG6 i7-1185G7 takes 5 minutes.  Both machines 32GB Ram, 2TB Gen 4 NVMe SSD, Win 11 fully updated.

The .vmx addition below helps a lot - gets it down to 12 minutes, but still not what it should be.  Also helps with post-build boot time, even with a  DOS client - but still not what it should be.

Not sure whether to hope for further improvements on the VMware side, or look elsewhere in the system.

thanks,

Z.

 

ulm.disableMitigations="TRUE"
Processor0.use = "TRUE"
Processor1.use = "TRUE"
Processor2.use = "TRUE"
Processor3.use = "TRUE"
Processor4.use = "TRUE"
Processor5.use = "TRUE"
Processor6.use = "TRUE"
Processor7.use = "TRUE"
Processor8.use = "TRUE"
Processor9.use = "TRUE"
Processor10.use = "TRUE"
Processor11.use = "TRUE"
Processor12.use = "FALSE"
Processor13.use = "FALSE"
Processor14.use = "FALSE"
Processor15.use = "FALSE"
Processor16.use = "FALSE"
Processor17.use = "FALSE"
Processor18.use = "FALSE"
Processor19.use = "FALSE"

Ricebucket
Contributor
Contributor

Is this issue fixed in the new 16.2.4 workstation release? I don't see it in the release notes.

Reply
0 Kudos
Fetakungen
Contributor
Contributor

No, still have the same issues. Without setting cpu affinity to completly exlude 16 and up on my 12900ks only the e-cores are used and poorly... Somethings goes complete wrong for the scehduler it seems.

Reply
0 Kudos
Usual_Suspect
Contributor
Contributor

My MSI mainboard offers to disable specific cores so I simply disabled the E cores but it didn't seem to have any meaningful effect for my performance problems. VMware Workstation Pro still runs better on a 2+ years old notebook than it does on my cutting edge gaming computer which just isn't right.

Reply
0 Kudos
ZoltantheG
Contributor
Contributor

A quick very temporary fix on my ThinkPad X1 Yoga Gen 7 is to move the performance slider from balanced to best.  Cut the Ubuntu client build time from 20+ minutes to 5.  Not sure whether that limits cores/threads, changes CPU clocking, or something else.  Not really usable in the long term.  My Gen 6 runs that build in 5 minutes in balanced mode.

Reply
0 Kudos
Technogeezer
Immortal
Immortal

Has anyone tried this with the Workstation 22H2 Tech Preview? If you have and it still exhibits these issues, then you should report this back to VMware so that they can possibly address this before the next release is shipping.

After all, that's what a preview/beta release is designed for.

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

Didnt know about it, downloading now 😉

Reply
0 Kudos
Fetakungen
Contributor
Contributor

Would say it still behaves the same..

robertspelman
Contributor
Contributor

I was able to get your proposed modification working with my VM, it no longer tries to run on just efficiency cores. Thank you for investigating this, I hope VMWare get this figured out with their next release.

Reply
0 Kudos