Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(170)

Issue 18576004: [telemetry] Add @RunOnBuildMastersNamed support (Closed)

Created:
7 years, 5 months ago by nduca
Modified:
7 years, 5 months ago
Reviewers:
bulach, dtu, tonyg
CC:
chromium-reviews, chrome-speed-team+watch_google.com, telemetry+watch_chromium.org, Mike Stip (use stip instead)
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Visibility:
Public.

Description

[telemetry] Add @RunOnBuildMastersNamed support Allows tests to customize what build master they run on. This paves the way for in-situ specification of what tests to run where, rather than that customization having to be done in the buildbot factory files. BUG=256451 R=dtu@chromium.org

Patch Set 1 #

Total comments: 5

Patch Set 2 : redo #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+86 lines, -21 lines) Patch
M tools/perf/benchmarks/netsim_top25.py View 1 1 chunk +5 lines, -0 lines 1 comment Download
M tools/perf/benchmarks/smoothness.py View 1 1 chunk +4 lines, -0 lines 0 comments Download
M tools/perf/benchmarks/sunspider.py View 1 1 chunk +4 lines, -0 lines 0 comments Download
A tools/telemetry/telemetry/bot_properties.py View 1 1 chunk +15 lines, -0 lines 0 comments Download
M tools/telemetry/telemetry/test.py View 1 1 chunk +3 lines, -2 lines 0 comments Download
M tools/telemetry/telemetry/test_runner.py View 1 3 chunks +55 lines, -19 lines 1 comment Download

Messages

Total messages: 10 (0 generated)
nduca
7 years, 5 months ago (2013-07-03 00:58:17 UTC) #1
dtu
https://codereview.chromium.org/18576004/diff/1/tools/telemetry/telemetry/test.py File tools/telemetry/telemetry/test.py (right): https://codereview.chromium.org/18576004/diff/1/tools/telemetry/telemetry/test.py#newcode9 tools/telemetry/telemetry/test.py:9: __all__ = ["Test", "RunOnMastersNamed"] single quotes https://codereview.chromium.org/18576004/diff/1/tools/telemetry/telemetry/test_runner.py File tools/telemetry/telemetry/test_runner.py ...
7 years, 5 months ago (2013-07-03 01:25:43 UTC) #2
tonyg
https://codereview.chromium.org/18576004/diff/1/tools/perf/benchmarks/netsim_top25.py File tools/perf/benchmarks/netsim_top25.py (right): https://codereview.chromium.org/18576004/diff/1/tools/perf/benchmarks/netsim_top25.py#newcode9 tools/perf/benchmarks/netsim_top25.py:9: @test.RunOnBuildMastersNamed('chromium.perf') Does this need to be platform specific? For ...
7 years, 5 months ago (2013-07-03 02:15:08 UTC) #3
nduca
> Does this need to be platform specific? For instance, we run top_mobile_sites on > ...
7 years, 5 months ago (2013-07-03 05:18:58 UTC) #4
tonyg
On 2013/07/03 05:18:58, nduca wrote: > > Does this need to be platform specific? For ...
7 years, 5 months ago (2013-07-03 15:24:24 UTC) #5
tonyg
On 2013/07/03 15:24:24, tonyg wrote: > On 2013/07/03 05:18:58, nduca wrote: > > > Does ...
7 years, 5 months ago (2013-07-03 16:20:15 UTC) #6
dtu
On 2013/07/03 16:20:15, tonyg wrote: > On 2013/07/03 15:24:24, tonyg wrote: > > On 2013/07/03 ...
7 years, 5 months ago (2013-07-03 20:21:47 UTC) #7
tonyg
> How is the sharding currently done? We manually specific the set of tests that ...
7 years, 5 months ago (2013-07-03 20:49:18 UTC) #8
nduca
On 2013/07/03 20:49:18, tonyg wrote: > > How is the sharding currently done? Okay, after ...
7 years, 5 months ago (2013-07-08 22:26:37 UTC) #9
bulach
7 years, 5 months ago (2013-07-09 10:07:31 UTC) #10
just some thoughts given the recent scars:
(please note that this entirely independent to the android sharding discussion:
that happens on yet-another-level, and as long as this produces a dict mapping
{"name": "command"}, the android side will be happy...)

the general point here is that maintaining the config of "bot": [tests] (or
"test": [bots]) is unavoidable.. if we could keep that as separate config file
and self-contained to test-runner, it'd probably be simpler..

https://codereview.chromium.org/18576004/diff/14001/tools/perf/benchmarks/net...
File tools/perf/benchmarks/netsim_top25.py (right):

https://codereview.chromium.org/18576004/diff/14001/tools/perf/benchmarks/net...
tools/perf/benchmarks/netsim_top25.py:23: return bot_properties.master_name in
['default', 'chromium.perf']
IMHO, sprinkling this "CanRunOnBot" makes it difficult to do the "slave-level
sharding": it's going to be hard to check that benchmarks A, B and C are running
in slave X, but D and E are running in slave Y..

I'd prefer to see this as pure data, like a json config saying something like:

{
  "BENCHMARK_A": {"slaves": [MAC_SLAVE_1, LINUX_SLAVE_1]},
  "BENCHMARK_B": {"slaves": [MAC_SLAVE_2, LINUX_SLAVE_2]},
  "BENCHMARK_C": {"master": FOO_MASTER},
}

I don't have strong feelings whether the keys should be BENCHMARK or SLAVE,
whatever makes it more compact...

but my point is that the benchmarks themselves should not know about bot: that's
configuration data for the test_runner itself to deal with.. wdyt?

https://codereview.chromium.org/18576004/diff/14001/tools/telemetry/telemetry...
File tools/telemetry/telemetry/test_runner.py (right):

https://codereview.chromium.org/18576004/diff/14001/tools/telemetry/telemetry...
tools/telemetry/telemetry/test_runner.py:94: test_list = []
so this would be the only place to do something like:

if options.bot_properties:
  # Running on a bot, return the filtered list of tests.
  return self.GetFilteredTests(self.ReadBotConfig())
# Return all available tests. 
...

the common use-cases I'm thinking is:
- add a new test to the bot.
- load-balance existing tests.

if we have a centralized data config, it'll be much easier to check to which bot
the test should be added, or which ones need to be moved around.. if the
decision is sprinkled all over the place, it'd be potentially harder..

Powered by Google App Engine
This is Rietveld 408576698