Re: [PATCH v5 3/3] thermal: cpu_cooling: Migrate to using the EM framework

From: Quentin Perret
Date: Mon Jun 03 2019 - 07:23:03 EST


On Saturday 01 Jun 2019 at 12:37:06 (+0200), Daniel Lezcano wrote:
> On 30/05/2019 11:20, Quentin Perret wrote:
> > The newly introduced Energy Model framework manages power cost tables in
> > a generic way. Moreover, it supports several types of models since the
> > tables can come from DT or firmware (through SCMI) for example. On the
> > other hand, the cpu_cooling subsystem manages its own power cost tables
> > using only DT data.
> >
> > In order to avoid the duplication of data in the kernel, and in order to
> > enable IPA with EMs coming from more than just DT, remove the private
> > tables from cpu_cooling.c and migrate it to using the centralized EM
> > framework. Doing so should have no visible functional impact for
> > existing users of IPA since:
> >
> > - recent extenstions to the the PM_OPP infrastructure enable the
> > registration of EMs in PM_EM using the DT property used by IPA;
> >
> > - the existing upstream cpufreq drivers marked with the
> > 'CPUFREQ_IS_COOLING_DEV' flag all use the aforementioned PM_OPP
> > infrastructure, which means they all support PM_EM. The only two
> > exceptions are qoriq-cpufreq which doesn't in fact use an EM and
> > scmi-cpufreq which doesn't use DT for power costs.
> >
> > For existing users of cpu_cooling, PM_EM tables will contain the exact
> > same power values that IPA used to compute on its own until now. The
> > only new dependency for them is to compile in CONFIG_ENERGY_MODEL.
> >
> > The case where the thermal subsystem is used without an Energy Model
> > (cpufreq_cooling_ops) is handled by looking directly at CPUFreq's
> > frequency table which is already a dependency for cpu_cooling.c anyway.
> > Since the thermal framework expects the cooling states in a particular
> > order, bail out whenever the CPUFreq table is unsorted, since that is
> > fairly uncommon in general, and there are currently no users of
> > cpu_cooling for this use-case.
> >
> > Acked-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> > Signed-off-by: Quentin Perret <quentin.perret@xxxxxxx>
>
> Acked-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>

Thanks for this one and the other one :-)

Quentin