diff options
author | csmartdalton <csmartdalton@google.com> | 2016-11-09 12:26:31 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-11-09 12:26:31 -0800 |
commit | b87642e0186cfd43a196627234743b0f81ffc65f (patch) | |
tree | 4a14585df763e8eedc25981a01afc53f60aad413 /tools | |
parent | 6e4b594b545134588e982f219d96067972cc166c (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.py | 29 |
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()) |