Re: [RFD] sched/deadline: Support single CPU affinity

From: Peter Zijlstra
Date: Thu Dec 15 2016 - 07:16:47 EST

On Thu, Dec 15, 2016 at 12:30:43PM +0100, Tommaso Cucinotta wrote:
> Hi Peter,
> On 13/12/2016 11:21, Peter Zijlstra wrote:
> >On Thu, Nov 10, 2016 at 11:01:59AM +0100, Tommaso Cucinotta wrote:
> >>Just a note: if you want to recover arbitrary task affinities, you can re-cast your above test like this:
> >>
> >>for_each_processor(cpu)
> >> \sum U[t]/A[t] \leq 1 (or U_max), for each task t on cpu, with utilization U[t] and A[t] tasks overall in its affinity mask
> >>
> >Do I read it correct when I interpret A[t] as the number of CPUs in its
> >affinity mask?
> yes, exactly, A[t] number of CPUs in the task affinity mask (sorry for my bad write-up)

n/p, I got it ;-)

> >Also, does recoverable mean a bound tardiness, or is that something
> >weaker still?
> nope, nothing exact -- it just meant providing flexible but simple &
> consistent (ie, towards recovering affinity masks) options from the
> kernel/scheduler side, leaving more complex & exact tests to
> user-space, or future add-ons to the kernel.

So it would be good to get a more exact answer on what 'recoverable'
means. It cannot mean unbounded tardiness, since that implies runaway
state. It clearly doesn't mean no tardiness, as proven by the G-EDF
special case.

So I was hoping it would mean bounded, but possibly with a worse bound
than regular G-EDF.

In any case, it does provide a way to look at admission control that
might be useful. I'll have to play around with it a bit.