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, mainline release candidate or linux-pm testing 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 common kernel.

Source code

EAS mainline integration branches are made available regularly on:

        https://gitlab.arm.com/linux-arm/linux-power

The releases are tagged with the date e.g. -20201127 so old integrations are available for comparison

Latest: integration-20201127

Tree: eas/next/integration

Base: eas/next/integration-base

Features:

  1. Instrument sched domain flags (v5.10-rc1)
  2. CPPC FFH support using AMUs (v4 on lkml)
  3. Cpufreq FIE cleanup (v5.10-rc1)

Features in Linux mainline:

  1. v4.13 - CPU Invariant Engine (CIE)
  2. v4.15 - Frequency Invariant Engine (FIE)
  3. v4.17 - Idle CPU Per-Entity Load-Tracking (PELT) update
  4. v4.17 - Util(ization) Est(imated)
  5. v4.20 - Misfit task, i.e. forcing migration of running tasks that do not fit on the CPU they are currently running on
  6. v4.20 - Runtime scheduler domain flag detection
  7. v5.0   - Per-cpu Energy Model (EM) and Energy Aware Scheduling (EAS)
  8. v5.3   - Tracepoints (PELT and over-utilzation)
  9. v5.3   - Util(ization) clamping (core and per-task interface)
  10. v5.4   - Util(ization) clamping (cgroup interface)
  11. v5.4   - Patch-set 'sched/fair: Reduce complexity of energy calculation'
  12. v5.5   - Thermal/Cpu Cooling as Energy Model (EM) user
  13. v5.7   - Activity Monitor Unit (AMU) support
  14. v5.8   - Streamline select_task_rq() & select_task_rq_fair() (partly (4/9 patches))
  15. v5.9   - (Devfreq) devices as Energy Model user
  16. v5.9   - SCHED_DEADLINE capacity awareness

Platforms we test on:

  1. Arm Juno r0 (arm64)
  2. Arm Juno r2 (arm64)
  3. Hikey960 (arm64) (needs out-of-tree patches  (hikey960_mainline topic))
  4. DB845C (arm64) (needs out-of-tree patch (db845c_mainline topic))
  5. Arm TC2 (arm32)

