Re: [RFC v3 0/5] Add capacity capping support to the CPU controller
From: Patrick Bellasi
Date: Wed Apr 12 2017 - 09:35:01 EST
On 12-Apr 14:15, Peter Zijlstra wrote:
> On Tue, Apr 11, 2017 at 06:58:33PM +0100, Patrick Bellasi wrote:
> > We should consider also that at the CPUFreq side we already expose
> > knobs like scaling_{min,max}_freq which are much more platform
> > dependant than capacity.
>
> So I've always objected to these knobs.
>
> That said; they are a pre-existing user interface so changing them isn't
> really feasible much.
>
> But at the very least we should integrate them properly. Which for
> schedutil would mean they have to directly modify the relevant CPU
> capacity values. Is this currently done? (I think not.)
AFAICS they are clamping the policy decisions, thus the frequency
domain... which can be more then one CPU on ARM platforms.
When you say you would like them to "directly modify the relevant CPU
capacity values" I really see this as exactly what we do with
capacity_{min,max}.
These two capacity clamping values are per task, and thus (by
definition) per CPU. Moreover, they have the interesting property to
be "aggregated" in such a way that, in this configuration:
TaskA: capacity_max: 20%
TaskB: capacity_max: 100%
when both tasks are RUNNABLE on the same CPU, that CPU is not capped
until TaskB leave the CPU.
Do you think such a kind of feature can be useful?
--
#include <best/regards.h>
Patrick Bellasi