[Letux-kernel] thermal madness
H. Nikolaus Schaller
hns at goldelico.com
Tue Sep 24 21:51:06 CEST 2019
FYI: I have opened an "Issue": http://projects.goldelico.com/p/gta04-kernel/issues/928/
> Am 14.09.2019 um 21:02 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>
>
>> Am 14.09.2019 um 14:02 schrieb Andreas Kemnade <andreas at kemnade.info>:
>>
>> On Sat, 14 Sep 2019 12:28:06 +0200
>> "H. Nikolaus Schaller" <hns at goldelico.com> wrote:
>>
>>>> Am 14.09.2019 um 12:23 schrieb Andreas Kemnade <andreas at kemnade.info>:
>>>>
>>>> On Fri, 13 Sep 2019 22:27:11 +0200
>>>> Andreas Kemnade <andreas at kemnade.info> wrote:
>>>>
>>>>> some more testing here:
>>>>> root@(none):/# cpufreq-info
>>>>> cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
>>>>> Report errors and bugs to cpufreq at vger.kernel.org, please.
>>>>> analyzing CPU 0:
>>>>> driver: cpufreq-dt
>>>>> CPUs which run at the same hardware frequency: 0
>>>>> CPUs which need to have their frequency coordinated by software: 0
>>>>> maximum transition latency: 300 us.
>>>>> hardware limits: 300 MHz - 1000 MHz
>>>>> available frequency steps: 300 MHz, 600 MHz, 800 MHz, 1000 MHz
>>>>> available cpufreq governors: conservative, userspace, powersave, ondemand, performance
>>>>> current policy: frequency should be within 300 MHz and 1000 MHz.
>>>>> The governor "ondemand" may decide which speed to use
>>>>> within this range.
>>>>> current CPU frequency is 600 MHz (asserted by call to hardware).
>>>>> cpufreq stats: 300 MHz:94.86%, 600 MHz:2.49%, 800 MHz:0.92%, 1000 MHz:1.73% (51)
>>>>
>>>> should this be 1000Mhz: 0%? If not enabled the boost switch.
>>>
>>> I had it enabled...
>>>
>> Well, at least all these patches seem not to have any influence on
>> idle-behavior.
>
> Fine. But I didn't expect it...
>
>>
>>> And we can remove the turbo-mode; tag anyways as soon as thermal throttling works.
>>>
>> well, do we have the watchdog running? So if kernel does infinite
>> busy-waiting, we will not overheat?
>
> Good question. I don't know.
>
> But I have a first finding by studying the bandgap driver code (drivers/thermal/ti-soc-thermal):
>
> It looks as if TI_BANDGAP_FEATURE_MODE_CONFIG
> is not set for omap34xx and omap36xx although it could be.
>
> This would allow to switch to continuous measuerements avoiding
> to start - wait - read.
>
> If it is not available, every call to ti_bandgap_read_temperature()
> does a ti_bandgap_force_single_read() and then ti_bandgap_read_temp().
I had tried to enable TI_BANDGAP_FEATURE_MODE_CONFIG but then the bandgap
sensor doesn't report reasonable values.
>
> But I am still trying to understand ti_bandgap_force_single_read()
> because according to my theory this is where something would go wrong
> (start conversion but return previous value).
>
> It sets SOC=1, then waits for EOCZ becoming 1 which I think means "conversion is running".
> Then it sets SOC=0 and waits for EOCZ becoming 0.
>
> There are counters for spin-loop timeouts. Hm. is the value 1000 too short?
> So that we read before conversion is really finished? How long is this timeout???
> It depends on OPP...
>
> After doing that it will read the temp in spin-locked context, but on omap3
> it is mostly just reading the result register.
>
> Ok, let's wait for fresh ideas.
>
> BR,
> Nikolaus
>
> _______________________________________________
> http://projects.goldelico.com/p/gta04-kernel/
> Letux-kernel mailing list
> Letux-kernel at openphoenux.org
> http://lists.goldelico.com/mailman/listinfo.cgi/letux-kernel
More information about the Letux-kernel
mailing list