Re: [RFC PATCH 6/7] sched/fair: update cpu_capcity to reflect thermal pressure

From: Thara Gopinath
Date: Wed Oct 10 2018 - 10:22:26 EST


On 10/10/2018 01:57 AM, Javi Merino wrote:
> On Tue, Oct 09, 2018 at 12:25:01PM -0400, 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
>> available capacity so that cpu_capacity reflects the actual
>> available capacity.
>>
>> Signed-off-by: Thara Gopinath <thara.gopinath@xxxxxxxxxx>
>> ---
>> kernel/sched/fair.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
>> index 7deb1d0..8651e55 100644
>> --- a/kernel/sched/fair.c
>> +++ b/kernel/sched/fair.c
>> @@ -7497,6 +7497,7 @@ static unsigned long scale_rt_capacity(int cpu)
>>
>> used = READ_ONCE(rq->avg_rt.util_avg);
>> used += READ_ONCE(rq->avg_dl.util_avg);
>> + used += READ_ONCE(rq->avg_thermal.load_avg);
>
> IIUIC, you are treating thermal pressure as an artificial load on the
> cpu. If so, this sounds like a hard to maintain hack. Thermal
> pressure have different characteristics to utilization. What happens
> if thermal sets the cpu cooling state back to 0 because there is
> thermal headroom again? Do we keep adding this artificial load to the
> cpu just because there was thermal pressure in the past and let it
> decay as if it was cpu load?

Setting cpu cooling state back to 0 will decay the thermal pressure back
to 0 ? Yes, cpu will not register an instantaneous drop in the cap, it
will be decayed down following the PELT signals.

>
> Cheers,
> Javi
>


--
Regards
Thara