Re: [PATCH V2 1/3] Calculate Thermal Pressure

From: Quentin Perret
Date: Thu Apr 25 2019 - 08:47:51 EST


On Thursday 25 Apr 2019 at 14:45:57 (+0200), Vincent Guittot wrote:
> On Thu, 25 Apr 2019 at 12:57, Quentin Perret <quentin.perret@xxxxxxx> wrote:
> >
> > On Tuesday 16 Apr 2019 at 15:38:39 (-0400), Thara Gopinath wrote:
> > > +/* Per cpu structure to keep track of Thermal Pressure */
> > > +struct thermal_pressure {
> > > + unsigned long scale; /* scale reflecting average cpu max capacity*/
> > > + unsigned long acc_scale; /* Accumulated scale for this time window */
> > > + unsigned long old_scale; /* Scale value for the previous window */
> > > + unsigned long raw_scale; /* Raw max capacity */
> > > + unsigned long age_stamp; /* Last time old_scale was updated */
> > > + unsigned long last_update; /* Last time acc_scale was updated */
> > > + spinlock_t lock; /* Lock for protecting from simultaneous access*/
> > > + /* Timer for periodic update of thermal pressure */
> > > + struct timer_list timer;
> >
> > Do you actually need the periodic update ? You only really need to
> > update the 'scale' value when updating the LB stats no ? Nobody
> > accesses that value in between two LBs.
>
> Do you mean calling a variant of sched_update_thermal_pressure() in
> update_cpu_capacity() instead of periodic update ?
> Yes , that should be enough

Right something like this, and remove all the timers. Should be a bit
cleaner I guess.

Thanks,
Quentin