Re: [PATCH 8/8] thermal/drivers/cpu_cooling: Add the combo cpu cooling device

From: Viresh Kumar
Date: Sun Feb 04 2018 - 23:17:48 EST


On 02-02-18, 15:30, Daniel Lezcano wrote:
> On 02/02/2018 11:42, Viresh Kumar wrote:
> > Here is how I see the whole thing now:
> >
> > - Yes we need individual support for both cpufreq and cpuidle cooling devices,
> > and no one disagrees on that I believe.
> >
> > - There is nothing in the thermal framework that disallows both cpufreq and
> > cpuidle cooling devices to co-exist. Both would be part of the same thermal
> > zone and so will get throttled with the same thermal sensor event. And so we
> > will end up trying to cool down the SoC using both cpufreq and cpuidle
> > technique.
>
> No. It does not work because we will need different state for each
> cooling device and we need some logic behind.

Right, but I thought the cooling-maps can help us specify different cooling
states for different cooling devices for the same trip point. Maybe my
understanding of that is incorrect.

> > - Now I am just wondering if we really need the "combo" functionality or not.
> > Can we fine tune the DT cpu-cooling properties (existing ones) for a platform,
> > so that it automatically acts as a combo cooling device? I am not 100% sure
> > its gonna fly, but just wanted to make sure its not possible to work around
> > with and then only try the combo device thing.
> >
> > For example, suppose that with just cpufreq-cooling device we need to take the
> > CPU down to 1 GHz from 2 GHz if we cross temperature 'X'. What if we can change
> > this policy from DT and say the cpufreq-cooling device goes to 1.5 GHz and
> > cpuidle-cooling device takes us to idle for 'y' us, and the effect of
> > combination of these two is >= the effect of the 1 GHz for just the
> > cpufreq-cooling device.
> >
> > Is there any possibility of this to work ?
>
> It does not make sense. The combo does that automatically by computing
> the power equivalence more precisely.

Sure, but that works by creating a virtual combo-cooling device instead of two
separate cooling devices and then there are several limitation (at least right
now) where it doesn't sense the real situation automagically. For example I
would expect the combo to just work with cpuidle if cpufreq isn't present and as
soon as cpufreq comes in, covert itself to cpufreq+cpuidle. I was just trying to
present another view at solving the problem at hand, not that one is better
than the other.

--
viresh