Messages in this thread | | | Date | Thu, 25 Apr 2019 13:47:44 +0100 | From | Quentin Perret <> | Subject | Re: [PATCH V2 1/3] Calculate Thermal Pressure |
| |
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@arm.com> 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
| |