Thread (19 messages) 19 messages, 4 authors, 2021-06-25

Re: [PATCH] Fix mt7622.dtsi thermal cpu

From: Eric Woudstra <hidden>
Date: 2021-06-23 15:35:41
Also in: linux-arm-kernel, linux-devicetree, lkml

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 [off-list ref] wrote:
On 19/06/2021 14:19, ericwouds@gmail.com wrote:
quoted
From: Eric Woudstra <redacted>

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

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help