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
This commit is contained in:
csmartdalton 2016-11-09 12:26:31 -08:00 committed by Commit bot
parent 6e4b594b54
commit b87642e018

View File

@ -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.
'''
for N in $(seq 0 3); do
echo 1 > /sys/devices/system/cpu/cpu3/online''',
# unlock the first 3 cores.
'''
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())