Linux 5.8 Brings Boost Support To CPPC CPUFreq Driver
The ACPI-defined Collaborative Processor Performance Control (CPPC) CPUFreq driver will support "boosting" to the optimal performance level with the Linux 5.8 kernel.
Collaborative Processor Performance Control ACPI specification is a standardized mechanism for describing abstract performance scales and a means of being able to request higher/lower performance levels and measuring per-CPU performance. The Linux kernel for a while has offered the ACPI CPPC CPUFreq driver for making use of this standard on supported systems -- primarily to date being Arm systems. AMD last year proposed their own CPPC driver for Zen 2 Linux systems but there has been no activity on that front since then. In any case, Huawei has now plumbed "boost" support into the generic CPPC CPUFreq driver.
Last month I reported on software boosting patches for the CPPC CPUFreq driver and now that work is set for introduction in Linux 5.8. The CPPC specification has a "highest performance" bit for indicating the highest performance achievable on a given CPU core, and that basically amounts to the turbo/boost frequency that may or may not work out well depending upon all of the usual caveats around boost/turbo frequencies with regard to thermal/power constraints. It's the "nominal performance" bit for CPPC that is indicative of the base clock frequency / all-core frequency for continuous operation. The Huawei-developed patches are making use of it for determining software boosting values when lacking a frequency table for the system. If the highest performance value is greater than the nominal performance, boosting is available.
The boosting support for ACPI CPPC CPUFreq was sent in today as part of a secondary round of power management enhancements for Linux 5.8. Merged last week were the primary power management updates for this next version of the Linux kernel.
Collaborative Processor Performance Control ACPI specification is a standardized mechanism for describing abstract performance scales and a means of being able to request higher/lower performance levels and measuring per-CPU performance. The Linux kernel for a while has offered the ACPI CPPC CPUFreq driver for making use of this standard on supported systems -- primarily to date being Arm systems. AMD last year proposed their own CPPC driver for Zen 2 Linux systems but there has been no activity on that front since then. In any case, Huawei has now plumbed "boost" support into the generic CPPC CPUFreq driver.
Last month I reported on software boosting patches for the CPPC CPUFreq driver and now that work is set for introduction in Linux 5.8. The CPPC specification has a "highest performance" bit for indicating the highest performance achievable on a given CPU core, and that basically amounts to the turbo/boost frequency that may or may not work out well depending upon all of the usual caveats around boost/turbo frequencies with regard to thermal/power constraints. It's the "nominal performance" bit for CPPC that is indicative of the base clock frequency / all-core frequency for continuous operation. The Huawei-developed patches are making use of it for determining software boosting values when lacking a frequency table for the system. If the highest performance value is greater than the nominal performance, boosting is available.
The boosting support for ACPI CPPC CPUFreq was sent in today as part of a secondary round of power management enhancements for Linux 5.8. Merged last week were the primary power management updates for this next version of the Linux kernel.
4 Comments