OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import logging | 5 import logging |
6 import platform | 6 import platform |
7 import re | 7 import re |
8 | 8 |
9 from telemetry import decorators | 9 from telemetry import decorators |
10 from telemetry.internal.platform import power_monitor | 10 from telemetry.internal.platform import power_monitor |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 | 126 |
127 | 127 |
128 class MsrPowerMonitorWin(MsrPowerMonitor): | 128 class MsrPowerMonitorWin(MsrPowerMonitor): |
129 def CanMonitorPower(self): | 129 def CanMonitorPower(self): |
130 family, model = map(int, re.match('.+ Family ([0-9]+) Model ([0-9]+)', | 130 family, model = map(int, re.match('.+ Family ([0-9]+) Model ([0-9]+)', |
131 platform.processor()).groups()) | 131 platform.processor()).groups()) |
132 if not _IsSandyBridgeOrLater(platform.processor(), family, model): | 132 if not _IsSandyBridgeOrLater(platform.processor(), family, model): |
133 logging.info('Cannot monitor power: pre-Sandy Bridge CPU.') | 133 logging.info('Cannot monitor power: pre-Sandy Bridge CPU.') |
134 return False | 134 return False |
135 | 135 |
136 return self._CheckMSRs() | 136 msr_return_value = self._CheckMSRs() |
| 137 # Since _CheckMSRs() starts the MSR server on win platform, we must close |
| 138 # it after checking to avoid leaking msr server process. |
| 139 self._backend.CloseMsrServer() |
| 140 return msr_return_value |
| 141 |
137 | 142 |
138 def StopMonitoringPower(self): | 143 def StopMonitoringPower(self): |
139 power_statistics = super(MsrPowerMonitorWin, self).StopMonitoringPower() | 144 power_statistics = super(MsrPowerMonitorWin, self).StopMonitoringPower() |
140 self._backend.CloseMsrServer() | 145 self._backend.CloseMsrServer() |
141 return power_statistics | 146 return power_statistics |
OLD | NEW |