I have been noticing more and more users that have acquired hardware that includes the latest Intel 12th Generation CPU (Alder Lake) and even the newest Intel 13th Generation CPU (Raptor Lake) for use with ESXi. Starting with the Intel 12th Generation CPU, Intel has introduced a new hybrid "big.LITTLE" CPU architecture that integrates two types of CPU cores: Performance-cores (P-cores) and Efficiency-cores (E-cores) into the same physical CPU die.
ESXi is currently not aware of this new consumer architecture and it currently expects all cores within a CPU package to have uniform characteristics. If you boot the ESXi installer, it will PSOD (Purple Screen of Death) by default and you will see a message about "Fatal CPU mismatch on feature" which is due to the different CPU properties across both the P-Cores and E-Cores. However, there is a way to workaround the issue by disabling the CPU uniformity check that ESXi performs as part of its boot up.
I initially wrote about the solution back in Feb of 2022 where this new CPU was first introduced in the Intel NUC line with the Intel NUC 12 Extreme (Dragon Canyon) and subsequently, I had also wrote about the solution reviewing both the Intel NUC 12 Pro (Wall Street Canyon) and the Intel NUC 12 Enthusiast (Serpent Canyon).
While the majority of folks have not had any issues applying the workaround, I have started seeing some folks running into challenges, perhaps its familiarity with ESXi or applying kernel options. In any case, I figured it might help to record a video demonstrating the workaround for those that rather visualize the solution along with the written instructions (included below).
Video Instructions
Manual Instructions
Step 1 - During the bootup of the ESXi installer, you will see an option to to append additional ESXi kernel boot settings. Press SHIFT+O and append the following kernel option cpuUniformityHardCheckPanic=FALSE to the command line and the press enter to continue the boot process.
Step 2 - Install ESXi by following the install wizard and once you are prompted to reboot, do not reboot yet. We need to add the kernel option again so that ESXi can successfully boot after the installation. To do so, switch into the ESXi shell by pressing ALT+F1 and login using root and blank password as ESXi has not gone through full reboot and is not using the configured password.
Step 3 - Edit /vmfs/volumes/BOOTBANK1/boot.cfg and append following kernel option cpuUniformityHardCheckPanic=FALSE to existing kernelopt entry, which should look like the following:
kernelopt=weaselInstalled autoPartition=FALSE cpuUniformityHardCheckPanic=FALSE
Save your changes and then change back to the reboot prompt by pressing ALT+F2 and then reboot.
Instead of having to manually append the ESXi kernel option, you will notice that it has been appended due to Step2 and applying the setting in the boot.cfg file.
Step 3 - To permanently configure the ESXi kernel boot setting, in case of updates/upgrades in the future, we can set the kernel setting using ESXCLI. We first need to login to DCUI by pressing F2 and then navigating to Troubleshooting Option and enable ESXi Shell. Switch into the ESXi shell by pressing ALT+F1 and login with root and the password you had configured during installation. Now run the following ESXCLI command to configure the kernel option:
esxcli system settings kernel set -s cpuUniformityHardCheckPanic -v FALSE
Excellent post man! I noticed a lot of people having this problem and truth be told if you haven’t worked for Vmware color or you haven’t done a bunch of automation for Vmware… You might not be familiar with the OS options. You
Does this give you access to the e-cores as well and p-cores?
Yes
Very helpful. When dealing with keyboard shortcuts at different prompts, a video is a so much easier to follow. 🙂 Thank you!
How about the scheduler? Because esxi doesn’t aware of the cores, did you see any scheduler related performance issues or power consumption issues like assigning the tasks to wrong core type? In my opinion AMD is golden standard for me since 12th gen intels. Or does it see the core types as different numa nodes? Or are you able to choose core type to assign to the vm. For example little cores for light tasks like dns-dc-automation services etc. and p cores for personal vm , dbs, and more power hunger vms?
When I say ESXi does not understand the architecture, I'm referring to scheduler.
In my limited testing in deploying vCenter and other infrastructure including Tanzu Kubernetes Grid (TKG), I've not seen any noticeable difference in behavior. It runs snappier than previous generations (as I'd expect) but again, it may vary based on workloads. Most VMware-based homelabs, the resource that is usually stressed is memory and CPU is generally idle ... so may not make a difference but again, all workload dependent and there's no expected behavior given the ESXi scheduler doesn't see a difference and you could be schedule on either E or P cores. On some Intel systems, you can disable the E-Cores all together, but not something I've seen on the Intel NUCs
Thank you, thank you, thank you, thank you....it works 100%
Great video. It helped a lot.
Thanks
Thanks for your guide.
I think the P core hyper threading is not well supported yet on 12th gen.
My hardware is 1240p, which has 4P cores (total 8 threads in theory) and 8E cores (total 8 threads).
I can only see 12 cpus in ESXI8, and hyper threading can't be enabled.
HT is indeed disabled when the cores are non-uniform