Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Architectures and Processors blog Energy Aware Scheduling (EAS) in Linux 5.0
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tell us what you think
Tags
  • mobile
  • big.LITTLE
  • DynamIQ
  • Linux
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Energy Aware Scheduling (EAS) in Linux 5.0

Quentin Perret
Quentin Perret
February 25, 2019
3 minute read time.

The Energy Aware Scheduler (EAS) is now available as part of Linux 5.0. It enables energy-efficient scheduling decisions on big.LITTLE and DynamIQ Arm platforms by choosing the right type of CPU for each task.

What is EAS ?

EAS is an extension of the Linux task scheduler improving battery life of mobile devices. It uses a model of CPU energy consumption (called the Energy Model, or EM) to optimize the placement of tasks on the most energy-efficient CPUs of big.LITTLE and/or DynamIQ platforms while meeting compute requirements. The EM provides an abstract view of the CPU topology to the scheduler, and informs it about the power cost associated with running each CPU at the available frequencies. Using the EM, EAS is then able to predict what will be the impact on energy of executing a task on one particular CPU or another, and to make decisions which minimize energy consumption.

A key design point of EAS lies in its tight binding to the DVFS subsystem, CPUFreq, which is responsible for driving the frequencies of CPUs. The schedutil CPUFreq governor uses the scheduler’s load-tracking metrics to decide upon frequency changes of CPUs. The same metrics are also used by the EAS algorithms to coordinate frequency requests and task placement decisions. This level of coordination coupled with the EM allows EAS to estimate how a task migration can impact the system’s energy consumption, and take that into account during the decision-making process. In essence, EAS enables the Linux task scheduler to leverage the energy-efficiency of little CPUs to improve battery life of mobile devices without harming the performance.

The figure below shows test results using EAS on an Arm Juno r0 platform using RT-App (a synthetic workload generator) in a low intensity scenario where energy consumption is the primary concern, and Hackbench as a performance benchmark. More details about the test setup and the metrics can be found in the original EAS cover letter on LKML .

EAS benchmark results

Our mainline implementation has been carefully crafted to allow multiple sources for the EM configuration data. From 5.1 onwards, mainline Linux will fully support loading an EM by:

  • using the dynamic-power-coefficient devicetree binding which enables estimating the power consumed by a CPU at any possible frequency;
  • or using firmware-supplied power/performance values using the Arm Software Control and Management Interface (SCMI). Where possible, this is the preferred option as often the firmware knows more about the specific implementation than the kernel does (e.g. silicon revision or silicon fabrication technology).

Why EAS in mainline matters ?

Products based upon Arm big.LITTLE technology launched in 2013.  In the first iterations, simple CPU switching technology was used to execute tasks on either a high-performance ‘big’ core or on a power-saving ‘little’ core.  Later, Global Task Scheduling allowed all cores to be visible to the scheduler which proved that this is beneficial. Since android-3.18, EAS support has been available for the Android Common Kernel which makes the Linux scheduler aware of the power/performance differences between the cores.  Alongside this, Arm and Linaro have worked closely on incrementally improving the mainline Linux scheduler to be fully aware of the differences between CPUs. This has culminated in the addition of the EM which completes the pieces to enable EAS in mainline kernels.

With EAS upstream, the entire range of Linux-derived products are able to achieve energy savings - including ChromeOS and all Linux distributions for example. For the existing users of EAS in Android, being able to use a mainline feature in lieu of Android-specific code relieves them from a significant maintenance burden caused by out-of-tree code. Moreover, having EAS in mainline will improve test coverage by enabling more developers to use it, which will help raise the code quality even further.

For more information

The EAS Arm developer web page tracks the latest EAS-related development activities. In addition, the mainline documentation of EAS’ building blocks (anticipated in Linux 5.1+) can be found in the kernel source tree under:

  • Documentation/power/energy-model.txt (describes the APIs of the EM framework used by EAS, and explains how new platforms can use it);
  • Documentation/scheduler/sched-energy.txt (details the key design points of EAS and how to enable it step by step)
Anonymous
Architectures and Processors blog
  • Introducing GICv5: Scalable and secure interrupt management for Arm

    Christoffer Dall
    Christoffer Dall
    Introducing Arm GICv5: a scalable, hypervisor-free interrupt controller for modern multi-core systems with improved virtualization and real-time support.
    • April 28, 2025
  • Getting started with AARCHMRS Features.json using Python

    Joh
    Joh
    A high-level introduction to the Arm Architecture Machine Readable Specification (AARCHMRS) Features.json with some examples to interpret and start to work with the available data using Python.
    • April 8, 2025
  • Advancing server manageability on Arm Neoverse Compute Subsystem (CSS) with OpenBMC

    Samer El-Haj-Mahmoud
    Samer El-Haj-Mahmoud
    Arm and 9elements Cyber Security have brought a prototype of OpenBMC to the Arm Neoverse Compute Subsystem (CSS) to advancing server manageability.
    • January 28, 2025