Linux Fixing A Major Performance Issue For Intel Hybrid Systems With Buggy Firmware
([Intel] 4 Hours Ago
Power Management Woes)
- Reference: 0001473877
- News link: https://www.phoronix.com/news/Linux-6.10-rc6-PM-Intel-Core
- Source link:
Sent in as the sole patch for this week's Linux power management subsystem updates is an important fix for Intel Core hybrid systems with buggy firmware. The Intel P-State driver fix can address as much as a 50% performance hit seen with existing Linux kernel versions on affected Intel hybrid platforms.
A Kubuntu Focus developer last week [1]reported a power management issue that breaks scheduling on heterogeneous core Intel systems with buggy firmware. It turns out systems failing to report ACPI CPPC v2 capabilities could lead to very poor performance going all the way back to Linux 5.19. On systems like with an Intel Core i5 13500H and using the EEVDF scheduler, as much as a 50% performance hit could be observed with Geekbench. There have also been other similar bug reports in recent times.
Intel engineer and Linux power management subsystem maintainer Rafael Wysocki authored [2]a patch to use HWP data to initialize Intel Turbo Boost Max Technology if the ACPI Collaborative Processor Performance Control (CPPC) information is absent from the system firmware. He explained:
"It is reported that single-thread performance on some hybrid systems dropped significantly after commit 7feec7430edd ("ACPI: CPPC: Only probe for _CPC if CPPC v2 is acked") which prevented _CPC from being used if the support for it had not been confirmed by the platform firmware.
The problem is that if the platform firmware does not confirm CPPC v2 support, cppc_get_perf_caps() returns an error which prevents the intel_pstate driver from enabling ITMT. Consequently, the scheduler does not get any hints on CPU performance differences, so in a hybrid system some tasks may run on CPUs with lower capacity even though they should be running on high-capacity CPUs.
To address this, modify intel_pstate to use the information from MSR_HWP_CAPABILITIES to enable ITMT if CPPC is not available (which is done already if the highest performance number coming from CPPC is not realistic)."
Obviously not enabling Intel Turbo Boost Max Technology is bad for performance... But again it's just affecting Intel Core hybrid systems with buggy firmware not exposing CPPC.
Today's [3]power management pull request ahead of Linux 6.10-rc6 on Sunday adds this Intel P-State driver patch. Linus Torvalds should be pulling this code in today or tomorrow for Linux 6.10. This patch is also marked for back-porting to supported Linux kernel versions since Linux 5.19, a kernel first released in 2022.
[1] https://lore.kernel.org/linux-acpi/d01b0a1f-bd33-47fe-ab41-43843d8a374f@kfocus.org/
[2] https://patchwork.kernel.org/project/linux-acpi/patch/12460110.O9o76ZdvQC@rjwysocki.net/
[3] https://lore.kernel.org/linux-pm/CAJZ5v0h__X99p9mZLT29_pY3_4Z0wz=EDmaGmo1HntF5SO7HfQ@mail.gmail.com/
A Kubuntu Focus developer last week [1]reported a power management issue that breaks scheduling on heterogeneous core Intel systems with buggy firmware. It turns out systems failing to report ACPI CPPC v2 capabilities could lead to very poor performance going all the way back to Linux 5.19. On systems like with an Intel Core i5 13500H and using the EEVDF scheduler, as much as a 50% performance hit could be observed with Geekbench. There have also been other similar bug reports in recent times.
Intel engineer and Linux power management subsystem maintainer Rafael Wysocki authored [2]a patch to use HWP data to initialize Intel Turbo Boost Max Technology if the ACPI Collaborative Processor Performance Control (CPPC) information is absent from the system firmware. He explained:
"It is reported that single-thread performance on some hybrid systems dropped significantly after commit 7feec7430edd ("ACPI: CPPC: Only probe for _CPC if CPPC v2 is acked") which prevented _CPC from being used if the support for it had not been confirmed by the platform firmware.
The problem is that if the platform firmware does not confirm CPPC v2 support, cppc_get_perf_caps() returns an error which prevents the intel_pstate driver from enabling ITMT. Consequently, the scheduler does not get any hints on CPU performance differences, so in a hybrid system some tasks may run on CPUs with lower capacity even though they should be running on high-capacity CPUs.
To address this, modify intel_pstate to use the information from MSR_HWP_CAPABILITIES to enable ITMT if CPPC is not available (which is done already if the highest performance number coming from CPPC is not realistic)."
Obviously not enabling Intel Turbo Boost Max Technology is bad for performance... But again it's just affecting Intel Core hybrid systems with buggy firmware not exposing CPPC.
Today's [3]power management pull request ahead of Linux 6.10-rc6 on Sunday adds this Intel P-State driver patch. Linus Torvalds should be pulling this code in today or tomorrow for Linux 6.10. This patch is also marked for back-porting to supported Linux kernel versions since Linux 5.19, a kernel first released in 2022.
[1] https://lore.kernel.org/linux-acpi/d01b0a1f-bd33-47fe-ab41-43843d8a374f@kfocus.org/
[2] https://patchwork.kernel.org/project/linux-acpi/patch/12460110.O9o76ZdvQC@rjwysocki.net/
[3] https://lore.kernel.org/linux-pm/CAJZ5v0h__X99p9mZLT29_pY3_4Z0wz=EDmaGmo1HntF5SO7HfQ@mail.gmail.com/
pWe00Iri3e7Z9lHOX2Qx