diff options
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()) |