]> git.baikalelectronics.ru Git - kernel.git/commit
sched/topology: Condition EAS enablement on FIE support
authorIonela Voinescu <ionela.voinescu@arm.com>
Tue, 27 Oct 2020 18:07:13 +0000 (18:07 +0000)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 19 Nov 2020 10:25:47 +0000 (11:25 +0100)
commitfca9cb165bd1c03bab83d9874ff1d83cb1a18537
treee6b93d2ef13b08cfec38f0729166e4edf99d3e43
parent348b33e238c5684839b3933fb6e48a899ab7143e
sched/topology: Condition EAS enablement on FIE support

In order to make accurate predictions across CPUs and for all performance
states, Energy Aware Scheduling (EAS) needs frequency-invariant load
tracking signals.

EAS task placement aims to minimize energy consumption, and does so in
part by limiting the search space to only CPUs with the highest spare
capacity (CPU capacity - CPU utilization) in their performance domain.
Those candidates are the placement choices that will keep frequency at
its lowest possible and therefore save the most energy.

But without frequency invariance, a CPU's utilization is relative to the
CPU's current performance level, and not relative to its maximum
performance level, which determines its capacity. As a result, it will
fail to correctly indicate any potential spare capacity obtained by an
increase in a CPU's performance level. Therefore, a non-invariant
utilization signal would render the EAS task placement logic invalid.

Now that we properly report support for the Frequency Invariance Engine
(FIE) through arch_scale_freq_invariant() for arm and arm64 systems,
while also ensuring a re-evaluation of the EAS use conditions for
possible invariance status change, we can assert this is the case when
initializing EAS. Warn and bail out otherwise.

Suggested-by: Quentin Perret <qperret@google.com>
Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20201027180713.7642-4-ionela.voinescu@arm.com
kernel/sched/topology.c