Thermal Pressure On Tap For Linux 5.7 So The Scheduler Can Be Aware Of Overheating CPUs
Going back about two years has been work by Linaro on "thermal pressure" support for the scheduler so that it can make better task placement decisions among CPU cores when any of the core(s) are being restricted by running too hot. That work is now set to finally land this spring with the Linux 5.7 kernel.
The Linux thermal pressure code is designed with ARM SoCs in mind for better performance by allowing the scheduler to be informed of the thermal "pressure" and that the affected cores may be down-clocked/limited for that reason. In turn, the scheduler can make more informed decisions and in turn that can help the performance. Up until now, the Linux kernel scheduler hasn't been aware when a CPU's capacity is reduced due to thermal issues / frequency capping.
With these patches that have gone through close to a dozen rounds of review over the past few years can help with much better task placement while the CPU is thermally constrained. With the new thermal pressure algorithm, benchmarks like Hackbench and Dhrystone were helped by up to a few percent. The thermal pressure infrastructure and its wiring up for capable Arm hardware is now within the sched/core branch making it material for the next kernel cycle with Linux 5.7's merge window coming in about one month's time.