Create a BattOr power benchmark that just sits idle (without launching Chrome) |
||||||
Issue descriptionThis 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.
,
Mar 13 2017
,
Apr 11 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/20017d2b1fcf1d125715da9b32ea695600d45b07 commit 20017d2b1fcf1d125715da9b32ea695600d45b07 Author: rnephew <rnephew@chromium.org> Date: Tue Apr 11 18:38:02 2017 [Telemetry] Add benchmark that doesn't launch chrome and collects platform data. It will be useful to collect background power data on the platforms we run on and will help reduce noise in power benchmarks. BUG= 700022 Review-Url: https://codereview.chromium.org/2744273003 Cr-Commit-Position: refs/heads/master@{#463697} [modify] https://crrev.com/20017d2b1fcf1d125715da9b32ea695600d45b07/testing/buildbot/chromium.perf.fyi.json [modify] https://crrev.com/20017d2b1fcf1d125715da9b32ea695600d45b07/testing/buildbot/chromium.perf.json [modify] https://crrev.com/20017d2b1fcf1d125715da9b32ea695600d45b07/tools/perf/benchmark.csv [modify] https://crrev.com/20017d2b1fcf1d125715da9b32ea695600d45b07/tools/perf/benchmarks/power.py [add] https://crrev.com/20017d2b1fcf1d125715da9b32ea695600d45b07/tools/perf/page_sets/idle_platform.py
,
Apr 12 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)
,
Apr 12 2017
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?
,
Apr 12 2017
I think we should fix --upload-result code so that it doesn't assume that story have URL.
,
Apr 12 2017
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
,
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
,
Apr 14 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/5194feb68616e1a322380a5e8b5d3f38f28404e4 commit 5194feb68616e1a322380a5e8b5d3f38f28404e4 Author: rnephew <rnephew@chromium.org> Date: Fri Apr 14 23:22:05 2017 [Telemetry]Do not run power.idle_platform for reference build runs BUG= 700022 Review-Url: https://codereview.chromium.org/2822723002 Cr-Commit-Position: refs/heads/master@{#464822} [modify] https://crrev.com/5194feb68616e1a322380a5e8b5d3f38f28404e4/testing/buildbot/chromium.perf.fyi.json [modify] https://crrev.com/5194feb68616e1a322380a5e8b5d3f38f28404e4/testing/buildbot/chromium.perf.json [modify] https://crrev.com/5194feb68616e1a322380a5e8b5d3f38f28404e4/tools/perf/benchmark.csv [modify] https://crrev.com/5194feb68616e1a322380a5e8b5d3f38f28404e4/tools/perf/core/perf_data_generator.py [modify] https://crrev.com/5194feb68616e1a322380a5e8b5d3f38f28404e4/tools/perf/core/perf_data_generator_unittest.py
,
Apr 17 2017
,
Apr 18 2017
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
,
Apr 18 2017
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
,
Apr 24 2017
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.
,
May 4 2017
rnephew@, are we good to mark this as fixed?
,
May 4 2017
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
,
May 5 2017
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 |
||||||
Comment 1 by nedngu...@google.com
, Mar 10 2017