diff options
author | Manoj Gupta <manojgupta@google.com> | 2017-03-13 20:46:18 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2017-03-17 16:00:53 -0700 |
commit | 6b18d24494eac4c615a9d040855155a19f0329b6 (patch) | |
tree | 94b43bb1d39071fc82fe9255df450eee955e62c2 | |
parent | cdd7d45be9b171835027165ed0474bf8dbc04a9d (diff) | |
download | toolchain-utils-6b18d24494eac4c615a9d040855155a19f0329b6.tar.gz |
Set scaling governor to performance in crosperf.
Elm seems to have stable numbers when only governor is set.
Disable turbo is intel pstate thermal driver is used.
Tested on squawks and lumpy.
Includes some minor tc_pyformat changes.
BUG=chromium:700190
TEST=Tested on elm, squawks, lumpy, kevin, falco and veyron_jaq.
Change-Id: Ib368234b3bde5e54ff9b53ae3766e7384bd1df5f
Reviewed-on: https://chromium-review.googlesource.com/454299
Commit-Ready: Manoj Gupta <manojgupta@chromium.org>
Tested-by: Manoj Gupta <manojgupta@chromium.org>
Reviewed-by: Caroline Tice <cmtice@chromium.org>
-rw-r--r-- | crosperf/suite_runner.py | 39 | ||||
-rwxr-xr-x | crosperf/suite_runner_unittest.py | 41 |
2 files changed, 36 insertions, 44 deletions
diff --git a/crosperf/suite_runner.py b/crosperf/suite_runner.py index 678113a7..66d8109f 100644 --- a/crosperf/suite_runner.py +++ b/crosperf/suite_runner.py @@ -88,22 +88,26 @@ class SuiteRunner(object): # pyformat: disable set_cpu_freq = ( 'set -e && ' + # Disable Turbo in Intel pstate driver + 'if [[ -e /sys/devices/system/cpu/intel_pstate/no_turbo ]]; then ' + 'echo -n 1 > /sys/devices/system/cpu/intel_pstate/no_turbo; fi; ' + # Set governor to performance for each cpu 'for f in /sys/devices/system/cpu/cpu*/cpufreq; do ' 'cd $f; ' - 'val=0; ' - 'if [[ -e scaling_available_frequencies ]]; then ' - # pylint: disable=line-too-long - ' val=`cat scaling_available_frequencies | tr " " "\\n" | sort -n -b -r`; ' - 'else ' - ' val=`cat scaling_max_freq | tr " " "\\n" | sort -n -b -r`; fi ; ' - 'set -- $val; ' - 'highest=$1; ' - 'if [[ $# -gt 1 ]]; then ' - ' case $highest in *1000) highest=$2;; esac; ' - 'fi ;' - 'echo $highest > scaling_max_freq; ' - 'echo $highest > scaling_min_freq; ' 'echo performance > scaling_governor; ' + # Uncomment rest of lines to enable setting frequency by crosperf + #'val=0; ' + #'if [[ -e scaling_available_frequencies ]]; then ' + #' val=`cat scaling_available_frequencies | tr " " "\\n" | sort -n -b -r`; ' + #'else ' + #' val=`cat scaling_max_freq | tr " " "\\n" | sort -n -b -r`; fi ; ' + #'set -- $val; ' + #'highest=$1; ' + #'if [[ $# -gt 1 ]]; then ' + #' case $highest in *1000) highest=$2;; esac; ' + #'fi ;' + #'echo $highest > scaling_max_freq; ' + #'echo $highest > scaling_min_freq; ' 'done' ) # pyformat: enable @@ -218,11 +222,10 @@ class SuiteRunner(object): args_string = "test_args='%s'" % test_args cmd = ('{} {} {} --board={} --args="{} run_local={} test={} ' - '{}" {} telemetry_Crosperf'.format(TEST_THAT_PATH, autotest_dir_arg, - fast_arg, label.board, - args_string, benchmark.run_local, - benchmark.test_name, - profiler_args, machine)) + '{}" {} telemetry_Crosperf'.format( + TEST_THAT_PATH, autotest_dir_arg, fast_arg, label.board, + args_string, benchmark.run_local, benchmark.test_name, + profiler_args, machine)) # Use --no-ns-pid so that cros_sdk does not create a different # process namespace and we can kill process created easily by their diff --git a/crosperf/suite_runner_unittest.py b/crosperf/suite_runner_unittest.py index fd8de661..4b87f9c7 100755 --- a/crosperf/suite_runner_unittest.py +++ b/crosperf/suite_runner_unittest.py @@ -28,10 +28,9 @@ class SuiteRunnerTest(unittest.TestCase): mock_cmd_exec = mock.Mock(spec=command_executer.CommandExecuter) mock_cmd_term = mock.Mock(spec=command_executer.CommandTerminator) mock_logger = mock.Mock(spec=logger.Logger) - mock_label = label.MockLabel('lumpy', 'lumpy_chromeos_image', '', - '/tmp/chromeos', 'lumpy', - ['lumpy1.cros', 'lumpy.cros2'], '', '', False, - 'average', 'gcc', '') + mock_label = label.MockLabel( + 'lumpy', 'lumpy_chromeos_image', '', '/tmp/chromeos', 'lumpy', + ['lumpy1.cros', 'lumpy.cros2'], '', '', False, 'average', 'gcc', '') telemetry_crosperf_bench = Benchmark( 'b1_test', # name 'octane', # test_name @@ -72,9 +71,8 @@ class SuiteRunnerTest(unittest.TestCase): self.call_telemetry_run = False def setUp(self): - self.runner = suite_runner.SuiteRunner(self.mock_logger, 'verbose', - self.mock_cmd_exec, - self.mock_cmd_term) + self.runner = suite_runner.SuiteRunner( + self.mock_logger, 'verbose', self.mock_cmd_exec, self.mock_cmd_term) def test_get_profiler_args(self): input_str = ('--profiler=custom_perf --profiler_args=\'perf_options' @@ -136,9 +134,9 @@ class SuiteRunnerTest(unittest.TestCase): self.assertTrue(self.call_telemetry_run) self.assertFalse(self.call_test_that_run) self.assertFalse(self.call_telemetry_crosperf_run) - self.assertEqual( - self.telemetry_run_args, - ['fake_machine', self.mock_label, self.telemetry_bench, '']) + self.assertEqual(self.telemetry_run_args, [ + 'fake_machine', self.mock_label, self.telemetry_bench, '' + ]) reset() self.runner.Run(machine, self.mock_label, self.test_that_bench, test_args, @@ -147,9 +145,9 @@ class SuiteRunnerTest(unittest.TestCase): self.assertFalse(self.call_telemetry_run) self.assertTrue(self.call_test_that_run) self.assertFalse(self.call_telemetry_crosperf_run) - self.assertEqual( - self.test_that_args, - ['fake_machine', self.mock_label, self.test_that_bench, '', '']) + self.assertEqual(self.test_that_args, [ + 'fake_machine', self.mock_label, self.test_that_bench, '', '' + ]) reset() self.runner.Run(machine, self.mock_label, self.telemetry_crosperf_bench, @@ -171,21 +169,12 @@ class SuiteRunnerTest(unittest.TestCase): # pyformat: disable set_cpu_cmd = ( 'set -e && ' + # Disable Turbo in Intel pstate driver + 'if [[ -e /sys/devices/system/cpu/intel_pstate/no_turbo ]]; then ' + 'echo -n 1 > /sys/devices/system/cpu/intel_pstate/no_turbo; fi; ' + # Set governor to performance for each cpu 'for f in /sys/devices/system/cpu/cpu*/cpufreq; do ' 'cd $f; ' - 'val=0; ' - 'if [[ -e scaling_available_frequencies ]]; then ' - # pylint: disable=line-too-long - ' val=`cat scaling_available_frequencies | tr " " "\\n" | sort -n -b -r`; ' - 'else ' - ' val=`cat scaling_max_freq | tr " " "\\n" | sort -n -b -r`; fi ; ' - 'set -- $val; ' - 'highest=$1; ' - 'if [[ $# -gt 1 ]]; then ' - ' case $highest in *1000) highest=$2;; esac; ' - 'fi ;' - 'echo $highest > scaling_max_freq; ' - 'echo $highest > scaling_min_freq; ' 'echo performance > scaling_governor; ' 'done' ) |