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.