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

Issue 338233003: Telemetry: Set scaling governor on all cpus (on all devices) (Closed)

Created:
6 years, 6 months ago by epenner
Modified:
6 years, 6 months ago
CC:
chromium-reviews, klundberg+watch_chromium.org, bulach+watch_chromium.org, yfriedman+watch_chromium.org, ilevy-cc_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Project:
chromium
Visibility:
Public.

Description

Telemetry: Set scaling governor on all cpus (on all devices) We try to set the scaling governor for all CPU cores, but this doesn't work SOCs that dynamically disable cores entirely (ie. Qualcomm). Since this only happens on Qcomm, this patch stops the 'mpdecision' process on Qualcomm, which makes it behave like other devices. PERF-SHERIFFS: This may improve metrics for the better given all cores are in 'performance' mode now. It should hopefully reduce noise, since a different number of cores might have had 'performance' set on each run, and any code that runs on a non-performance core will suffer from noisy timings/rates. Example: Tough-compositor-cases std-dev went from 0.25ms to 0.04ms with this change. BUG=383566 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=278837

Patch Set 1 #

Patch Set 2 : Test. #

Patch Set 3 : #

Total comments: 26

Patch Set 4 : Rebase. #

Patch Set 5 : Address feedback. #

Total comments: 15

Patch Set 6 : Address Feedback. #

Patch Set 7 : Disable pylint warning. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+67 lines, -59 lines) Patch
M build/android/pylib/gtest/test_runner.py View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M build/android/pylib/perf/perf_control.py View 1 2 3 4 5 6 4 chunks +52 lines, -39 lines 0 comments Download
M build/android/pylib/perf/perf_control_unittest.py View 1 2 3 4 5 6 3 chunks +9 lines, -14 lines 0 comments Download
M tools/android/adb_profile_chrome/perf_controller.py View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M tools/telemetry/telemetry/core/platform/profiler/perf_profiler.py View 1 2 3 4 5 3 chunks +3 lines, -3 lines 0 comments Download

Messages

Total messages: 43 (0 generated)
epenner
Ptal
6 years, 6 months ago (2014-06-17 00:36:44 UTC) #1
Sami
Thanks Eric, really interested in seeing how this affects the results. Would you mind updating ...
6 years, 6 months ago (2014-06-17 04:16:44 UTC) #2
pasko
I think it's a good idea to have all cores on in HighPerf mode (hey, ...
6 years, 6 months ago (2014-06-17 11:48:31 UTC) #3
pasko
2nd thought: > Example: Tough-compositor-cases std-dev went from 0.25 to 0.04 with this change. Was ...
6 years, 6 months ago (2014-06-17 11:55:43 UTC) #4
Sami
https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py File build/android/pylib/perf/perf_control.py (right): https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py#newcode54 build/android/pylib/perf/perf_control.py:54: self._ForceAllCpusOnline(False) On 2014/06/17 11:48:30, pasko wrote: > All this ...
6 years, 6 months ago (2014-06-17 13:04:07 UTC) #5
pasko
https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py File build/android/pylib/perf/perf_control.py (right): https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py#newcode54 build/android/pylib/perf/perf_control.py:54: self._ForceAllCpusOnline(False) On 2014/06/17 13:04:07, Sami wrote: > On 2014/06/17 ...
6 years, 6 months ago (2014-06-17 15:12:38 UTC) #6
Sami
https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py File build/android/pylib/perf/perf_control.py (right): https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py#newcode54 build/android/pylib/perf/perf_control.py:54: self._ForceAllCpusOnline(False) On 2014/06/17 15:12:37, pasko wrote: > On 2014/06/17 ...
6 years, 6 months ago (2014-06-17 15:46:35 UTC) #7
pasko
https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py File build/android/pylib/perf/perf_control.py (right): https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py#newcode54 build/android/pylib/perf/perf_control.py:54: self._ForceAllCpusOnline(False) On 2014/06/17 15:46:35, Sami wrote: > On 2014/06/17 ...
6 years, 6 months ago (2014-06-17 17:02:23 UTC) #8
Sami
On 2014/06/17 17:02:23, pasko wrote: > OK, I just don't understand the contract we are ...
6 years, 6 months ago (2014-06-17 17:13:33 UTC) #9
pasko
On 2014/06/17 17:13:33, Sami wrote: > On 2014/06/17 17:02:23, pasko wrote: > > OK, I ...
6 years, 6 months ago (2014-06-17 17:44:55 UTC) #10
Sami
On 2014/06/17 17:44:55, pasko wrote: > On 2014/06/17 17:13:33, Sami wrote: > > On 2014/06/17 ...
6 years, 6 months ago (2014-06-17 17:56:27 UTC) #11
epenner
https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py File build/android/pylib/perf/perf_control.py (right): https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py#newcode54 build/android/pylib/perf/perf_control.py:54: self._ForceAllCpusOnline(False) My thinking was that this only only different ...
6 years, 6 months ago (2014-06-17 22:10:56 UTC) #12
epenner
Okay, since there was a bit of back and forth comments, I've made all the ...
6 years, 6 months ago (2014-06-18 00:29:47 UTC) #13
pasko
https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py File build/android/pylib/perf/perf_control.py (right): https://codereview.chromium.org/338233003/diff/20002/build/android/pylib/perf/perf_control.py#newcode54 build/android/pylib/perf/perf_control.py:54: self._ForceAllCpusOnline(False) On 2014/06/17 22:10:55, epenner wrote: > My thinking ...
6 years, 6 months ago (2014-06-18 10:59:49 UTC) #14
epenner
Ptal for latest. - I cache have_mpdecision_ now and only start/stop if it exists. - ...
6 years, 6 months ago (2014-06-18 22:39:09 UTC) #15
pasko
I think this is looking pretty good now and can almost land before we sort ...
6 years, 6 months ago (2014-06-19 17:48:32 UTC) #16
Sami
I added a few nits but overall lgtm. https://codereview.chromium.org/338233003/diff/110001/build/android/pylib/perf/perf_control.py File build/android/pylib/perf/perf_control.py (right): https://codereview.chromium.org/338233003/diff/110001/build/android/pylib/perf/perf_control.py#newcode32 build/android/pylib/perf/perf_control.py:32: def ...
6 years, 6 months ago (2014-06-19 18:12:43 UTC) #17
epenner
Thanks! Addressed all feedback. I'm going to land unless someone objects. Also feel free to ...
6 years, 6 months ago (2014-06-19 23:58:50 UTC) #18
epenner
The CQ bit was checked by epenner@chromium.org
6 years, 6 months ago (2014-06-19 23:59:11 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/epenner@chromium.org/338233003/130001
6 years, 6 months ago (2014-06-20 00:00:23 UTC) #20
Sami
On 2014/06/19 23:58:50, epenner wrote: > Yeah this was just for the test since accessing ...
6 years, 6 months ago (2014-06-20 00:02:08 UTC) #21
epenner
The CQ bit was unchecked by epenner@chromium.org
6 years, 6 months ago (2014-06-20 00:06:03 UTC) #22
epenner
The CQ bit was checked by epenner@chromium.org
6 years, 6 months ago (2014-06-20 00:24:09 UTC) #23
epenner
On 2014/06/20 00:02:08, Sami wrote: > On 2014/06/19 23:58:50, epenner wrote: > > Yeah this ...
6 years, 6 months ago (2014-06-20 00:24:43 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/epenner@chromium.org/338233003/150001
6 years, 6 months ago (2014-06-20 00:26:17 UTC) #25
epenner
Oops still need tools/telemetry LGTM. Also, after reading the other but, let me know if ...
6 years, 6 months ago (2014-06-20 00:28:52 UTC) #26
epenner
Actually, read the other bug that it's okay to land this before 'realistic' mode lands. ...
6 years, 6 months ago (2014-06-20 03:05:04 UTC) #27
commit-bot: I haz the power
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: chromium_presubmit on tryserver.chromium ...
6 years, 6 months ago (2014-06-20 09:00:43 UTC) #28
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 6 months ago (2014-06-20 09:05:57 UTC) #29
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on tryserver.chromium (http://build.chromium.org/p/tryserver.chromium/builders/chromium_presubmit/builds/75096)
6 years, 6 months ago (2014-06-20 09:05:59 UTC) #30
pasko
presubmit says someone from tools/telemetry/OWNERS has to approve... https://codereview.chromium.org/338233003/diff/110001/build/android/pylib/perf/perf_control.py File build/android/pylib/perf/perf_control.py (right): https://codereview.chromium.org/338233003/diff/110001/build/android/pylib/perf/perf_control.py#newcode36 build/android/pylib/perf/perf_control.py:36: return ...
6 years, 6 months ago (2014-06-20 13:48:37 UTC) #31
epenner
On 2014/06/20 13:48:37, pasko wrote: > presubmit says someone from tools/telemetry/OWNERS has to approve... > ...
6 years, 6 months ago (2014-06-20 19:21:56 UTC) #32
dtu
lgtm
6 years, 6 months ago (2014-06-20 21:57:59 UTC) #33
epenner
The CQ bit was checked by epenner@chromium.org
6 years, 6 months ago (2014-06-20 22:01:27 UTC) #34
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/epenner@chromium.org/338233003/150001
6 years, 6 months ago (2014-06-20 22:04:39 UTC) #35
commit-bot: I haz the power
Change committed as 278837
6 years, 6 months ago (2014-06-20 22:33:29 UTC) #36
Nico
The new exception is thrown for me when I run `tools/perf/run_benchmark -v --browser=android-chrome-shell thread_times.key_mobile_sites --pageset-repeat=10`: ...
6 years, 6 months ago (2014-06-23 18:11:21 UTC) #37
epenner
> This is with a nexus 4; probably because it's not rooted. > http://www.chromium.org/developers/telemetry/run_locally doesn't ...
6 years, 6 months ago (2014-06-23 18:59:02 UTC) #38
pasko
On 2014/06/23 18:11:21, Nico (away) wrote: > The new exception is thrown for me when ...
6 years, 6 months ago (2014-06-23 19:03:58 UTC) #39
pasko
On 2014/06/23 18:59:02, epenner wrote: > > This is with a nexus 4; probably because ...
6 years, 6 months ago (2014-06-23 19:06:23 UTC) #40
Nico
On my device, thakis@yearofthelinuxdesktop:~/src/chrome/src$ third_party/android_tools/sdk/platform-tools/adb root adbd cannot run as root in production builds So ...
6 years, 6 months ago (2014-06-23 19:10:44 UTC) #41
epennerAtGoogle
I can see both sides of the argument, but I'm also leaning towards some things ...
6 years, 6 months ago (2014-06-23 19:44:03 UTC) #42
pasko
6 years, 6 months ago (2014-06-23 20:17:17 UTC) #43
Message was sent while issue was closed.
On 2014/06/23 19:44:03, epennerAtGoogle wrote:
> I can see both sides of the argument, but I'm also leaning towards some things
> working without root if it's not a major burden.
> 
> One use case: I test a lot with random off-shelf devices (and page-repeat
works
> okay as mitigation).
> Precedent: I doubt we'll disable tracing, and the timings there will also be
> more noisy without root.

My concerns are:
1. supporting extra mode (non-root) requires extra effort
2. non-root in general means not only extra noise, but also lack of results or
skewed results, cases when "it's non-root, but still okay" won't be documented,
and will get easily subtle.

That said, I think we can still support non-root benchmarking, if the log
message about skewed results appears in the end of the run, that'd make me more
comfortable.

Powered by Google App Engine
This is Rietveld 408576698