Index: tools/telemetry/telemetry/core/platform/power_monitor/monsoon_power_monitor.py |
diff --git a/tools/telemetry/telemetry/core/platform/power_monitor/monsoon_power_monitor.py b/tools/telemetry/telemetry/core/platform/power_monitor/monsoon_power_monitor.py |
index 89420fb935b8aa1a59874623eb96de764fdddebd..f349ff6fcbc245ac1afceb896629c1edde2dc343 100644 |
--- a/tools/telemetry/telemetry/core/platform/power_monitor/monsoon_power_monitor.py |
+++ b/tools/telemetry/telemetry/core/platform/power_monitor/monsoon_power_monitor.py |
@@ -8,7 +8,8 @@ import tempfile |
import time |
from telemetry.core import exceptions |
-from telemetry.core.platform import power_monitor |
+from telemetry.core.platform import android_sysfs_platform |
+from telemetry.core.platform.power_monitor import sysfs_power_monitor |
from telemetry.core.platform.profiler import monsoon |
@@ -42,9 +43,10 @@ def _MonitorPower(device, is_collecting, output): |
} |
json.dump(result, output) |
-class MonsoonPowerMonitor(power_monitor.PowerMonitor): |
- def __init__(self): |
- super(MonsoonPowerMonitor, self).__init__() |
+class MonsoonPowerMonitor(sysfs_power_monitor.SysfsPowerMonitor): |
+ def __init__(self, device): |
+ super(MonsoonPowerMonitor, self).__init__( |
+ android_sysfs_platform.AndroidSysfsPlatform(device)) |
self._powermonitor_process = None |
self._powermonitor_output_file = None |
self._is_collecting = None |
@@ -65,6 +67,7 @@ class MonsoonPowerMonitor(power_monitor.PowerMonitor): |
def StartMonitoringPower(self, browser): |
assert not self._powermonitor_process, ( |
'Must call StopMonitoringPower().') |
+ super(MonsoonPowerMonitor, self).StartMonitoringPower(browser) |
self._powermonitor_output_file = tempfile.TemporaryFile() |
self._is_collecting = multiprocessing.Event() |
self._powermonitor_process = multiprocessing.Process( |
@@ -81,6 +84,7 @@ class MonsoonPowerMonitor(power_monitor.PowerMonitor): |
assert self._powermonitor_process, ( |
'StartMonitoringPower() not called.') |
try: |
+ cpu_stats = super(MonsoonPowerMonitor, self).StopMonitoringPower() |
# Tell powermonitor to take an immediate sample and join. |
self._is_collecting.clear() |
self._powermonitor_process.join() |
@@ -88,7 +92,9 @@ class MonsoonPowerMonitor(power_monitor.PowerMonitor): |
self._powermonitor_output_file.seek(0) |
powermonitor_output = self._powermonitor_output_file.read() |
assert powermonitor_output, 'PowerMonitor produced no output' |
- return MonsoonPowerMonitor.ParseSamplingOutput(powermonitor_output) |
+ power_stats = MonsoonPowerMonitor.ParseSamplingOutput(powermonitor_output) |
+ return super(MonsoonPowerMonitor, self).CombineResults(cpu_stats, |
+ power_stats) |
finally: |
self._powermonitor_output_file = None |
self._powermonitor_process = None |