Chromium Code Reviews| Index: build/android/pylib/perf_tests_helper.py |
| diff --git a/build/android/pylib/perf_tests_helper.py b/build/android/pylib/perf_tests_helper.py |
| index c0a3ee413d80d5ed924538d1ddab86b377ea4016..3986b089ff09352fb8b1f9feefdbe94b634bbf25 100644 |
| --- a/build/android/pylib/perf_tests_helper.py |
| +++ b/build/android/pylib/perf_tests_helper.py |
| @@ -3,6 +3,7 @@ |
| # found in the LICENSE file. |
| import re |
| +import logging |
| import android_commands |
| import math |
| @@ -118,3 +119,48 @@ class PerfTestSetup(object): |
| for cpu in range(self._num_cpus): |
| self._adb.RunShellCommand( |
| ('echo %s > ' + PerfTestSetup._SCALING_GOVERNOR) % (value, cpu)) |
| + |
| + |
| +class ThermalThrottle(object): |
|
bulach
2012/10/31 10:44:47
it'd make sense to have this class in its own file
Anthony Berent
2012/10/31 15:14:02
Done.
|
| + """Class to detect and track thermal throttling |
| + |
| + Usage: |
| + Wait for IsThrottled() to be False before running test |
| + After running test call HasBeenThrottled() to find out if the |
| + test run was affected by thermal throttling. |
| + |
| + Currently assumes an OMap device, but I don't know of any others with |
|
bulach
2012/10/31 10:44:47
nit: people told me in the past to avoid using fir
Anthony Berent
2012/10/31 15:14:02
Done.
|
| + thermal throttling. |
| + """ |
| + _throttled = False |
|
bulach
2012/10/31 10:44:47
nit: this should be a regular member in __init__ (
Anthony Berent
2012/10/31 15:14:02
Done.
|
| + |
| + def __init__(self, adb): |
| + self._adb = adb |
| + |
| + def HasBeenThrottled(self): |
| + """ True if there has been any throttling since the last call to |
| + HasBeenThrottled or IsThrottled |
| + """ |
| + return self._readLog() |
| + |
| + def IsThrottled(self): |
| + """True if currently throttled""" |
| + self._readLog() |
| + return self._throttled |
| + |
| + def _readLog(self): |
|
bulach
2012/10/31 10:44:47
nit: _ReadLog
Anthony Berent
2012/10/31 15:14:02
Done.
|
| + has_been_throttled = False |
| + log = self._adb.RunShellCommand("dmesg -c") |
|
bulach
2012/10/31 10:44:47
nit: single quotes on all strings here.
Anthony Berent
2012/10/31 15:14:02
Done.
|
| + for line in log: |
| + if "omap_thermal_throttle" in line: |
| + if not self._throttled: |
| + logging.warning(">>> Thermally Throttled") |
| + self._throttled = True |
| + has_been_throttled = True |
| + if "omap_thermal_unthrottle" in line: |
| + if self._throttled: |
| + logging.warning(">>> Thermally Unthrottled") |
| + self._throttled = False |
| + has_been_throttled = True |
| + return has_been_throttled |
| + |