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

From: Daniel Lezcano
Date: Fri Feb 02 2018 - 09:30:24 EST


On 02/02/2018 11:42, Viresh Kumar wrote:
> Hi Daniel,

Hi Viresh,


> I have gone through the other review comments, specially from Daniel T.. While I
> share some of his concerns, I have few more of mine.
>
> On 23-01-18, 16:34, Daniel Lezcano wrote:
>> +late_initcall(cpu_cooling_init);
>
> For example, this thing isn't going to fly nicely as you have assumed cpufreq
> and cpuidle drivers are going to be part of the kernel itself. What if they are
> modules and are inserted after late-init ? There are more cases like this where
> the cpufreq driver may unregister the cpufreq cooling device on the fly and then
> add it back. And so this stuff is a bit tricky.

The cpuidle driver can not be compiled as a module.

Agree the cpufreq driver can be unloaded and this part needs some
adjustments.

> 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.

> - 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.


--
<http://www.linaro.org/> Linaro.org â Open source software for ARM SoCs

Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog