Messages in this thread |  | | Date | Mon, 23 Dec 2019 17:52:13 +0000 | From | Ionela Voinescu <> | Subject | Re: [Patch v6 5/7] sched/fair: update cpu_capacity to reflect thermal pressure |
| |
On Wednesday 11 Dec 2019 at 23:11:46 (-0500), Thara Gopinath wrote: > cpu_capacity relflects the maximum available capacity of a cpu. Thermal > pressure on a cpu means this maximum available capacity is reduced. This > patch reduces the average thermal pressure for a cpu from its maximum
Maybe we can introduce two terms here: maximum possible capacity and maximum currently available capacity. I think using these two terms the message can become more clear:
cpu_capacity initially reflects the maximum possible capacity of a cpu (capacity orig). Thermal pressure on a cpu means this maximum possible capacity of a cpu is not available due to thermal events. This patch subtracts the average thermal pressure for a cpu from the cpu's maximum possible capacity so that cpu_capacity reflects the actual maximum currently available capacity.
Kind regards, Ionela.
> available capacity so that cpu_capacity reflects the actual > available capacity. > > Signed-off-by: Thara Gopinath <thara.gopinath@linaro.org> > --- > kernel/sched/fair.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index e12a375..4840655 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -7725,8 +7725,15 @@ static unsigned long scale_rt_capacity(struct sched_domain *sd, int cpu) > if (unlikely(irq >= max)) > return 1; > > + /* > + * avg_rt.util avg and avg_dl.util track binary signals > + * (running and not running) with weights 0 and 1024 respectively. > + * avg_thermal.load_avg tracks thermal pressure and the weighted > + * average uses the actual delta max capacity. > + */ > used = READ_ONCE(rq->avg_rt.util_avg); > used += READ_ONCE(rq->avg_dl.util_avg); > + used += READ_ONCE(rq->avg_thermal.load_avg); > > if (unlikely(used >= max)) > return 1; > -- > 2.1.4 >
|  |