EAS Development for Mainline Linux

EAS development for mainline Linux takes place on LKML and Linaro eas-dev mailing lists where proposed patches are discussed with the community. Arm now provides a pre-integrated version of latest EAS patches for mainline, for upstream development use.

EAS mainline is a moving integration branch tracking tip:sched/core and adding the latest versions of EAS related patch sets targeted at the mainline kernel. The patches may already be under discussion on relevant open source mailing lists or waiting here while their dependencies get resolved and merged upstream.

The integration branch comes as is with synthetic test case testing only. The intention is to have a single branch containing the full EAS picture for mainline Linux kernel developers interested in tracking progress. This EAS mainline integration branch is not suitable for product development. For product, please use the AOSP EAS product codeline.

Source code

EAS mainline integration branches are made available regularly on:

        git://linux-arm.org/linux-power.git

Update 11-Nov-2017:  Arm increases frequency of integrations to once every 2 weeks to more closely track mainline changes and improve testing.

Update 19-Jan-2018:  Arm runs Lisa tests (generic and load_tracking) against each EAS integration from now on.

Update 02-Mar-2018:  Arm runs additional Lisa tests (more load_tracking and misfit) against each EAS integration from now on.

  • eas/next/integration_20180413

    Tree:

    integration_20180413

    Integration base (git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git sched/core) available at:

    integration_20180413_base

    Platform support:

    Arm TC2, Arm Juno r2, Hikey620, Hikey960

    New changes:

    Util_est (Utilization estimation) in tip/sched/core.

    Main features:

    • EAS core patches that make energy-aware task placement decisions.

    • Misfit task, i.e. forcing migration of running tasks that do not fit on the CPU they are currently running on.

    • Runtime scheduler domain flag detection.

    • Periodic load balance improvements.

    • Debugging tracepoints and procfs interface.

    Testing:

      Boot testing on supported platforms.

      Ran LISA's EAS tests (generic, load_tracking and misfit) on Arm Juno r2. Tests show 8/39 failures:

             > tests.eas.generic.EnergyModelWakeMigration.test_slack

             > tests.eas.generic.EnergyModelWakeMigration.test_task_placement

             > tests.eas.generic.RampDown.test_test_slack

             > tests.eas.generic.RampUp.test_slack

             > tests.eas.generic.RampUp.test_task_placement

             > tests.eas.generic.TwoBigTasks.test_slack

             > tests.eas.generic.TwoBigThreeSmall.test_slack

             > tests.eas.misfit.StaggeredFinishes.test_migration_delay

    Next work items:

    • Continue to try to bring the number of failed test cases further down.