lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <D3AF2868-F9A4-4176-A851-5DCF029B65A9@goldelico.com>
Date:   Fri, 13 Sep 2019 18:51:35 +0200
From:   "H. Nikolaus Schaller" <hns@...delico.com>
To:     Adam Ford <aford173@...il.com>
Cc:     Linux-OMAP <linux-omap@...r.kernel.org>,
        Tony Lindgren <tony@...mide.com>,
        André Roth <neolynx@...il.com>,
        Discussions about the Letux Kernel 
        <letux-kernel@...nphoenux.org>,
        Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
        Andreas Kemnade <andreas@...nade.info>,
        Nishanth Menon <nm@...com>, Adam Ford <adam.ford@...icpd.com>,
        kernel@...a-handheld.com
Subject: Re: [RFC] ARM: dts: omap36xx: Enable thermal throttling


> Am 13.09.2019 um 18:42 schrieb Adam Ford <aford173@...il.com>:
> 
> On Fri, Sep 13, 2019 at 11:35 AM Adam Ford <aford173@...il.com> wrote:
>> 
>> On Fri, Sep 13, 2019 at 10:09 AM H. Nikolaus Schaller <hns@...delico.com> wrote:
>>> 
>>> 
>>>> Am 13.09.2019 um 17:01 schrieb Adam Ford <aford173@...il.com>:
>>>> 
>>>> On Fri, Sep 13, 2019 at 9:24 AM H. Nikolaus Schaller <hns@...delico.com> wrote:
>>>>> 
>>>>> 
>>>>>> Am 13.09.2019 um 16:05 schrieb Adam Ford <aford173@...il.com>:
>>>>>> 
>>>>>> On Fri, Sep 13, 2019 at 8:32 AM H. Nikolaus Schaller <hns@...delico.com> wrote:
>>>>>>> 
>>>>>>> Hi Adam,
>>>>>>> 
>>>>>>>> Am 13.09.2019 um 13:07 schrieb Adam Ford <aford173@...il.com>:
>>>>>>> 
>>>>>>>>>> +     cpu_cooling_maps: cooling-maps {
>>>>>>>>>> +             map0 {
>>>>>>>>>> +                     trip = <&cpu_alert0>;
>>>>>>>>>> +                     /* Only allow OPP50 and OPP100 */
>>>>>>>>>> +                     cooling-device = <&cpu 0 1>;
>>>>>>>>> 
>>>>>>>>> omap4-cpu-thermal.dtsi uses THERMAL_NO_LIMIT constants but I do not
>>>>>>>>> understand their meaning (and how it relates to the opp list).
>>>>>>>> 
>>>>>>>> I read through the documentation, but it wasn't completely clear to
>>>>>>>> me. AFAICT, the numbers after &cpu represent the min and max index in
>>>>>>>> the OPP table when the condition is hit.
>>>>>>> 
>>>>>>> Ok. It seems to use "cooling state" for those and the first is minimum
>>>>>>> and the last is maximum. Using THERMAL_NO_LIMIT (-1UL) means to have
>>>>>>> no limits.
>>>>>>> 
>>>>>>> Since here we use the &cpu node it is likely that the "cooling state"
>>>>>>> is the same as the OPP index currently in use.
>>>>>>> 
>>>>>>> I have looked through the .dts which use cpu_crit and the picture is
>>>>>>> not unique...
>>>>>>> 
>>>>>>> omap4           seems to only define it
>>>>>>> am57xx          has two different grade dtsi files
>>>>>>> dra7            overwrites critical temperature value
>>>>>>> am57xx-beagle   defines a gpio to control a fan
>>>>>> 
>>>> 
>>>> I am going to push a separate but related RFC with 2 patches in the
>>>> series.  This new one will setup the alerts and maps without any
>>>> throttling for all omap3's in the first patch.  The second patch will
>>>> consolidate the thermal references to omap3.dtsi so omap34, omap36 and
>>>> am35 can all use them without having to duplicate the entries.
>>>> 
>>>> It will make the omap36xx changes simpler to manage, because we can
>>>> just modify a portion of the entries instead of having the whole
>>>> table.
>>>> 
>>>> Once this parallel RFC gets comments/feedback, I'll re-integrate the
>>>> omap36xx throttling.
>>> 
>>> Good idea. I have looked over them and they seem to be ok.
>> 
>> Rebasing my omap36xx throttling after the v2 RFC I pushed moving the
>> omap3-cpu thermal stuff, I modified the omap36xx accordingly to try
>> and force the alert condition:
>> 
>> &cpu_alert0 {
>>     temperature = <55000>; /* millicelsius */
>> };
>> 
>> &cpu_cooling_maps {
>>     map0 {
>>          /* OPP130 and OPP1G are not available above 90C */
>>          cooling-device = <&cpu 0 2>;
>>     };
>> };
>> 
>> I would expect that with the temperature set for 55C, it would have
>> done something, but it doesn't appear to be working as I would expect.
>> 
>> # cat /sys/devices/virtual/thermal/thermal_zone0/temp
>> 58500
>> 
>> # cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
>> 300000 600000 800000
>> #
>> 
>> :-(
>> 
> 
> Good news (I think)
> 
> With cooling-device = <&cpu 1 2> setup, I was able to ask the max
> frequency and it returned 600MHz.
> 
> # cat /sys/devices/virtual/thermal/thermal_zone0/temp
> 58500
> # cat /sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies
> 300000 600000 800000
> # cat /sys/devices/system/cpu/cpufreq/policy0/scaling_m
> scaling_max_freq  scaling_min_freq
> # cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
> 600000

looks good!
But we have to understand what the <&cpu 1 2> exactly means...

Hopefully someone reading your RFCv2 can answer...

What happens with trip point 60000?
(unfortunately one has to reboot in between or can you kexec between two kernel/dtb versions?)

BR,
Nikolaus

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