Linux ITMT Patch Fixes Intel "Alder Lake" Hybrid Handling For Some Systems
For those with Intel 12th Gen Core "Alder Lake" systems, one of the important tidbits of information I recently learned is that while Thread Director is hardware-based, the hybrid P/E core selection under Linux does depend upon the working Intel TurboBoost Max 3.0 / ITMT code path working. The CPU selection within Linux for Alder Lake relies on that ITMT (Intel Turbo Boost Max Technology) scheduling.
The status of the ITMT scheduling under Linux can be checked via /proc/sys/kernel/sched_itmt_enabled with a value of 1 if enabled, otherwise 0 or possibly that sysfs node not being present. If the ITMT scheduling isn't enabled, the right decisions might not be made around placing a task on a P or E core.
With at least some motherboards, if overclocking the system or even using XMP / "DOCP Standard" BIOS settings, the kernel wasn't properly handling things and would lead to all of the cores effectively showing the same maximum performance potential. The issue stems from some firmware hard-coding the ACPI CPPC highest performance state all to the same in those "overclocked" configurations and ITMT not being enabled as a result. With a new Linux kernel patch, the HWP capabilities MSR is being read when that happens for determining the proper value.
This is the patch now out for review/testing. At least with the ASUS ROG STRIX Z690-E GAMING WIFI motherboard I have been using for most of my Alder Lake testing and was supplied by Intel, it indeed now allows ITMT enabled when running with the optimized memory settings.
When it comes to the recently outlined Linux 5.16 kernel regression on Alder Lake attributed to the cluster-aware scheduling, that issue is still being dealt with but may get disabled for the Linux 5.16 kernel.
More Alder Lake Linux benchmarks forthcoming on Phoronix.