Arm has developed Intelligent Power Allocation (IPA) as an improved Linux thermal control solution for advanced SoC's, to provide optimal performance and temperature control of a complex SoC.

IPA has been accepted into mainline in Linux-4.2 and later and is fully opensource.

IPA Benefits

Proactive Thermal Management

Continuously adapting response based on power consumption and thermal headroom
Closed-loop control uses Proportional Integral Derivative (PID) for accurate temperature control

Dynamic Power Partitioning

Optimally allocates power to CPU or GPU based on current workload

IPA Structure

IPA consists of:
  • An SoC power model that allows IPA to map between power consumption and each voltage/frequency operating point for each key IP block (e.g. CPU, GPU)
  • A PID (Proportional Integral Derivative) temperature control algorithm to accurately control SoC temperature.
  • Dynamic power allocation between the Arm CPU and the Mali GPU, based on the CPU/GPU activity levels of the current workload. (a 'weighting' can also be added to bias power towards more efficient little CPUs when the SoC heats up)

IPA is implemented via a new 'power_allocator' governor within the existing Linux Thermal Framework.

IPA is ported to a specific device/product by taking the shipping code and adding platform support (the power model) and configuring thermal coefficients to match the thermal response of the device.

News Updates

March 2017

December 2015

  • Arm has released a trial integration of Energy Aware Scheduling (EAS) and IPA, using a combined power/energy model.  For more details please see Energy Aware Scheduling

November 2015

  • The devfreq_cooling cooling device framework was accepted upstream - this provide IPA support for any SoC blocks which are controlled by devfreq, such as Arm Mali GPU's.  The mainline code for devfreq_cooling now supports the power extensions used by IPA.  This is available from Linux kernel versions 4.4 and later

August 2015

  • Support for IPA is accepted into mainline Linux kernel version 4.2 (30 Aug 2015)




Useful Information

Intelligent Power Allocation White Paper 

Arm Techcon 2015 presentation "Arm Vision for Thermal Management and Energy Aware Scheduling on Linux"


Blog on IPA


Source code access

Mainline Linux kernel 4.2 and later 

Linaro LSK containing backport of IPA to Linux-3.18: https://wiki-archive.linaro.org/LSK#IPA

ChromeOS containing backport of IPA: https://chromium.googlesource.com/chromiumos/third_party/kernel/+log/chromeos-3.18/drivers/thermal

Prototype integration of EAS+IPA: Energy Aware Scheduler

Mali Midgard GPU drivers supporting IPA, r5 and later

Mali Utgard GPU drivers supporting IPA, r6p1 and later - COMING SOON

IPA Tuning Guide PDF

IPA Tuning Guide

Implementation consultancy for IPA

Arm has assisted with implementing IPA on partner SoC's:



Arm Training Class on Intelligent Power Allocation