Re: [PATCH] Fix mt7622.dtsi thermal cpu

From: Eric Woudstra
Date: Wed Jun 23 2021 - 11:35:41 EST


It is only useful to set 1 map with the regulated temperature for cpu frequency throttling. Same as in the kernel document example.


It has no use to set frequency scaling on 2 different temperature trip points, as the lowest one makes sure the higher one(s) are never reached. It can be applied only at 1 trip point. Multiple trip points is only usefully for fan control to make sure the fan is not too noisy when it is not necessary to be noisy.


The CPU will almost come to a dead stop when it starts to pass the lowest thermal map with frequency throttling.

This is why it is a bug and needs a fix, not only adjustment.




There is no fan... On the bpi r64.


Anyway without throttling at all a kernel build for more then an hour temperature creeps up to 85 degrees.

⁣Get BlueMail for Android ​

On Jun 21, 2021, 8:29 PM, at 8:29 PM, Daniel Lezcano <daniel.lezcano@xxxxxxxxxx> wrote:
>On 19/06/2021 14:19, ericwouds@xxxxxxxxx wrote:
>> From: Eric Woudstra <ericwouds@xxxxxxxxx>
>>
>> Cpu-thermal is set to use all frequencies already at 47 degrees.
>> Using the CPU at 50 for a minute, the CPU has reached 48 degrees, is
>> throttled back to lowest setting, making the mt7622 terrribly slow.
>> Even at this low speed, the CPU does not cool down lower then 47 so
>> the CPU is stuck at lowest possible frequency until it shut down and
>> stays off for 15 minutes.
>>
>> cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
>> <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
>>
>> This should not be set al every cooling map. It should only be set at
>> the highest cooling map. Same as in the example:
>>
>> https://www.kernel.org/doc/Documentation/devicetree/bindings/
>> thermal/thermal.txt line 272
>>
>> But then without the fan and added a third map.
>>
>> Now temperature will be regulated at 87 degrees celcius. At
>temperatures
>> lower then 87, all frequencies can be used.
>
>47°C is really a too low temperature and this performance drop is
>normal.
>
>I would not remove the passive mitigation but try by increasing the CPU
>temp to 70°C and by changing the active trip point to 80°C. If it works
>fine, try 75°C and 85°C.
>
>To test, the thermal killer is dhrystone (one thread per cpu).
>
>With a 75°C passive trip point, the step wise thermal governor, I think
>the mitigation will happen smoothly providing better performances, and
>probably the fan won't fire.
>
>> Also see the post:
>>
>> http://forum.banana-pi.org/t/bpi-r64-only-10-cpu-speed-at-already-48-
>> degrees-celcius-speed-not-increasing-anymore/12262
>>
>> Signed-off-by: Eric Woudstra <ericwouds@xxxxxxxxx>
>> ---
>> arch/arm64/boot/dts/mediatek/mt7622.dtsi | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
>b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
>> index 890a942ec..b779c7aa6 100644
>> --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi
>> +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi
>> @@ -170,14 +170,14 @@ cpu-crit {
>> cooling-maps {
>> map0 {
>> trip = <&cpu_passive>;
>> - cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
>> - <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
>> + cooling-device = <&cpu0 0 0>,
>> + <&cpu1 0 0>;
>> };
>>
>> map1 {
>> trip = <&cpu_active>;
>> - cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
>> - <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
>> + cooling-device = <&cpu0 0 0>,
>> + <&cpu1 0 0>;
>> };
>>
>> map2 {
>>
>
>
>--
><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