Messages in this thread Patch in this message |  | | From | Thara Gopinath <> | Subject | [Patch v6 5/7] sched/fair: update cpu_capacity to reflect thermal pressure | Date | Wed, 11 Dec 2019 23:11:46 -0500 |
| |
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 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
|  |