diff options
Diffstat (limited to 'tools')
3 files changed, 16 insertions, 2 deletions
diff --git a/tools/telemetry/telemetry/core/browser_options.py b/tools/telemetry/telemetry/core/browser_options.py index bacde66..b809c98 100644 --- a/tools/telemetry/telemetry/core/browser_options.py +++ b/tools/telemetry/telemetry/core/browser_options.py @@ -125,6 +125,14 @@ class BrowserOptions(optparse.Values): help='Increase verbosity level (repeat as needed)') parser.add_option_group(group) + # Platform options + group = optparse.OptionGroup(parser, 'Platform options') + group.add_option('--no-performance-mode', action='store_true', + help='Some platforms run on "full performance mode" where the ' + 'benchmark is executed at maximum CPU speed in order to minimize noise ' + '(specially important for dashboards / continuous builds). ' + 'This option prevents Telemetry from tweaking such platform settings.') + real_parse = parser.parse_args def ParseArgs(args=None): defaults = parser.get_default_values() diff --git a/tools/telemetry/telemetry/core/chrome/android_browser_finder.py b/tools/telemetry/telemetry/core/chrome/android_browser_finder.py index 7095f00..a2f8b18 100644 --- a/tools/telemetry/telemetry/core/chrome/android_browser_finder.py +++ b/tools/telemetry/telemetry/core/chrome/android_browser_finder.py @@ -56,7 +56,7 @@ class PossibleAndroidBrowser(possible_browser.PossibleBrowser): self._options, *self._args) platform_backend = android_platform_backend.AndroidPlatformBackend( self._args[0].Adb(), self._args[1], - self._args[4]) + self._args[4], self._options.no_performance_mode) b = browser.Browser(backend, platform.Platform(platform_backend)) backend.SetBrowser(b) return b diff --git a/tools/telemetry/telemetry/core/chrome/android_platform_backend.py b/tools/telemetry/telemetry/core/chrome/android_platform_backend.py index e5ab574..47b9e5b 100644 --- a/tools/telemetry/telemetry/core/chrome/android_platform_backend.py +++ b/tools/telemetry/telemetry/core/chrome/android_platform_backend.py @@ -2,6 +2,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +import logging import os import sys @@ -21,7 +22,7 @@ except Exception: class AndroidPlatformBackend(object): - def __init__(self, adb, window_package, window_activity): + def __init__(self, adb, window_package, window_activity, no_performance_mode): super(AndroidPlatformBackend, self).__init__() self._adb = adb self._window_package = window_package @@ -29,6 +30,9 @@ class AndroidPlatformBackend(object): self._surface_stats_collector = None self._perf_tests_setup = perf_tests_helper.PerfTestSetup(self._adb) self._thermal_throttle = thermal_throttle.ThermalThrottle(self._adb) + self._no_performance_mode = no_performance_mode + if self._no_performance_mode: + logging.warning('CPU governor will not be set!') def IsRawDisplayFrameRateSupported(self): return True @@ -45,6 +49,8 @@ class AndroidPlatformBackend(object): self._surface_stats_collector = None def SetFullPerformanceModeEnabled(self, enabled): + if self._no_performance_mode: + return if enabled: self._perf_tests_setup.SetUp() else: |