Re: [PATCH 8/8] thermal/drivers/cpu_cooling: Add the combo cpu cooling device
From: Viresh Kumar <viresh.kumar@linaro.org>
Date: 2018-02-05 04:17:44
Also in:
lkml
On 02-02-18, 15:30, Daniel Lezcano wrote:
On 02/02/2018 11:42, Viresh Kumar wrote:quoted
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.
quoted
- 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