Energy Aware Scheduling (EAS) is an enhancement to Linux power management, unifying CPU power control under the Linux kernel. EAS extends the Linux kernel scheduler to make it fully aware of the power/performance capabilities of the CPUs in the system, to optimize energy consumption for advanced multi-core SoCs including big.LITTLE.  With EAS, the Linux kernel will use the task load and a CPU ‘Energy Model’ to control task placement to select the optimal CPU to run on.

Arm, Linaro and key partners are contributing jointly to the development of EAS.

Information on Energy Aware Scheduling.

EAS Structure

EAS consists of a number of different components which are being developed to bring together energy efficient scheduling under the Linux scheduler.

A detailed introduction to EAS is available from Linaro: http://www.linaro.org/blog/energy-aware-scheduling-eas-progress-update/

EAS is currently in active development and testing, and work is taking place in two codelines:

EAS mainline development

As of January-2019, the majority of EAS is now merged into mainline Linux (from Linux-5.0 onwards) and only small integration changes are required to enable it.

EAS improvements are continuing with additional patches posted on Linux Kernel Mailing List (LKML).  For full details on the upstream development please see EAS Mainline Development

Product test development codeline

For product use, a version of EAS is available as part of AOSP common kernel. This contains a full implementation with additional enhancements which may not been posted upstream yet, and is the recommended release for product deployment based on Arm big.LITTLE or DynamIQ technology. This kernel is intended for Android and ChromeOS device testing, and the Android common kernel can be applied to other Linux-based systems as well.

Until June-2018, Arm released AOSP versions of EAS according to a quarterly release schedule: EAS r1.2, ... r1.5

From June-2018, Arm is targeting closer alignment with mainline Linux, with one major release per year (soon after android common kernel release).  For full details please see Contributing to EAS.  The first release will be based on android-4.19.

All work on the product codeline is now being done on AOSP common kernel, and development takes place in the open. Experimental proposed patches will be submitted to AOSP gerrit for code reviews, and developers should subscribe to eas-dev mailing list for email discussions.

DynamIQ support

Arm has a document discussing how EAS can be used to support DynamIQ flexible microarchitecture: DynamIQ_design_specification_v1.1

EAS News

February 2019

December 2018

November 2018

June 2018

April 2018

  • EAS Product Codeline r1.5 released for AOSP Common Kernel 4.9 and 4.14
  • Scheduler enhancements including EAS discussed at OSPM2018 in Pisa, Italy
  • Linaro Connect HKG18-501 presentation on EAS

December 2017

October 2017

  • Google announces Pixel2 (device codename 'wahoo'), using EAS
  • EAS Product Codeline r1.4 released for AOSP Common Kernel 4.4 and 4.9 (see below for details)
  • Details of changes in EAS r1.4 in EAS Update presented at Linaro Connect SFO17

September 2017

July 2017

  • EAS Product Codeline r1.3 released for AOSP Common Kernel 4.4 and 4.9 (see below for details)

June 2017

  • EAS Product Codeline r1.2 merged into AOSP Common Kernel 4.4

May 2017

March 2017 

February 2017

  • Arm's Juri Lelli presents on SCHED_DEADLINE at ELC Portland 2017  video  slides

November 2016

October 2016

August 2016


Mailing lists

AOSP Common Kernel (includes EAS):

EAS validation & Linux Scheduler Tracing and Debug tools