On Mon, 14 Dec 2015 16:56:17 +0100 Vincent Guittot <vincent.guit...@linaro.org> wrote: [...] > >> diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h > >> index 08858d1..e44c6be 100644 > >> --- a/kernel/sched/sched.h > >> +++ b/kernel/sched/sched.h > >> @@ -519,6 +519,8 @@ struct dl_rq { > >> #else > >> struct dl_bw dl_bw; > >> #endif > >> + /* This is the "average utilization" for this runqueue */ > >> + s64 avg_bw; > >> }; > > > > So I don't think this is right. AFAICT this projects the WCET as the > > amount of time actually used by DL. This will, under many > > circumstances, vastly overestimate the amount of time actually > > spend on it. Therefore unduly pessimisme the fair capacity of this > > CPU. > > I agree that if the WCET is far from reality, we will underestimate > available capacity for CFS. Have you got some use case in mind which > overestimates the WCET ? > If we can't rely on this parameters to evaluate the amount of capacity > used by deadline scheduler on a core, this will imply that we can't > also use it for requesting capacity to cpufreq and we should fallback > on a monitoring mechanism which reacts to a change instead of > anticipating it. I think a more "theoretically sound" approach would be to track the _active_ utilisation (informally speaking, the sum of the utilisations of the tasks that are actually active on a core - the exact definition of "active" is the trick here). As done, for example, here: https://github.com/lucabe72/linux-reclaiming/tree/track-utilisation-v2 (in particular, see https://github.com/lucabe72/linux-reclaiming/commit/49fc786a1c453148625f064fa38ea538470df55b ) I understand this approach might look too complex... But I think it is much less pessimistic while still being "safe". If there is something that I can do to make that code more acceptable, let me know.
Luca -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/