0

Update GPU testing docs on machine allocation.

The new machine provider APIs require new steps.

Bug: 822310
Change-Id: I4677328ceaee9532c3557fed1db1bff163ebdbf3
Reviewed-on: https://chromium-review.googlesource.com/c/1395947
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#621139}
This commit is contained in:
Jamie Madill
2019-01-09 14:41:21 +00:00
committed by Commit Bot
parent 83c8cea520
commit f71bf71130

@ -240,6 +240,41 @@ This is described in [Adding new tests to the GPU bots].
[Adding new tests to the GPU bots]: https://www.chromium.org/developers/testing/gpu-testing/#TOC-Adding-New-Tests-to-the-GPU-Bots
### How to set up new virtual machine instances
The tests use virtual machines to build binaries and to trigger tests on
physical hardware. VMs don't run any tests themselves. Nevertheless the OS
of the VM must match the OS of the physical hardware. Android uses Linux VMs
for the hosts.
1. If you need a Mac VM:
1. File a Chrome Infrastructure Labs ticket requesting 2 virtual machines
for the testers. See this [example ticket](http://crbug.com/838975).
1. If you need a non-Mac VM, VMs are allocated using the Machine Provider APIs:
1. Create a CL in the [`infradata/config`][infradata/config] (Google
internal) workspace which does the following. Git configure your
user.email to @google.com if necessary. See
[example CL](https://chrome-internal-review.googlesource.com/718221)
for relevant Linux sections and
[example CL](https://chrome-internal-review.googlesource.com/715834)
for Windows.
1. Adds a new "bot_group" block in the Chromium GPU FYI section of
[`configs/chromium-swarm/bots.cfg`][bots.cfg]. If setting up a Release/
Debug bot pair, you would add two separate bot_group blocks. If
setting up a new optional tryserver, for example, you would add one
new bot_group block. Copy the closest configuration you can find
-- for example, Windows, Android, etc.
1. In [`configs/gce-backend/managers.cfg`][managers.cfg], choose a zone
in which to allocate the VMs. Make sure that you choose one with the
correct configuration (either gce-trusty or win10) and find a zone
which hasn't yet reached its maximum allocation. Increase the
maximum_size by the number of VMs being allocated.
1. Get this reviewed and landed. This step associates the VM with the
bot's name on the waterfall.
### How to add a new tester bot to the chromium.gpu.fyi waterfall
When deploying a new GPU configuration, it should be added to the
@ -274,23 +309,8 @@ Builder].
user.email to @google.com if necessary. Here is an [example
CL](https://chrome-internal-review.googlesource.com/524420).
1. File a Chrome Infrastructure Labs ticket requesting 2 virtual machines for
the testers. These need to match the OS of the physical machines and
builders. For example, if you're adding a "Windows 7 CoolNewGPUType" tester,
you'll need 2 Windows VMs. See this [example
ticket](http://crbug.com/838975).
1. Once the VMs are ready, create a CL in the
[`infradata/config`][infradata/config] (Google internal) workspace which
does the following. Git configure your user.email to @google.com if
necessary. Here's an [example
CL](https://chrome-internal-review.googlesource.com/619497).
1. Adds two new "bot_group" blocks in the Chromium GPU FYI section of
[`configs/chromium-swarm/bots.cfg`][bots.cfg], one for the Release bot
and one for the Debug bot. Copy the closest configuration you can find
-- for example, Windows, Android, etc.
1. Get this reviewed and landed. This step associates the VM with the bot's
name on the waterfall.
1. Allocate new virtual machines for the bots as described in
[How to set up new virtual machine instances].
1. Create a CL in the Chromium workspace which does the following. Here's an
[example CL](https://chromium-review.googlesource.com/1041164).
@ -421,25 +441,10 @@ particular GPU type. Let's consider that we are adding a manually-triggered
trybot for the Win7 NVIDIA GPUs in Release mode. We will call the new bot
`gpu_manual_try_win7_nvidia_rel`.
1. File a Chrome Infrastructure Labs ticket requesting ~3 virtual
machines. These will do builds and trigger jobs on the physical hardware,
and need to match the OS of the physical machines. See this [example
ticket](http://crbug.com/839216).
1. Once the VMs are ready, create a CL in the
[`infradata/config`][infradata/config] (Google internal) workspace which
does the following. Git configure your user.email to @google.com if
necessary. Here's an [example
CL](https://chrome-internal-review.googlesource.com/620773).
1. Adds a new "bot_group" block in the "manually-triggered GPU trybots"
section of [`configs/chromium-swarm/bots.cfg`][bots.cfg]. Look in the
optional GPU tryserver section for the closest configuration you can
find to copy from -- for example, Windows, Android,
etc. (win_optional_gpu_tests_rel, android_optional_gpu_tests_rel). The
"dimensions" tag contains the name of the trybot,
e.g. "builder:gpu_manual_try_win7_nvidia_rel".
1. Get this reviewed and landed. This step makes these machines the ones
which perform the builds for this new trybot.
1. Allocate new virtual machines for the bots as described in
[How to set up new virtual machine instances]. The "dimensions" tag in the
new bot_group block contains the name of the trybot, e.g.:
"builder:gpu_manual_try_win7_nvidia_rel".
1. Create a CL in the Chromium workspace which does the following. Here's an
[example CL](https://chromium-review.googlesource.com/1044767).
@ -532,7 +537,7 @@ an entire new optional try bot.
[waterfalls.pyl]. (Note, this is a bad example: the
"optional" bots have special semantics in this script. You'd probably
want to define some new category of bot if you didn't intend to add
this to `win_optional_gpu_tests_rel`.)
this to `win_optional_gpu_tests_rel`.)
1. Re-run the script to regenerate the JSON files.
1. Land the above CL.
1. Create a CL in the tools/build workspace: