Overview

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.

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/core-dump/energy-aware-scheduling-eas-progress-update/

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

EAS mainline development

The upstream development takes place on Linux Kernel Mailing List (LKML) where enhancements and patches are proposed and discussed with the Linux kernel community.  EAS has been developed previously as a set of large patchsets (e.g. EAS RFCv5), but this has transitioned to smaller standalone patches.

A snapshot of current proposed patchsets is available on linux-arm.org/git (see resources).  Please note it is minimally tested, liable to change as scheduler development evolves, and should be used by advanced developers only.

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.

ARM will regularly update documentation and testing on the AOSP versions of EAS according to a release schedule: EAS r1.2, r1.3 etc.

All work on the product codeline is now being done on AOSP, and development takes place in the open on the 'eas-dev' mailing list.  Experimental proposed patches will be submitted to AOSP gerritt for public review & evaluation, and developers should subscribe to eas-dev to participate in this.

EAS News

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

Resources

Mailing lists

AOSP Common Kernel (includes EAS): v3.18 and v4.4

In-progress mainline patchset development (for LKML contributors) based on Linux scheduler maintainers' sched-tip.  Note: not intended for product use and liable to change frequently.

EAS Validation & Test Suite

Linux Scheduler Tracing and Debug tools