New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 700022 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Feature



Sign in to add a comment

Create a BattOr power benchmark that just sits idle (without launching Chrome)

Project Member Reported by charliea@chromium.org, Mar 9 2017

Issue description

This would allow us to see what sort of power noise we have on the bots without Chrome even running.

Ned said that we can do this by subclassing SharedState (https://cs.corp.google.com/github/catapult-project/catapult/telemetry/telemetry/story/shared_state.py?type=cs&q=p:github+f:%5Ecatapult-project/catapult/+sharedstate&l=8) to basically only calculate the platform correctly. The especially important method that we need to differ from SharedPageState (the other subclass that normally runs Chrome) is WillRunStory, where we want to do nothing but sit idle.

Once we've done this, we can create a story using this subclass and use it in a benchmark.
 
Components: -Speed>Telemetry Speed>Benchmarks
Cc: -nednguyen@chromium.org nedngu...@google.com
Owner: rnep...@chromium.org
Status: Started (was: Untriaged)
Project Member

Comment 3 by bugdroid1@chromium.org, Apr 11 2017

This is failing on bot:
Traceback (most recent call last):
  <module> at /b/s/w/ir/tools/perf/run_benchmark:22
    sys.exit(main())
  main at /b/s/w/ir/tools/perf/run_benchmark:19
    return benchmark_runner.main(config, [trybot_command.Trybot])
  main at /b/s/w/ir/third_party/catapult/telemetry/telemetry/benchmark_runner.py:432
    return command_instance.Run(options)
  Run at /b/s/w/ir/third_party/catapult/telemetry/telemetry/benchmark_runner.py:245
    return min(255, self._benchmark().Run(args))
  Run at /b/s/w/ir/third_party/catapult/telemetry/telemetry/benchmark.py:91
    return story_runner.RunBenchmark(self, finder_options)
  RunBenchmark at /b/s/w/ir/third_party/catapult/telemetry/telemetry/internal/story_runner.py:377
    results.UploadTraceFilesToCloud(bucket)
  UploadTraceFilesToCloud at /b/s/w/ir/third_party/catapult/telemetry/telemetry/internal/results/page_test_results.py:397
    value.UploadToCloud(bucket)
  UploadToCloud at /b/s/w/ir/third_party/catapult/telemetry/telemetry/value/trace.py:157
    (self._cloud_url, self.page.url if self.page else 'unknown'))
AttributeError: '_IdleStory' object has no attribute 'url'

https://chromium-swarm.appspot.com/task?id=357912d6e3b52110&refresh=10&show_raw=1


Also you want to add logic to make sure that we don't generate the reference build to power.idle_platform (in https://cs.chromium.org/webrtc/src/tools/perf/core/perf_data_generator.py)
It looks like the problem is that --upload-results creates a dependency on the story having a URL. This seems like it is a holdover from the old concept of pages instead of stories. I will add a url to the stories for this purpose. It seems  like there should be a bug filed to make --upload-results not rely on url, do you agree ned?
I think we should fix --upload-result code so that it doesn't assume that story have URL.
I just filed a bug for that in catapult. The fix for getting this working now is very simple, and I need some time to dig into that part of the code to determine the proper fix. 

Bug for fix:
https://github.com/catapult-project/catapult/issues/3489

Temporary fix cl:
https://codereview.chromium.org/2813963004
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1dbbac2cfc9625af311200e67563ca6613f750b9

commit 1dbbac2cfc9625af311200e67563ca6613f750b9
Author: rnephew <rnephew@chromium.org>
Date: Wed Apr 12 19:37:09 2017

[Telemetry] Fix idle platform story so that it has a url.

It shouldn't require a url since it has no page, but a dependency requires it
so this will make the benchmark work while I investigate how to remove that
url dependency.
https://github.com/catapult-project/catapult/issues/3489

BUG= 700022 

Review-Url: https://codereview.chromium.org/2813963004
Cr-Commit-Position: refs/heads/master@{#464111}

[modify] https://crrev.com/1dbbac2cfc9625af311200e67563ca6613f750b9/tools/perf/page_sets/idle_platform.py

Status: Fixed (was: Started)
Labels: Performance-Power
Status: Started (was: Fixed)
Thanks for the work, now we have the data showing that the platform power usage is not very stable (https://chromeperf.appspot.com/report?sid=285dab64f76aabd1890adbc71a2cda961307afaf498ed88c96fe45d74e2d0163)

Though can you enable the platform cpu_tracing_agent? I take a look at the trace of the high power usage and don't see much data besides battor & Telemetry trace: https://console.developers.google.com/m/cloudstorage/b/chrome-telemetry-output/o/trace-file-id_2-2017-04-15_00-03-11-69341.html
Sadly we cannot enable cpu_tracing_agent at this time. There is a problem with how we collapse clock domains in the absence of the chrome trace.

https://github.com/catapult-project/catapult/issues/3463
Labels: -Type-Bug -Pri-3 OS-All Pri-1 Type-Feature
You guys have been working on a P3, but not some of these P1s...clearly we need to fix Priority. I'm bumping this to P1 unless you're expecting to not have more work to do here.
rnephew@, are we good to mark this as fixed?
Charlie: this is producing battor metrics, which shows that Mac is terrible (great!), but we don't have CPU snapshot from the trace to tell what's going on.

https://chromeperf.appspot.com/report?sid=295a5823f02ae8a9c1bc3d100f04afbd036753f08011ba06c0f2471e5ecb2397
Status: Fixed (was: Started)
Good to know! I'm going to mark this bug as fixed and track future work to get the CPU tracing agent working in https://github.com/catapult-project/catapult/issues/3463.

Sign in to add a comment