Next work items:

  1. Pushing Features upstream
  2. 100% test pass rate on all platforms
  • Test Results (integration 20201127)

    (1) juno-r0:
        
    testcase                                                                old%   new%  delta%       pvalue fix_iter#
    -------------------------------------------------------------------------------------------------------------------
    Invariance:iter_invariance_items[cpu=1@450000]:test_load_correctness    0.4%   9.2%    8.8%     1.83e-06        31
    Invariance:iter_invariance_items[cpu=1@450000]:test_util_correctness    0.4%   9.2%    8.8%     1.83e-06        31
    Invariance:test_load_correctness                                        0.8%  12.4%   11.6%     5.47e-08        23
    Invariance:test_util_correctness                                        0.8%  12.8%   12.0%     2.72e-08        22
    OneTaskCPUMigration:test_util_task_migration                            0.0%  28.4%   28.4%     2.53e-24        10

    test/eas_behaviour (LISA-test) in 0:08:40 [BAD]
        EnergyModelWakeMigration:test_dmesg:          passed 250/250 (100.0%)
        EnergyModelWakeMigration:test_slack:          passed 250/250 (100.0%)
        EnergyModelWakeMigration:test_task_placement: passed 250/250 (100.0%)
        OneSmallTask:test_dmesg:                      passed 250/250 (100.0%)
        OneSmallTask:test_slack:                      passed 250/250 (100.0%)
        OneSmallTask:test_task_placement:             FAILED 1/250   (0.4%)
        RampDown:test_dmesg:                          passed 250/250 (100.0%)
        RampDown:test_slack:                          passed 250/250 (100.0%)
        RampDown:test_task_placement:                 passed 250/250 (100.0%)
        RampUp:test_dmesg:                            passed 250/250 (100.0%)
        RampUp:test_slack:                            passed 250/250 (100.0%)
        RampUp:test_task_placement:                   passed 250/250 (100.0%)
        ThreeSmallTasks:test_dmesg:                   passed 250/250 (100.0%)
        ThreeSmallTasks:test_slack:                   passed 250/250 (100.0%)
        ThreeSmallTasks:test_task_placement:          passed 250/250 (100.0%)
        TwoBigTasks:test_dmesg:                       passed 250/250 (100.0%)
        TwoBigTasks:test_slack:                       FAILED 1/250   (0.4%)
        TwoBigTasks:test_task_placement:              passed 250/250 (100.0%)
        TwoBigThreeSmall:test_dmesg:                  FAILED 1/250   (0.4%)
        TwoBigThreeSmall:test_slack:                  passed 250/250 (100.0%)
        TwoBigThreeSmall:test_task_placement:         FAILED 1/250   (0.4%)
        
        Error: 0/21, Failed: 4/21, Undecided: 0/21, Skipped: 0/21, Passed: 17/21

    test/load_tracking (LISA-test) in 0:26:11 [BAD]
        Invariance:iter_invariance_items[cpu=0@450000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@450000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@450000]:test_load_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@450000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@450000]:test_util_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@575000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@575000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@575000]:test_load_correctness:  FAILED 4/250   (1.6%)
        Invariance:iter_invariance_items[cpu=0@575000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@575000]:test_util_correctness:  FAILED 4/250   (1.6%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_load_correctness:  FAILED 3/250   (1.2%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_util_correctness:  FAILED 3/250   (1.2%)
        Invariance:iter_invariance_items[cpu=0@775000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@775000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@775000]:test_load_correctness:  FAILED 2/250   (0.8%)
        Invariance:iter_invariance_items[cpu=0@775000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@775000]:test_util_correctness:  FAILED 3/250   (1.2%)
        Invariance:iter_invariance_items[cpu=0@850000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@850000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@850000]:test_load_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@850000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@850000]:test_util_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@450000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@450000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@450000]:test_load_correctness:  FAILED 23/250  (9.2%)
        Invariance:iter_invariance_items[cpu=1@450000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@450000]:test_util_correctness:  FAILED 23/250  (9.2%)
        Invariance:iter_invariance_items[cpu=1@625000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@625000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@625000]:test_load_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@625000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@625000]:test_util_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_load_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_util_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@950000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@950000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@950000]:test_load_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@950000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@950000]:test_util_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_dmesg:            passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_load_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_load_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_util_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_util_correctness: passed 250/250 (100.0%)
        Invariance:test_cpu_invariance:                                        passed 250/250 (100.0%)
        Invariance:test_freq_invariance:                                       passed 250/250 (100.0%)
        Invariance:test_load_behaviour:                                        passed 250/250 (100.0%)
        Invariance:test_load_correctness:                                      FAILED 31/250  (12.4%)
        Invariance:test_util_behaviour:                                        passed 250/250 (100.0%)
        Invariance:test_util_correctness:                                      FAILED 32/250  (12.8%)
        NTasksCPUMigration:test_dmesg:                                         passed 250/250 (100.0%)
        NTasksCPUMigration:test_util_task_migration:                           passed 250/250 (100.0%)
        OneTaskCPUMigration:test_dmesg:                                        passed 250/250 (100.0%)
        OneTaskCPUMigration:test_util_task_migration:                          FAILED 71/250  (28.4%)
        TwoTasksCPUMigration:test_dmesg:                                       passed 250/250 (100.0%)
        TwoTasksCPUMigration:test_util_task_migration:                         passed 250/250 (100.0%)
        
        Error: 0/62, Failed: 11/62, Undecided: 0/62, Skipped: 0/62, Passed: 51/62

    test/misfit (LISA-test) in 0:02:16 [BAD]
        StaggeredFinishes:test_dmesg:        FAILED 4/250   (1.6%)
        StaggeredFinishes:test_preempt_time: passed 250/250 (100.0%)
        StaggeredFinishes:test_throughput:   passed 250/250 (100.0%)
        
        Error: 0/3, Failed: 1/3, Undecided: 0/3, Skipped: 0/3, Passed: 2/3

    test/util_tracking (LISA-test) in 0:02:38 [BAD]
        UtilConvergence:test_activations: passed 250/250 (100.0%)
        UtilConvergence:test_dmesg:       passed 250/250 (100.0%)
        UtilConvergence:test_means:       FAILED 2/250   (0.8%)
        
        Error: 0/3, Failed: 1/3, Undecided: 0/3, Skipped: 0/3, Passed: 2/3

    test/other (LISA-test) in 0:04:41 [BAD]
        CapacitySanity:test_capacity_sanity:     passed 250/250 (100.0%)
        UserspaceSanity:test_dmesg:              FAILED 1/250   (0.4%)
        UserspaceSanity:test_performance_sanity: passed 250/250 (100.0%)
        
        Error: 0/3, Failed: 1/3, Undecided: 0/3, Skipped: 0/3, Passed: 2/3

    test/hotplug (LISA-test) in 0:01:53 [GOOD]
        HotplugTorture:test_cpus_alive:   passed 250/250 (100.0%)
        HotplugTorture:test_target_alive: passed 250/250 (100.0%)
        
        Error: 0/2, Failed: 0/2, Undecided: 0/2, Skipped: 0/2, Passed: 2/2

    (2) juno-r2:

    testcase                                                                old%   new%  delta%       pvalue fix_iter#
    -------------------------------------------------------------------------------------------------------------------
    Invariance:iter_invariance_items[cpu=1@600000]:test_load_correctness    0.0%   7.9%    7.9%     6.45e-06        40
    Invariance:iter_invariance_items[cpu=1@600000]:test_util_correctness    0.0%   7.9%    7.9%     6.45e-06        40
    Invariance:test_load_correctness                                        0.8%   7.9%    7.1%     2.63e-04        40
    Invariance:test_util_correctness                                        0.4%   7.9%    7.5%     5.61e-05        40
    OneTaskCPUMigration:test_util_task_migration                            0.0%   5.2%    5.2%     3.84e-04        69

    test/eas_behaviour (LISA-test) in 0:05:57 [BAD]
        EnergyModelWakeMigration:test_dmesg:          passed    153/153 (100.0%)
        EnergyModelWakeMigration:test_slack:          FAILED    1/153   (0.7%)
        EnergyModelWakeMigration:test_task_placement: FAILED    1/153   (0.7%)
        OneSmallTask:test_dmesg:                      passed    153/153 (100.0%)
        OneSmallTask:test_slack:                      passed    153/153 (100.0%)
        OneSmallTask:test_task_placement:             passed    153/153 (100.0%)
        RampDown:test_dmesg:                          passed    153/153 (100.0%)
        RampDown:test_slack:                          passed    153/153 (100.0%)
        RampDown:test_task_placement:                 passed    153/153 (100.0%)
        RampUp:test_dmesg:                            passed    153/153 (100.0%)
        RampUp:test_slack:                            passed    153/153 (100.0%)
        RampUp:test_task_placement:                   passed    153/153 (100.0%)
        ThreeSmallTasks:test_dmesg:                   passed    153/153 (100.0%)
        ThreeSmallTasks:test_slack:                   passed    153/153 (100.0%)
        ThreeSmallTasks:test_task_placement:          passed    153/153 (100.0%)
        TwoBigTasks:test_dmesg:                       passed    153/153 (100.0%)
        TwoBigTasks:test_slack:                       FAILED    2/153   (1.3%)
        TwoBigTasks:test_task_placement:              undecided 1/153   (0.7%)
        TwoBigThreeSmall:test_dmesg:                  passed    153/153 (100.0%)
        TwoBigThreeSmall:test_slack:                  passed    153/153 (100.0%)
        TwoBigThreeSmall:test_task_placement:         undecided 1/153   (0.7%)
        TwoBigThreeSmall:test_task_placement:         FAILED    50/153  (32.7%)
        
        Error: 0/21, Failed: 4/21, Undecided: 2/21, Skipped: 0/21, Passed: 16/21

    test/load_tracking (LISA-test) in 0:12:04 [BAD]
        Invariance:iter_invariance_items[cpu=0@450000]:test_dmesg:             passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@450000]:test_load_behaviour:    passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@450000]:test_load_correctness:  passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@450000]:test_util_behaviour:    passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@450000]:test_util_correctness:  passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_dmesg:             passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_load_behaviour:    passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_load_correctness:  passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_util_behaviour:    passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_util_correctness:  passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@950000]:test_dmesg:             passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@950000]:test_load_behaviour:    passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@950000]:test_load_correctness:  passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@950000]:test_util_behaviour:    passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=0@950000]:test_util_correctness:  passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_dmesg:             passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_load_behaviour:    passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_load_correctness:  FAILED 12/152  (7.9%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_util_behaviour:    passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_util_correctness:  FAILED 12/152  (7.9%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_dmesg:            passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_load_behaviour:   passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_load_correctness: passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_util_behaviour:   passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_util_correctness: passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_dmesg:            passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_load_behaviour:   passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_load_correctness: passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_util_behaviour:   passed 152/152 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_util_correctness: passed 152/152 (100.0%)
        Invariance:test_cpu_invariance:                                        passed 152/152 (100.0%)
        Invariance:test_freq_invariance:                                       passed 152/152 (100.0%)
        Invariance:test_load_behaviour:                                        passed 152/152 (100.0%)
        Invariance:test_load_correctness:                                      FAILED 12/152  (7.9%)
        Invariance:test_util_behaviour:                                        passed 152/152 (100.0%)
        Invariance:test_util_correctness:                                      FAILED 12/152  (7.9%)
        NTasksCPUMigration:test_dmesg:                                         passed 153/153 (100.0%)
        NTasksCPUMigration:test_util_task_migration:                           passed 153/153 (100.0%)
        OneTaskCPUMigration:test_dmesg:                                        passed 153/153 (100.0%)
        OneTaskCPUMigration:test_util_task_migration:                          FAILED 8/153   (5.2%)
        TwoTasksCPUMigration:test_dmesg:                                       passed 153/153 (100.0%)
        TwoTasksCPUMigration:test_util_task_migration:                         passed 153/153 (100.0%)
        
        Error: 0/42, Failed: 5/42, Undecided: 0/42, Skipped: 0/42, Passed: 37/42

    test/misfit (LISA-test) in 0:02:02 [BAD]
        StaggeredFinishes:test_dmesg:        FAILED 1/164   (0.6%)
        StaggeredFinishes:test_preempt_time: passed 164/164 (100.0%)
        StaggeredFinishes:test_throughput:   passed 164/164 (100.0%)
        
        Error: 0/3, Failed: 1/3, Undecided: 0/3, Skipped: 0/3, Passed: 2/3

    test/util_tracking (LISA-test) in 0:02:12 [BAD]
        UtilConvergence:test_activations: passed 152/152 (100.0%)
        UtilConvergence:test_dmesg:       passed 152/152 (100.0%)
        UtilConvergence:test_means:       passed 152/152 (100.0%)
        
        Error: 0/3, Failed: 0/3, Undecided: 0/3, Skipped: 0/3, Passed: 3/3

    test/other (LISA-test) in 0:02:50 [BAD]
        CapacitySanity:test_capacity_sanity:     passed 152/152 (100.0%)
        UserspaceSanity:test_dmesg:              FAILED 2/152   (1.3%)
        UserspaceSanity:test_performance_sanity: passed 152/152 (100.0%)
        
        Error: 0/3, Failed: 1/3, Undecided: 0/3, Skipped: 0/3, Passed: 2/3

    test/hotplug (LISA-test) in 0:02:00 [BAD]
        HotplugTorture:test_cpus_alive:   passed 164/164 (100.0%)
        HotplugTorture:test_target_alive: passed 164/164 (100.0%)
        
        Error: 0/2, Failed: 0/2, Undecided: 0/2, Skipped: 0/2, Passed: 2/2

    (3) hikey960:

    testcase                                                                old%   new%  delta%       pvalue fix_iter#
    -------------------------------------------------------------------------------------------------------------------
    Invariance:iter_invariance_items[cpu=4@2112000]:test_load_behaviour     9.7%   0.0%   -9.7%     4.99e-07           
    Invariance:iter_invariance_items[cpu=4@2112000]:test_util_behaviour    10.4%   0.0%  -10.4%     1.71e-07           
    Invariance:test_load_behaviour                                         11.1%   0.0%  -11.1%     5.81e-08           
    Invariance:test_util_behaviour                                         11.8%   0.0%  -11.8%     1.97e-08           
    StaggeredFinishes:test_dmesg                                          100.0%   0.0% -100.0%    3.02e-111           

    test/eas_behaviour (LISA-test) in 0:08:06 [BAD]
        EnergyModelWakeMigration:test_dmesg:          passed 250/250 (100.0%)
        EnergyModelWakeMigration:test_slack:          passed 250/250 (100.0%)
        EnergyModelWakeMigration:test_task_placement: passed 250/250 (100.0%)
        OneSmallTask:test_dmesg:                      passed 250/250 (100.0%)
        OneSmallTask:test_slack:                      passed 250/250 (100.0%)
        OneSmallTask:test_task_placement:             FAILED 5/250   (2.0%)
        RampDown:test_dmesg:                          passed 250/250 (100.0%)
        RampDown:test_slack:                          passed 250/250 (100.0%)
        RampDown:test_task_placement:                 passed 250/250 (100.0%)
        RampUp:test_dmesg:                            passed 250/250 (100.0%)
        RampUp:test_slack:                            passed 250/250 (100.0%)
        RampUp:test_task_placement:                   passed 250/250 (100.0%)
        ThreeSmallTasks:test_dmesg:                   passed 250/250 (100.0%)
        ThreeSmallTasks:test_slack:                   passed 250/250 (100.0%)
        ThreeSmallTasks:test_task_placement:          passed 250/250 (100.0%)
        TwoBigTasks:test_dmesg:                       passed 250/250 (100.0%)
        TwoBigTasks:test_slack:                       passed 250/250 (100.0%)
        TwoBigTasks:test_task_placement:              passed 250/250 (100.0%)
        TwoBigThreeSmall:test_dmesg:                  passed 250/250 (100.0%)
        TwoBigThreeSmall:test_slack:                  passed 250/250 (100.0%)
        TwoBigThreeSmall:test_task_placement:         passed 250/250 (100.0%)
        
    test/load_tracking (LISA-test) in 0:25:49 [BAD]
        Invariance:iter_invariance_items[cpu=0@533000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@533000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@533000]:test_load_correctness:  FAILED 6/250   (2.4%)
        Invariance:iter_invariance_items[cpu=0@533000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@533000]:test_util_correctness:  FAILED 6/250   (2.4%)
        Invariance:iter_invariance_items[cpu=0@999000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@999000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@999000]:test_load_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@999000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@999000]:test_util_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1402000]:test_dmesg:            passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1402000]:test_load_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1402000]:test_load_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1402000]:test_util_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1402000]:test_util_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1709000]:test_dmesg:            passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1709000]:test_load_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1709000]:test_load_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1709000]:test_util_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1709000]:test_util_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1844000]:test_dmesg:            passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1844000]:test_load_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1844000]:test_load_correctness: FAILED 1/250   (0.4%)
        Invariance:iter_invariance_items[cpu=0@1844000]:test_util_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1844000]:test_util_correctness: FAILED 1/250   (0.4%)
        Invariance:iter_invariance_items[cpu=4@903000]:test_dmesg:             passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@903000]:test_load_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@903000]:test_load_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@903000]:test_util_behaviour:    passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@903000]:test_util_correctness:  passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1421000]:test_dmesg:            passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1421000]:test_load_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1421000]:test_load_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1421000]:test_util_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1421000]:test_util_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1805000]:test_dmesg:            passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1805000]:test_load_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1805000]:test_load_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1805000]:test_util_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@1805000]:test_util_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2112000]:test_dmesg:            passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2112000]:test_load_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2112000]:test_load_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2112000]:test_util_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2112000]:test_util_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2362000]:test_dmesg:            passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2362000]:test_load_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2362000]:test_load_correctness: passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2362000]:test_util_behaviour:   passed 250/250 (100.0%)
        Invariance:iter_invariance_items[cpu=4@2362000]:test_util_correctness: passed 250/250 (100.0%)
        Invariance:test_cpu_invariance:                                        passed 250/250 (100.0%)
        Invariance:test_freq_invariance:                                       passed 250/250 (100.0%)
        Invariance:test_load_behaviour:                                        passed 250/250 (100.0%)
        Invariance:test_load_correctness:                                      FAILED 7/250   (2.8%)
        Invariance:test_util_behaviour:                                        passed 250/250 (100.0%)
        Invariance:test_util_correctness:                                      FAILED 7/250   (2.8%)
        NTasksCPUMigration:test_dmesg:                                         passed 250/250 (100.0%)
        NTasksCPUMigration:test_util_task_migration:                           passed 250/250 (100.0%)
        OneTaskCPUMigration:test_dmesg:                                        passed 250/250 (100.0%)
        OneTaskCPUMigration:test_util_task_migration:                          passed 250/250 (100.0%)
        TwoTasksCPUMigration:test_dmesg:                                       passed 250/250 (100.0%)
        TwoTasksCPUMigration:test_util_task_migration:                         passed 250/250 (100.0%)
        
        Error: 0/62, Failed: 6/62, Undecided: 0/62, Skipped: 0/62, Passed: 56/62

    test/misfit (LISA-test) in 0:02:14 [GOOD]
        StaggeredFinishes:test_dmesg:        passed    250/250 (100.0%)
        StaggeredFinishes:test_preempt_time: passed    250/250 (100.0%)
        StaggeredFinishes:test_throughput:   undecided 145/250 (58.0%)
        
        Error: 0/3, Failed: 0/3, Undecided: 1/3, Skipped: 0/3, Passed: 2/3

    test/util_tracking (LISA-test) in 0:02:32 [GOOD]
        UtilConvergence:test_activations: passed 250/250 (100.0%)
        UtilConvergence:test_dmesg:       passed 250/250 (100.0%)
        UtilConvergence:test_means:       passed 250/250 (100.0%)
        
        Error: 0/3, Failed: 0/3, Undecided: 0/3, Skipped: 0/3, Passed: 3/3

    test/other (LISA-test) in 0:04:39 [GOOD]
        CapacitySanity:test_capacity_sanity:     passed 250/250 (100.0%)
        UserspaceSanity:test_dmesg:              passed 250/250 (100.0%)
        UserspaceSanity:test_performance_sanity: passed 250/250 (100.0%)

    (4) TC2:

    test/eas_behaviour (LISA-test) in 0:03:27 [BAD]
        EnergyModelWakeMigration:test_dmesg:          passed 68/68 (100.0%)
        EnergyModelWakeMigration:test_slack:          passed 68/68 (100.0%)
        EnergyModelWakeMigration:test_task_placement: passed 68/68 (100.0%)
        OneSmallTask:test_dmesg:                      passed 68/68 (100.0%)
        OneSmallTask:test_slack:                      passed 68/68 (100.0%)
        OneSmallTask:test_task_placement:             passed 68/68 (100.0%)
        RampDown:test_dmesg:                          passed 68/68 (100.0%)
        RampDown:test_slack:                          passed 68/68 (100.0%)
        RampDown:test_task_placement:                 passed 68/68 (100.0%)
        RampUp:test_dmesg:                            passed 68/68 (100.0%)
        RampUp:test_slack:                            passed 68/68 (100.0%)
        RampUp:test_task_placement:                   passed 68/68 (100.0%)
        ThreeSmallTasks:test_dmesg:                   passed 68/68 (100.0%)
        ThreeSmallTasks:test_slack:                   passed 68/68 (100.0%)
        ThreeSmallTasks:test_task_placement:          passed 68/68 (100.0%)
        TwoBigTasks:test_dmesg:                       passed 68/68 (100.0%)
        TwoBigTasks:test_slack:                       passed 68/68 (100.0%)
        TwoBigTasks:test_task_placement:              passed 68/68 (100.0%)
        TwoBigThreeSmall:test_dmesg:                  passed 68/68 (100.0%)
        TwoBigThreeSmall:test_slack:                  passed 68/68 (100.0%)
        TwoBigThreeSmall:test_task_placement:         FAILED 1/68  (1.5%)
        
        Error: 0/21, Failed: 1/21, Undecided: 0/21, Skipped: 0/21, Passed: 20/21

    test/load_tracking (LISA-test) in 0:10:17 [BAD]
        Invariance:iter_invariance_items[cpu=0@350000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@350000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@350000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@350000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@350000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@400000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@400000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@400000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@400000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@400000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@500000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@500000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@500000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@500000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@500000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@600000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@600000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@600000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@600000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@600000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@700000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@800000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@900000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@900000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@900000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@900000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@900000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1000000]:test_dmesg:            passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1000000]:test_load_behaviour:   passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1000000]:test_load_correctness: passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1000000]:test_util_behaviour:   passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=0@1000000]:test_util_correctness: passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@500000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@500000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@500000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@500000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@500000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@600000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@700000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@700000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@700000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@700000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@700000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@800000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@900000]:test_dmesg:             passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@900000]:test_load_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@900000]:test_load_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@900000]:test_util_behaviour:    passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@900000]:test_util_correctness:  passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_dmesg:            passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_load_behaviour:   passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_load_correctness: passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_util_behaviour:   passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1000000]:test_util_correctness: passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_dmesg:            passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_load_behaviour:   passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_load_correctness: passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_util_behaviour:   passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1100000]:test_util_correctness: passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_dmesg:            passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_load_behaviour:   passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_load_correctness: passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_util_behaviour:   passed 68/68 (100.0%)
        Invariance:iter_invariance_items[cpu=1@1200000]:test_util_correctness: passed 68/68 (100.0%)
        Invariance:test_cpu_invariance:                                        passed 68/68 (100.0%)
        Invariance:test_freq_invariance:                                       passed 68/68 (100.0%)
        Invariance:test_load_behaviour:                                        passed 68/68 (100.0%)
        Invariance:test_load_correctness:                                      passed 68/68 (100.0%)
        Invariance:test_util_behaviour:                                        passed 68/68 (100.0%)
        Invariance:test_util_correctness:                                      passed 68/68 (100.0%)
        NTasksCPUMigration:test_dmesg:                                         passed 68/68 (100.0%)
        NTasksCPUMigration:test_util_task_migration:                           passed 68/68 (100.0%)
        OneTaskCPUMigration:test_dmesg:                                        passed 68/68 (100.0%)
        OneTaskCPUMigration:test_util_task_migration:                          passed 68/68 (100.0%)
        TwoTasksCPUMigration:test_dmesg:                                       passed 68/68 (100.0%)
        TwoTasksCPUMigration:test_util_task_migration:                         passed 68/68 (100.0%)
        
        Error: 0/92, Failed: 0/92, Undecided: 0/92, Skipped: 0/92, Passed: 92/92

    test/misfit (LISA-test) in 0:01:51 [BAD]
        StaggeredFinishes:test_dmesg:        passed 67/67 (100.0%)
        StaggeredFinishes:test_preempt_time: passed 67/67 (100.0%)
        StaggeredFinishes:test_throughput:   passed 67/67 (100.0%)
        
        Error: 0/3, Failed: 0/3, Undecided: 0/3, Skipped: 0/3, Passed: 3/3

    test/util_tracking (LISA-test) in 0:01:42 [BAD]
        UtilConvergence:test_activations: passed 67/67 (100.0%)
        UtilConvergence:test_dmesg:       passed 67/67 (100.0%)
        UtilConvergence:test_means:       passed 67/67 (100.0%)
        
        Error: 0/3, Failed: 0/3, Undecided: 0/3, Skipped: 0/3, Passed: 3/3

    test/other (LISA-test) in 0:02:35 [BAD]
        CapacitySanity:test_capacity_sanity:     passed 67/67 (100.0%)
        UserspaceSanity:test_dmesg:              passed 67/67 (100.0%)
        UserspaceSanity:test_performance_sanity: passed 67/67 (100.0%)
        
        Error: 0/3, Failed: 0/3, Undecided: 0/3, Skipped: 0/3, Passed: 3/3

    (5) db845c:

    no data.