November 10, 2015, ARM Techcon, Santa Clara, CA—Charles Garcia-Tobin from ARM talked about thermal management and energy aware scheduling on Linux. The ability to change power based on workloads has been a part of ARM's power allocation capabilities for some time.
For many mobile devices, the workloads fall into three main categories, short bursts of high intensity as in web browsing, long periods of high intensity especially in gaming, and low intensity for the balance of activities. ideally, one would like to have optimal performance and thermal control for each category. ARM's power allocation dynamically shifts processes across available resources for best match for performance and thermal headroom.
This resource allocation directs power across little and big CPUs and the GPU as the different workloads change. This function works fine if you are in an intelligent power allocation (IPA) environment, but most Linux distributions use step-wise governors, making power and thermal management difficult. The latest IPA advancements continuously adapt power consumption and thermal headroom in a PID closed loop,and are now merged into Linux 4.2
The challenges in scheduling, power, and performance are becoming more difficult as SoC designs become more complex and power management must address more variables for dynamic voltage and frequency scaling. In the past, Linux power management have followed a separate track, so were uncoordinated and hard to tune.
One solution is to introduce energy awareness into upstream Linux by integrating idle, DVFS and scheduler big.little support. The new energy model looks at the compute capacities of the little and big processors and moves tasks to the processor with the lowest energy needed for the compute task.
Dynamically changing voltage and frequency in the CPU depends on the sampling governor. When sampling rates are too long, sudden bursts might not get additional power and compute resources in time, while if too short may lead to utilization spikes. When the scheduler tracks task use, it can respond quickly to any change in use patterns. A set of governor-specific tunables can bias the energy-performance tradeoffs to maximize performance margin at the current compute capacity.
The development and refinements needed for improving power efficiency and performance can use the IPA tweaks to manage overall system thermal conditions and interact with the scheduler to adjust the DVFS for the big, little, and GPU cores. In the future, advanced performance control will integrate all of the management functions for tighter control and better feedback.