Skip to content
Commit 504cead9 authored by Valentin Schneider's avatar Valentin Schneider Committed by Quentin Perret
Browse files

tests/eas: Add misfit.py test file

This test suite targets the behaviour of misfit tasks.

For now it only has the "staggered finishes" test case, which consists
of NR_CPUS 100% tasks, briefly pinned to one CPU to ensure there is one
task per CPU.
The tasks running on the big CPUs should complete first, and at this
point we expect them to pull the tasks on the LITTLEs via idle balance.

The tests associated with this workload are:

- test_preempt_time:
    Asserts that tasks are not preempted for more than 1% of the
    test duration, since each task should get its own CPU.

- test_migration_delay:
    Asserts that big CPUs pull tasks ASAP after their initial task
    is completed.

- test_throughput
    Asserts that big CPUs are never idle for more than 1ms when there
    are tasks running the LITTLEs.

======
Known issues:

Because there can be unwanted processes (e.g. sshd) popping up at the
wrong time, causing the imbalance to be of type group_overloaded
instead of group_misfit_task, the misfit logic can be skipped in the
load balance. This is something that should eventually be fixed.

Also, test_migration_delay is just a subset of test_throughput. However,
because of the group_overloaded issues, tasks can still move from big
to LITTLE CPUs, and it takes >1ms to move them back, causing
test_throughput to fail.

test_migration_delay is here to at least ensure the newidle pull
happened, since test_throughput is going to fail a lot in the
foreseeable future.
parent f1f6ed9d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment