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

From: Peter Zijlstra
Date: Mon Oct 28 2019 - 11:27:43 EST


On Mon, Oct 28, 2019 at 04:24:21PM +0100, 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 ?

Specifically, I'm thikning this wants a line in others_have_blocked():

+ if (READ_ONCE(rq->avg_thermal.load_avg))
+ return true;