Re: [RFC PATCH 4/6] sched/dl: Improve capacity-aware wakeup

From: luca abeni
Date: Wed May 08 2019 - 10:13:20 EST

Hi Juri,

On Wed, 8 May 2019 15:10:18 +0200
Juri Lelli <juri.lelli@xxxxxxxxxx> wrote:

> On 08/05/19 14:47, luca abeni wrote:
> [...]
> > Notice that all this logic is used only to select one of the idle
> > cores (instead of picking the first idle core, we select the less
> > powerful core on which the task "fits").
> >
> > So, running_bw does not provide any useful information, in this
> > case; maybe this_bw can be more useful.
> Ah, indeed.
> However, what happens when cores are all busy? Can load balancing
> decisions based on deadline values only break capacity awareness? (I
> understand this is an RFC, so a "yes, something we need to look at" is
> OK :-)

I have no definitive answer about this :)

If we do not want to break EDF and its properties, migrations have to
be performed so that the "global EDF invariant" (schedule the m tasks
with earliest deadlines) is not broken (and capacity-based migrations
for non-idle cores risk to break this invariant).

In theory, we should do something like "schedule the earliest deadline
task on the fastest core", but this would require too many migrations
(and would require to migrate a task while it is executing, etc...)

I am convinced that doing the capacity-aware migrations when we have
idle cores helps to reduce migrations (avoiding "useless migrations")
when there are no idle cores, but I have no proof about this (just some
simple examples); this is why I say that I have no definitive answer...