armbian-build/patch/kernel/rockchip-dev/0005-ARM-dts-rockchip-miqi-throttle-only-at-92-degrees.patch

79 lines
2.4 KiB
Diff

From 40a9944d8b1694782caa7a41f7f5a4877528e01f Mon Sep 17 00:00:00 2001
From: Willy Tarreau <w@1wt.eu>
Date: Tue, 2 Aug 2016 09:50:03 +0200
Subject: ARM: dts: rockchip: miqi: throttle only at 92 degrees
The board reboots at 95 degrees for the CPU or 85 degrees for the GPU,
so let's start throttle at 92 for the CPU and 83 for the GPU. Above 90
degrees, due to the heatsink's thermal resistance, it heats much slower
so it's important to save even one or two degree to give more room at
high frequency. It seems like the GPU instead reports the board's
temperature because it's always about 7-10 degrees below the CPU
temperature and changes much slower.
It's important to significantly increase the critical temperature,
because it causes a brutal shutdown instead of rebooting the board, so
it cannot be reliably used in a compute farm. It's better to rely on
passive throttling, even to risk a spontaneous reboot. This can easily
be tested with some CPU intensive benchmarks like
"openssl speed -multi 4 rsa2048", causing the board to immediately
shut down :
/sys/devices/virtual/thermal/thermal_zone1/temp:93214
/sys/devices/virtual/thermal/thermal_zone2/temp:81923
[ 65.458046] thermal thermal_zone1: critical temperature reached(93 C),shutting down
[ 65.527639] reboot: Power down
---
arch/arm/boot/dts/rk3288-miqi.dts | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/arch/arm/boot/dts/rk3288-miqi.dts b/arch/arm/boot/dts/rk3288-miqi.dts
index 6af2c07..1f6f29a 100644
--- a/arch/arm/boot/dts/rk3288-miqi.dts
+++ b/arch/arm/boot/dts/rk3288-miqi.dts
@@ -139,6 +139,41 @@
>;
};
+&cpu_thermal {
+ trips {
+ cpu_alert0: cpu_alert0 {
+ temperature = <92000>; /* millicelsius */
+ hysteresis = <2000>; /* millicelsius */
+ type = "passive";
+ };
+ cpu_alert1: cpu_alert1 {
+ temperature = <94000>; /* millicelsius */
+ hysteresis = <2000>; /* millicelsius */
+ type = "passive";
+ };
+ cpu_crit: cpu_crit {
+ temperature = <110000>; /* millicelsius */
+ hysteresis = <2000>; /* millicelsius */
+ type = "critical";
+ };
+ };
+};
+
+&gpu_thermal {
+ trips {
+ gpu_alert0: gpu_alert0 {
+ temperature = <83000>; /* millicelsius */
+ hysteresis = <2000>; /* millicelsius */
+ type = "passive";
+ };
+ gpu_crit: gpu_crit {
+ temperature = <105000>; /* millicelsius */
+ hysteresis = <2000>; /* millicelsius */
+ type = "critical";
+ };
+ };
+};
+
&emmc {
bus-width = <8>;
cap-mmc-highspeed;
--
2.8.0.rc2.1.gbe9624a