# chromium.perf Waterfall
## Overview
The [chrome.perf waterfall](https://ci.chromium.org/p/chrome/g/chrome.perf/console)
continuously builds and runs our performance tests on real Android, Windows,
Mac, and Linux hardware; see [list of platforms](perf_lab_platforms.md).
Results are reported to the
[Performance Dashboard](https://chromeperf.appspot.com/) for analysis. The
[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
[Chrome's Core Principles](https://www.chromium.org/developers/core-principles)
of speed:
> "If you make a change that regresses measured performance, you will be
> required to fix it or revert".
## How It Works
The perf waterfall is split into three stages - builders, testers, and processors.
### Builders
For each commit to the Chromium repo, a Builder is invoked. The builder builds
Google Chrome, acquires test assets, and bundles everything up to be passed
along to Testers. We execute a builder for each platform we support. To ensure
we can keep up with the rapid flow of commits, we have a set of builders per
platform, each building a different commit.
### Testers
For each platform, we have a single tester job running continuously. Each run of
a tester covers the set of commits from the end commit of the previous
invocation to the latest _built_ commit. Each tester has one or more subdevices
(shards). The tester delegates a subset of tests to each shard and aggregates
high-level results (pass/fail, runtimes).
### Processors
Processors analyze the raw data generated by each Tester and convert it into a form that can be utilized
by the [Chrome Performance Dashboard](https://chromeperf.appspot.com/report).
For some jobs, this work is executed by the tester instead.
## Contact
* You can reach the Chromium performance sheriffs at [email protected].
* Bugs on waterfall issues should have Component:
[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).
* For domain knowledge for a specific benchmark, consider reaching out to
benchmark owners listed in
[benchmark.csv](https://docs.google.com/spreadsheets/d/1xaAo0_SU3iDfGdqDJZX_jRV0QtkufwHUKH3kQKF3YQs/edit#gid=0)
## Links
* [Perf Sheriff Rotation](perf_regression_sheriffing.md)
* [Perfbot Health Sheriffing Rotation](http://goto.google.com/perf-bot-health-sheriffs)
* [How to SSH to Bots in Lab](https://chrome-internal.googlesource.com/infra/infra_internal/+/main/doc/ssh.md)
(googlers only!)
* TODO: Page on how to repro failures locally
* TODO: Page on how to hack on buildbot/recipe code
* TODO: Page on bringing up new hardware