blob: aa3a433f40184e0aad5bf2c46123daef6bc1d689 [file] [log] [blame] [view]
sullivand37f9c52017-06-17 01:25:501# chromium.perf Waterfall
2
3## Overview
4
Juan Antonio Navarro Perezc410eef2019-10-29 11:41:225The [chrome.perf waterfall](https://ci.chromium.org/p/chrome/g/chrome.perf/console)
sullivand37f9c52017-06-17 01:25:506continuously builds and runs our performance tests on real Android, Windows,
Juan Antonio Navarro Perezc410eef2019-10-29 11:41:227Mac, and Linux hardware; see [list of platforms](perf_lab_platforms.md).
8Results are reported to the
sullivand37f9c52017-06-17 01:25:509[Performance Dashboard](https://chromeperf.appspot.com/) for analysis. The
Andrew Shulaev6e2d6a72022-08-04 15:30:3010[Perfbot Health Sheriffing Rotation](http://goto.google.com/perf-bot-health-sheriffs) ensures that the benchmarks stay green. The [Perf Sheriff Rotation](perf_regression_sheriffing.md) ensures that any regressions detected by those benchmarks are addressed quickly. Together, these rotations maintain
sullivand37f9c52017-06-17 01:25:5011[Chrome's Core Principles](https://www.chromium.org/developers/core-principles)
12of speed:
13
14> "If you make a change that regresses measured performance, you will be
15> required to fix it or revert".
16
Ryan Heise1eb57282020-10-28 17:20:1717## How It Works
18
19The perf waterfall is split into three stages - builders, testers, and processors.
20
21### Builders
22
23For each commit to the Chromium repo, a Builder is invoked. The builder builds
24Google Chrome, acquires test assets, and bundles everything up to be passed
25along to Testers. We execute a builder for each platform we support. To ensure
26we can keep up with the rapid flow of commits, we have a set of builders per
27platform, each building a different commit.
28
29### Testers
30
31For each platform, we have a single tester job running continuously. Each run of
32a tester covers the set of commits from the end commit of the previous
33invocation to the latest _built_ commit. Each tester has one or more subdevices
34(shards). The tester delegates a subset of tests to each shard and aggregates
35high-level results (pass/fail, runtimes).
36
37### Processors
38
39Processors analyze the raw data generated by each Tester and convert it into a form that can be utilized
40by the [Chrome Performance Dashboard](https://chromeperf.appspot.com/report).
41For some jobs, this work is executed by the tester instead.
42
sullivand37f9c52017-06-17 01:25:5043## Contact
44
45 * You can reach the Chromium performance sheriffs at [email protected].
46 * Bugs on waterfall issues should have Component:
47 [Speed>Benchmarks>Waterfall](https://bugs.chromium.org/p/chromium/issues/list?can=2&q=component%3ASpeed%3EBenchmarks%3EWaterfall+&colspec=ID+Pri+M+Stars+ReleaseBlock+Component+Status+Owner+Summary+OS+Modified&x=m&y=releaseblock&cells=ids).
Caleb Rouleau0b366c22019-08-21 17:52:3348 * For domain knowledge for a specific benchmark, consider reaching out to
49 benchmark owners listed in
50 [benchmark.csv](https://docs.google.com/spreadsheets/d/1xaAo0_SU3iDfGdqDJZX_jRV0QtkufwHUKH3kQKF3YQs/edit#gid=0)
sullivand37f9c52017-06-17 01:25:5051
52## Links
53
Charlie Andrews01ce72e2018-05-18 20:19:4354 * [Perf Sheriff Rotation](perf_regression_sheriffing.md)
Andrew Shulaev6e2d6a72022-08-04 15:30:3055 * [Perfbot Health Sheriffing Rotation](http://goto.google.com/perf-bot-health-sheriffs)
John Palmer046f9872021-05-24 01:24:5656 * [How to SSH to Bots in Lab](https://chrome-internal.googlesource.com/infra/infra_internal/+/main/doc/ssh.md)
Caleb Rouleau0b366c22019-08-21 17:52:3357 (googlers only!)
sullivand37f9c52017-06-17 01:25:5058 * TODO: Page on how to repro failures locally
sullivand37f9c52017-06-17 01:25:5059 * TODO: Page on how to hack on buildbot/recipe code
Charlie Andrews01ce72e2018-05-18 20:19:4360 * TODO: Page on bringing up new hardware