aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar csmartdalton <csmartdalton@google.com>2016-11-09 12:26:31 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-11-09 12:26:31 -0800
commitb87642e0186cfd43a196627234743b0f81ffc65f (patch)
tree4a14585df763e8eedc25981a01afc53f60aad413 /tools
parent6e4b594b545134588e982f219d96067972cc166c (diff)
skpbench: use 3 cores instead of 4 on Pixel C
Hopefully with less cores running we will produce less heat. 3 cores should be enough to run Ganesh, the graphics driver, and the OS. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2491633002 Review-Url: https://codereview.chromium.org/2491633002
Diffstat (limited to 'tools')
-rw-r--r--tools/skpbench/_hardware_pixel_c.py29
1 files changed, 22 insertions, 7 deletions
diff --git a/tools/skpbench/_hardware_pixel_c.py b/tools/skpbench/_hardware_pixel_c.py
index 842ee0c502..47f3ec4b0b 100644
--- a/tools/skpbench/_hardware_pixel_c.py
+++ b/tools/skpbench/_hardware_pixel_c.py
@@ -28,12 +28,19 @@ class HardwarePixelC(HardwareAndroid):
return
self._adb.shell('\n'.join([
- # lock cpu clocks.
+ # turn on and lock the first 3 cores.
'''
- for N in $(seq 0 3); do
+ for N in 0 1 2; do
+ echo 1 > /sys/devices/system/cpu/cpu$N/online
echo userspace > /sys/devices/system/cpu/cpu$N/cpufreq/scaling_governor
+ echo %i > /sys/devices/system/cpu/cpu$N/cpufreq/scaling_max_freq
+ echo %i > /sys/devices/system/cpu/cpu$N/cpufreq/scaling_min_freq
echo %i > /sys/devices/system/cpu/cpu$N/cpufreq/scaling_setspeed
- done''' % CPU_CLOCK_RATE,
+ done''' % tuple(CPU_CLOCK_RATE for _ in range(3)),
+
+ # turn off the fourth core.
+ '''
+ echo 0 > /sys/devices/system/cpu/cpu3/online''',
# lock gpu/emc clocks.
'''
@@ -50,9 +57,15 @@ class HardwarePixelC(HardwareAndroid):
echo auto > /sys/devices/57000000.gpu/pstate
chown system:system /sys/devices/57000000.gpu/pstate''',
- # unlock cpu clocks.
+ # turn the fourth core back on.
+ '''
+ echo 1 > /sys/devices/system/cpu/cpu3/online''',
+
+ # unlock the first 3 cores.
'''
- for N in $(seq 0 3); do
+ for N in 2 1 0; do
+ echo 1912500 > /sys/devices/system/cpu/cpu$N/cpufreq/scaling_max_freq
+ echo 51000 > /sys/devices/system/cpu/cpu$N/cpufreq/scaling_min_freq
echo 0 > /sys/devices/system/cpu/cpu$N/cpufreq/scaling_setspeed
echo interactive >/sys/devices/system/cpu/cpu$N/cpufreq/scaling_governor
done''']))
@@ -66,18 +79,20 @@ class HardwarePixelC(HardwareAndroid):
# only issue one shell command in an attempt to minimize interference.
result = self._adb.check('''\
cat /sys/class/power_supply/bq27742-0/capacity \
+ /sys/devices/system/cpu/online \
/sys/class/thermal/thermal_zone7/temp \
/sys/class/thermal/thermal_zone0/temp \
/sys/class/thermal/thermal_zone1/temp \
/sys/class/thermal/thermal_zone7/cdev1/cur_state \
/sys/class/thermal/thermal_zone7/cdev0/cur_state
- for N in $(seq 0 3); do
+ for N in 0 1 2; do
cat /sys/devices/system/cpu/cpu$N/cpufreq/scaling_cur_freq
done
cat /sys/devices/57000000.gpu/pstate | grep \*$''')
expectations = \
[Expectation(int, min_value=30, name='battery', sleeptime=30*60),
+ Expectation(str, exact_value='0-2', name='online cpus'),
Expectation(int, max_value=40000, name='skin temperature'),
Expectation(int, max_value=86000, name='cpu temperature'),
Expectation(int, max_value=87000, name='gpu temperature'),
@@ -85,7 +100,7 @@ class HardwarePixelC(HardwareAndroid):
Expectation(int, exact_value=0, name='gpu throttle')] + \
[Expectation(int, exact_value=CPU_CLOCK_RATE,
name='cpu_%i clock rate' % i, sleeptime=30)
- for i in range(4)] + \
+ for i in (0, 1, 2)] + \
[Expectation(str, exact_value=GPU_EMC_PROFILE, name='gpu/emc profile')]
Expectation.check_all(expectations, result.splitlines())