summaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorSameer Nanda <snanda@chromium.org>2012-10-02 14:12:16 -0700
committerGerrit <chrome-bot@google.com>2012-10-02 16:05:18 -0700
commitc98e1079318f90dc0d5b8238da0d50d46a530ead (patch)
tree83622ebf6348a1eb945d8a883915c05bc552172d /util
parent3c06f602b638f1f6eff1bde29dd1cbd3caf8c707 (diff)
downloadchrome-ec-c98e1079318f90dc0d5b8238da0d50d46a530ead.tar.gz
Fine tuning of temp_metrics thermal loop
Fine tuned temperature thresholds and added watermark concept to the thermal loop. BUG=chrome-os-partner:9193 TEST=Vary CPU and GPU load on the system. The fan speed and CPU/GPU limits should change as the skin temperature responds to changes in the load. BRANCH=link Change-Id: I43739097e699bc4e724e395c6e830c7c694704cc Signed-off-by: Sameer Nanda <snanda@chromium.org> Reviewed-on: https://gerrit.chromium.org/gerrit/34454 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'util')
-rw-r--r--util/temp_metrics.conf51
1 files changed, 33 insertions, 18 deletions
diff --git a/util/temp_metrics.conf b/util/temp_metrics.conf
index adca6850de..fc35e08ef5 100644
--- a/util/temp_metrics.conf
+++ b/util/temp_metrics.conf
@@ -146,13 +146,18 @@ script
logger -t temp_metrics "$*"
}
- TEMP_THRESHOLD_1=40
+ TEMP_THRESHOLD_1=38
+ TEMP_THRESHOLD_1_WM=40
TEMP_THRESHOLD_2=45
+ TEMP_THRESHOLD_2_WM=47
TEMP_THRESHOLD_3=50
+ TEMP_THRESHOLD_3_WM=50
- TEMP_THRESHOLD_1_MIN_STEP=0
- TEMP_THRESHOLD_1_MAX_STEP=4
- TEMP_THRESHOLD_2_MIN_STEP=5
+ TEMP_THRESHOLD_0_MIN_STEP=0
+ TEMP_THRESHOLD_0_MAX_STEP=0
+ TEMP_THRESHOLD_1_MIN_STEP=1
+ TEMP_THRESHOLD_1_MAX_STEP=5
+ TEMP_THRESHOLD_2_MIN_STEP=6
TEMP_THRESHOLD_2_MAX_STEP=9
TEMP_THRESHOLD_3_MIN_STEP=10
TEMP_THRESHOLD_3_MAX_STEP=13
@@ -167,24 +172,28 @@ script
skin_temp=$1
if [ $skin_temp -gt $TEMP_THRESHOLD_3 ]; then
- temp_threshold=$TEMP_THRESHOLD_3
+ temp_watermark=$TEMP_THRESHOLD_3_WM
min_step=$TEMP_THRESHOLD_3_MIN_STEP
max_step=$TEMP_THRESHOLD_3_MAX_STEP
elif [ $skin_temp -gt $TEMP_THRESHOLD_2 ]; then
- temp_threshold=$TEMP_THRESHOLD_2
+ temp_watermark=$TEMP_THRESHOLD_2_WM
min_step=$TEMP_THRESHOLD_2_MIN_STEP
max_step=$TEMP_THRESHOLD_2_MAX_STEP
- else
- temp_threshold=$TEMP_THRESHOLD_1
+ elif [ $skin_temp -gt $TEMP_THRESHOLD_1 ]; then
+ temp_watermark=$TEMP_THRESHOLD_1_WM
min_step=$TEMP_THRESHOLD_1_MIN_STEP
max_step=$TEMP_THRESHOLD_1_MAX_STEP
+ else
+ temp_watermark=0
+ min_step=$TEMP_THRESHOLD_0_MIN_STEP
+ max_step=$TEMP_THRESHOLD_0_MAX_STEP
fi
- if [ $skin_temp -gt $temp_threshold ]; then
+ if [ $skin_temp -gt $temp_watermark ]; then
if [ $current_step -ne $max_step ]; then
new_step=$(($current_step + 1))
fi
- elif [ $skin_temp -lt $temp_threshold ]; then
+ elif [ $skin_temp -lt $temp_watermark ]; then
if [ $current_step -gt $min_step ]; then
new_step=$(($current_step - 1))
fi
@@ -225,6 +234,7 @@ script
temp_low3=105
temp_low4=105
temp_low5=105
+ temp_low6=105
}
last_rpm=10
@@ -233,6 +243,7 @@ script
temp_low3=105
temp_low4=105
temp_low5=105
+ temp_low6=105
fan_loop() {
skin_temp=$1
@@ -241,22 +252,26 @@ script
rpm=9300
fan_reset_thresholds
temp_low1=46
- elif [ $skin_temp -gt 45 ] || [ $skin_temp -gt $temp_low2 ]; then
- rpm=7800
+ elif [ $skin_temp -gt 44 ] || [ $skin_temp -gt $temp_low2 ]; then
+ rpm=8000
fan_reset_thresholds
temp_low2=43
elif [ $skin_temp -gt 42 ] || [ $skin_temp -gt $temp_low3 ]; then
- rpm=6000
+ rpm=7000
+ fan_reset_thresholds
+ temp_low3=41
+ elif [ $skin_temp -gt 40 ] || [ $skin_temp -gt $temp_low4 ]; then
+ rpm=5500
fan_reset_thresholds
- temp_low3=39
- elif [ $skin_temp -gt 38 ] || [ $skin_temp -gt $temp_low4 ]; then
+ temp_low4=39
+ elif [ $skin_temp -gt 38 ] || [ $skin_temp -gt $temp_low5 ]; then
rpm=4000
fan_reset_thresholds
- temp_low4=34
- elif [ $skin_temp -gt 33 ] || [ $skin_temp -gt $temp_low5 ]; then
+ temp_low5=34
+ elif [ $skin_temp -gt 33 ] || [ $skin_temp -gt $temp_low6 ]; then
rpm=3000
fan_reset_thresholds
- temp_low5=30
+ temp_low6=30
else
rpm=0
fan_reset_thresholds