Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1307)

Unified Diff: build/android/pylib/perf/perf_control.py

Issue 373223002: Telemetry: Don't fail on setting performance mode without root. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use AtExit warning. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/pylib/perf/perf_control.py
diff --git a/build/android/pylib/perf/perf_control.py b/build/android/pylib/perf/perf_control.py
index 6f74575b9e6021fa60fd3d9401d36f05a4fb91c8..70389071a6b46037f23e7c891af7045486e0ef57 100644
--- a/build/android/pylib/perf/perf_control.py
+++ b/build/android/pylib/perf/perf_control.py
@@ -2,12 +2,12 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+import atexit
import logging
from pylib import android_commands
from pylib.device import device_utils
-
class PerfControl(object):
"""Provides methods for setting the performance mode of a device."""
_SCALING_GOVERNOR_FMT = (
@@ -28,15 +28,23 @@ class PerfControl(object):
self._have_mpdecision = self._device.FileExists('/system/bin/mpdecision')
def SetHighPerfMode(self):
+ """Sets the highest possible performance mode for the device."""
+ if not self._device.old_interface.IsRootEnabled():
+ message = 'Need root for performance mode. Results may be NOISY!!'
+ logging.warning(message)
+ # Add an additional warning at exit, such that it's clear that any results
+ # may be different/noisy (due to the lack of intended performance mode).
+ atexit.register(logging.warning, message)
+ return
# TODO(epenner): Enable on all devices (http://crbug.com/383566)
if 'Nexus 4' == self._device.old_interface.GetProductModel():
self._ForceAllCpusOnline(True)
if not self._AllCpusAreOnline():
- logging.warning('Failed to force CPUs online. Results may be noisy!')
+ logging.warning('Failed to force CPUs online. Results may be NOISY!')
self._SetScalingGovernorInternal('performance')
def SetPerfProfilingMode(self):
- """Sets the highest possible performance mode for the device."""
+ """Enables all cores for reliable perf profiling."""
self._ForceAllCpusOnline(True)
self._SetScalingGovernorInternal('performance')
if not self._AllCpusAreOnline():
@@ -46,6 +54,8 @@ class PerfControl(object):
def SetDefaultPerfMode(self):
"""Sets the performance mode for the device to its default mode."""
+ if not self._device.old_interface.IsRootEnabled():
+ return
product_model = self._device.GetProp('ro.product.model')
governor_mode = {
'GT-I9300': 'pegasusq',
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698