intel_pstate fails to enable ITMT if CPPC v2 is disabled by firmware, resulting in bad single-core performance on some heterogeneous-core Intel systems
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
New
|
Undecided
|
Unassigned |
Bug Description
This issue is explained and discussed in detail on the linux-acpi mailing list in the following three threads:
* Initial issue report: https://<email address hidden>/T/#u
* First patch submitted to mainline for review: https://<email address hidden>/T/#t
* Second patch (not mine) submitted to mainline for review: https://<email address hidden>/T/#t
Intel-based machines using heterogeneous-core processors (i.e., anything with P-cores and E-cores) require Intel Turbo Boost Max Technology 3.0 (ITMT) in order for the EEVDF scheduler to correctly assign intensive single-core loads to P-cores. If ITMT is not enabled, the scheduler does not get hints about CPU performance differences, causing it to oftentimes schedule single-core workloads on E-cores rather than P-cores. This leads to a serious drop in single-core performance.
Currently, if CPPC v2 is not acked by the firmware, the intel_pstate driver will *not* enable ITMT. This means that any device with a hybrid-core Intel CPU, where CPPC v2 is missing, non-functional, or incorrectly disabled by the firmware, will experience the performance drop mentioned above. This happens in the wild:
* My workplace, Kubuntu Focus, is affected by this issue: https://<email address hidden>/T/#u
* A user of a Star Labs laptop was also affected: https:/
* Someone on the Manjaro forums appears to have run into this potentially: https:/
* Someone onf the Gentoo forums also may have run into this: https:/
This issue, as shown above, has been discussed on the linux-acpi mailing list, and currently has a fix in the works. https://<email address hidden>/T/#t The fix works by falling back to using info from MSR_HWP_