aboutsummaryrefslogtreecommitdiff
path: root/crosperf/settings_factory.py
diff options
context:
space:
mode:
Diffstat (limited to 'crosperf/settings_factory.py')
-rw-r--r--crosperf/settings_factory.py130
1 files changed, 130 insertions, 0 deletions
diff --git a/crosperf/settings_factory.py b/crosperf/settings_factory.py
index efbb534f..1f2693c6 100644
--- a/crosperf/settings_factory.py
+++ b/crosperf/settings_factory.py
@@ -1,11 +1,15 @@
+# -*- coding: utf-8 -*-
# Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+
"""Setting files for global, benchmark and labels."""
from __future__ import print_function
from field import BooleanField
+from field import EnumField
+from field import FloatField
from field import IntegerField
from field import ListField
from field import TextField
@@ -51,6 +55,11 @@ class BenchmarkSettings(Settings):
'telemetry_Crosperf.',
required=False,
default=True))
+ self.AddField(
+ FloatField(
+ 'weight',
+ default=0.0,
+ description='Weight of the benchmark for CWP approximation'))
class LabelSettings(Settings):
@@ -74,6 +83,12 @@ class LabelSettings(Settings):
'files.'))
self.AddField(
TextField(
+ 'debug_path',
+ required=False,
+ description='Debug info directory relative to chroot which has '
+ 'symbols and vmlinux that can be used by perf tool.'))
+ self.AddField(
+ TextField(
'chromeos_root',
description='The path to a chromeos checkout which '
'contains a src/scripts directory. Defaults to '
@@ -138,6 +153,11 @@ class GlobalSettings(Settings):
description='The target board for running '
'experiments on, e.g. x86-alex.'))
self.AddField(
+ BooleanField(
+ 'skylab',
+ description='Whether to run experiments via skylab.',
+ default=False))
+ self.AddField(
ListField(
'remote',
description='A comma-separated list of IPs of '
@@ -286,6 +306,116 @@ class GlobalSettings(Settings):
default=0,
description='Number of times to retry a '
'benchmark run.'))
+ self.AddField(
+ TextField(
+ 'cwp_dso',
+ description='The DSO type that we want to use for '
+ 'CWP approximation. This is used to run telemetry '
+ 'benchmarks. Valid DSO types can be found from dso_list '
+ 'in experiment_factory.py. The default value is set to '
+ 'be empty.',
+ required=False,
+ default=''))
+ self.AddField(
+ BooleanField(
+ 'enable_aslr',
+ description='Enable ASLR on the machine to run the '
+ 'benchmarks. ASLR is disabled by default',
+ required=False,
+ default=False))
+ self.AddField(
+ BooleanField(
+ 'ignore_min_max',
+ description='When doing math for the raw results, '
+ 'ignore min and max values to reduce noise.',
+ required=False,
+ default=False))
+ self.AddField(
+ TextField(
+ 'intel_pstate',
+ description='Intel Pstate mode.\n'
+ 'Supported modes: passive, no_hwp.\n'
+ 'By default kernel works in active HWP mode if HWP is supported'
+ " by CPU. This corresponds to a default intel_pstate=''",
+ required=False,
+ default=''))
+ self.AddField(
+ BooleanField(
+ 'turbostat',
+ description='Run turbostat process in the background'
+ ' of a benchmark',
+ required=False,
+ default=True))
+ self.AddField(
+ FloatField(
+ 'top_interval',
+ description='Run top command in the background of a benchmark with'
+ ' interval of sampling specified in seconds.\n'
+ 'Recommended values 1-5. Lower number provides more accurate'
+ ' data.\n'
+ 'With 0 - do not run top.\n'
+ 'NOTE: Running top with interval 1-5 sec has insignificant'
+ ' performance impact (performance degradation does not exceed 0.3%,'
+ ' measured on x86_64, ARM32, and ARM64).',
+ required=False,
+ default=0))
+ self.AddField(
+ IntegerField(
+ 'cooldown_temp',
+ required=False,
+ default=40,
+ description='Wait until CPU temperature goes down below'
+ ' specified temperature in Celsius'
+ ' prior starting a benchmark.'))
+ self.AddField(
+ IntegerField(
+ 'cooldown_time',
+ required=False,
+ default=0,
+ description='Wait specified time in minutes allowing'
+ ' CPU to cool down. Zero value disables cooldown.'))
+ self.AddField(
+ EnumField(
+ 'governor',
+ options=[
+ 'performance',
+ 'powersave',
+ 'userspace',
+ 'ondemand',
+ 'conservative',
+ 'schedutils',
+ 'sched',
+ 'interactive',
+ ],
+ default='performance',
+ required=False,
+ description='Setup CPU governor for all cores.\n'
+ 'For more details refer to:\n'
+ 'https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt'))
+ self.AddField(
+ EnumField(
+ 'cpu_usage',
+ options=[
+ 'all',
+ 'big_only',
+ 'little_only',
+ 'exclusive_cores',
+ ],
+ default='all',
+ required=False,
+ description='Restrict usage CPUs to decrease CPU interference.\n'
+ 'all - no restrictions;\n'
+ 'big-only, little-only - enable only big/little cores,'
+ ' applicable only on ARM;\n'
+ 'exclusive-cores - (for future use)'
+ ' isolate cores for exclusive use of benchmark processes.'))
+ self.AddField(
+ IntegerField(
+ 'cpu_freq_pct',
+ required=False,
+ default=100,
+ description='Setup CPU frequency to a supported value less than'
+ ' or equal to a percent of max_freq.'))
class SettingsFactory(object):