Re: [Patch v4 3/6] sched/fair: Enable CFS periodic tick to update thermal pressure

From: Thara Gopinath
Date: Wed Oct 30 2019 - 17:41:25 EST


On 10/28/2019 11:24 AM, Peter Zijlstra wrote:
> On Tue, Oct 22, 2019 at 04:34:22PM -0400, Thara Gopinath wrote:
>> Introduce support in CFS periodic tick to trigger the process of
>> computing average thermal pressure for a cpu.
>>
>> Signed-off-by: Thara Gopinath <thara.gopinath@xxxxxxxxxx>
>> ---
>> kernel/sched/fair.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
>> index 682a754..4f9c2cb 100644
>> --- a/kernel/sched/fair.c
>> +++ b/kernel/sched/fair.c
>> @@ -21,6 +21,7 @@
>> * Copyright (C) 2007 Red Hat, Inc., Peter Zijlstra
>> */
>> #include "sched.h"
>> +#include "thermal.h"
>>
>> #include <trace/events/sched.h>
>>
>> @@ -7574,6 +7575,8 @@ static void update_blocked_averages(int cpu)
>> done = false;
>>
>> update_blocked_load_status(rq, !done);
>> +
>> + trigger_thermal_pressure_average(rq);
>> rq_unlock_irqrestore(rq, &rf);
>> }
>
> This changes only 1 of the 2 implementations of
> update_blocked_averages(). Also, how does this interact with
> rq->has_blocked_load ?
I will add it to the other implementation of update_blocked_averages and
will also update others_have_blocked.
>
>> @@ -9933,6 +9936,8 @@ static void task_tick_fair(struct rq *rq, struct task_struct *curr, int queued)
>>
>> update_misfit_status(curr, rq);
>> update_overutilized_status(task_rq(curr));
>> +
>> + trigger_thermal_pressure_average(rq);
>> }
>
> This seems to imply all this thermal stuff is fair only, in which case I
> could suggest putting those few lines in fair.c. ~45 extra lines on
> 1e5+ lines really doesn't matter.
>


--
Warm Regards
Thara