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

Peter Zijlstra
2019-10-28T15:24:39Z

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@linaro.org>
> ---
> 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 ?

> @@ -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.