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.