]> git.baikalelectronics.ru Git - kernel.git/commit
sched/deadline: Make DL capacity-aware
authorLuca Abeni <luca.abeni@santannapisa.it>
Wed, 20 May 2020 13:42:42 +0000 (15:42 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 15 Jun 2020 12:10:05 +0000 (14:10 +0200)
commit5fcace46b268f45f7dac427f31646a2d299a6ac5
tree701ac2c1c5e1789bf7068fdc560081b5b90a7f36
parent957c83b38f6ed1087b6c9776931ea2c6fa149d78
sched/deadline: Make DL capacity-aware

The current SCHED_DEADLINE (DL) scheduler uses a global EDF scheduling
algorithm w/o considering CPU capacity or task utilization.
This works well on homogeneous systems where DL tasks are guaranteed
to have a bounded tardiness but presents issues on heterogeneous
systems.

A DL task can migrate to a CPU which does not have enough CPU capacity
to correctly serve the task (e.g. a task w/ 70ms runtime and 100ms
period on a CPU w/ 512 capacity).

Add the DL fitness function dl_task_fits_capacity() for DL admission
control on heterogeneous systems. A task fits onto a CPU if:

    CPU original capacity / 1024 >= task runtime / task deadline

Use this function on heterogeneous systems to try to find a CPU which
meets this criterion during task wakeup, push and offline migration.

On homogeneous systems the original behavior of the DL admission
control should be retained.

Signed-off-by: Luca Abeni <luca.abeni@santannapisa.it>
Signed-off-by: Dietmar Eggemann <dietmar.eggemann@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Juri Lelli <juri.lelli@redhat.com>
Link: https://lkml.kernel.org/r/20200520134243.19352-5-dietmar.eggemann@arm.com
kernel/sched/cpudeadline.c
kernel/sched/deadline.c
kernel/sched/sched.h