Bug 1741745 - [taskgraph] Create a '1proc' variant, r=jmaher

This replaces the 'e10s' key with a standard variant in task configuration.

Depends on D133222

Differential Revision: https://phabricator.services.mozilla.com/D133224
This commit is contained in:
Andrew Halberstadt 2021-12-13 16:38:01 +00:00
parent 5a6cdfe644
commit 73391222d7
11 changed files with 53 additions and 85 deletions

View File

@ -33,7 +33,6 @@ job-defaults:
index: mobile.v2.reference-browser.raptor.latest.armeabi-v7a
name: target.armeabi-v7a.apk
default: geckoview_example.apk
e10s: true
virtualization: hardware
raptor:
activity:

View File

@ -3,8 +3,12 @@
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
---
job-defaults:
e10s: false
test-manifest-loader: null # don't load tests in the taskgraph
e10s:
by-test-platform:
android.*: true
default: false
variants: ["1proc"]
virtualization: virtual
mozharness:
script:

View File

@ -12,7 +12,6 @@ geckoview-junit:
variants: ["geckoview-e10s-single", "geckoview-fission"]
treeherder-symbol: gv-junit
loopback-video: true
e10s: true
target: geckoview-androidTest.apk
max-run-time: 3600
run-on-projects:

View File

@ -108,7 +108,6 @@ mochitest-plain:
by-test-platform:
linux.*64-tsan-qr/opt: xlarge # runs out of memory on default/m3.large
default: default
e10s: true
max-run-time: 5400
allow-software-gl-layers: false
mozharness:
@ -131,21 +130,21 @@ mochitest-a11y:
loopback-video: true
e10s: false
variants:
- fission
- socketprocess_networking
- wayland
- webrender-sw
- 1proc
- socketprocess_networking+1proc
- wayland+1proc
- webrender-sw+1proc
run-on-projects:
by-variant:
socketprocess_networking:
socketprocess_networking+1proc:
by-test-platform:
linux.*64-qr/debug: built-projects
default: []
wayland:
wayland+1proc:
by-test-platform:
linux.*64-qr/debug: built-projects
default: []
webrender-sw:
webrender-sw+1proc:
by-test-platform:
android-em-7.0-x86_64-qr/debug: built-projects
linux.*64-qr/debug: built-projects
@ -255,7 +254,6 @@ mochitest-browser-chrome-failures:
tier: 3
chunks: 2
max-run-time: 2700
e10s: true
variants:
- fission
- socketprocess_networking
@ -340,22 +338,23 @@ mochitest-chrome:
treeherder-symbol: M(c)
schedules-component: mochitest-chrome
loopback-video: true
e10s: false
variants:
- fission
- socketprocess_networking
- wayland
- webrender-sw
- 1proc
- socketprocess_networking+1proc
- wayland+1proc
- webrender-sw+1proc
run-on-projects:
by-variant:
socketprocess_networking:
socketprocess_networking+1proc:
by-test-platform:
linux.*64-qr/debug: built-projects
default: []
wayland:
wayland+1proc:
by-test-platform:
linux.*64-qr/debug: built-projects
default: []
webrender-sw:
webrender-sw+1proc:
by-test-platform:
android-em-7.0-x86_64-qr/debug: built-projects
linux.*64-qr/debug: built-projects
@ -373,7 +372,6 @@ mochitest-chrome:
(linux.*64|windows.*|macosx1015-64)/debug: 3
default: 2
max-run-time: 3600
e10s: false
mozharness:
mochitest-flavor: chrome
chunked: true
@ -497,7 +495,6 @@ mochitest-plain-gpu:
android-em-7.0-x86_64-qr/debug-isolated-process: []
default: built-projects
virtualization: virtual-with-gpu
e10s: true
tier:
by-variant:
fission: 2
@ -526,7 +523,6 @@ mochitest-chrome-gpu:
treeherder-symbol: M(gpu-c)
loopback-video: true
virtualization: virtual-with-gpu
e10s: true
variants:
- fission
- socketprocess_networking
@ -717,7 +713,6 @@ mochitest-media-failures:
macosx1100.*: 2
macosx1015.*: 1
max-run-time: 2700
e10s: true
mozharness:
mochitest-flavor: plain
chunked: true
@ -745,7 +740,6 @@ mochitest-plain-headless:
by-test-platform:
linux.*/debug: 16
default: 5
e10s: true
max-run-time: 5400
allow-software-gl-layers: false
tier: 2
@ -798,7 +792,7 @@ mochitest-valgrind:
# We could re-enable e10s later.
# There's no intrinsic reason not to use it.
e10s: false
variants: []
variants: ["1proc"]
allow-software-gl-layers: false
mozharness:
mochitest-flavor: plain
@ -809,7 +803,6 @@ mochitest-webgl1-core:
treeherder-symbol: M(gl1c)
schedules-component: mochitest-plain
virtualization: virtual-with-gpu
e10s: true
test-manifest-loader: null # don't load tests in the taskgraph
loopback-video: true
max-run-time:
@ -871,7 +864,6 @@ mochitest-webgl1-ext:
by-test-platform:
android.*: 2
default: 1
e10s: true
test-manifest-loader: null # don't load tests in the taskgraph
loopback-video: true
max-run-time: 2700
@ -932,7 +924,6 @@ mochitest-webgl2-core:
by-test-platform:
android.*: 2
default: 1
e10s: true
test-manifest-loader: null # don't load tests in the taskgraph
loopback-video: true
max-run-time: 1800
@ -1021,7 +1012,6 @@ mochitest-webgl2-ext:
default: []
default: built-projects
chunks: 4
e10s: true
test-manifest-loader: null # don't load tests in the taskgraph
loopback-video: true
max-run-time: 2700
@ -1044,7 +1034,6 @@ mochitest-webgl2-deqp:
- webrender-sw
run-on-projects: [] # Don't run this for now.
chunks: 4
e10s: true
loopback-video: true
max-run-time: 1800
# Bug 1296733: llvmpipe with mesa 9.2.1 lacks thread safety
@ -1060,7 +1049,6 @@ mochitest-webgpu:
treeherder-symbol: M(webgpu)
schedules-component: mochitest-plain
virtualization: virtual-with-gpu
e10s: true
loopback-video: true
variants:
- fission

View File

@ -47,7 +47,6 @@ crashtest:
android-em-7.*: 1
linux.*64-tsan-qr/opt: 32
default: 1
e10s: true
variants:
- fission
- wayland
@ -102,7 +101,6 @@ crashtest-qr:
schedules-component: crashtest
treeherder-symbol: R(C)
chunks: 1
e10s: true
variants: ['fission']
run-on-projects:
by-variant:
@ -166,7 +164,6 @@ reftest:
windows10-64-2004-asan-qr/opt: 3
windows10-64-2004-ccov-qr/opt: 9
default: 8
e10s: true
variants:
- fission
- wayland
@ -233,7 +230,6 @@ reftest-qr:
description: "Reftest webrender run"
treeherder-symbol: R(R)
chunks: 2
e10s: true
variants:
- webrender-sw
run-on-projects:

View File

@ -1,4 +1,18 @@
---
1proc:
description: "{description} with e10s disabled"
when:
$eval: '!("android" in task["test-platform"])'
suffix: "1proc"
replace:
e10s: false
merge:
attributes:
e10s: false
mozharness:
extra-options:
- "--disable-e10s"
a11y-checks:
description: "{description} with accessibility checks enabled"
contact: jteh
@ -56,8 +70,6 @@ fission:
when: &fission_filter
$eval: task.e10s in [true, "both"]
suffix: "fis"
replace:
e10s: true
merge:
mozharness:
extra-options:

View File

@ -69,7 +69,6 @@ web-platform-tests:
macosx.*/debug: 10800
android-em.*/.*: 10800
default: 7200
e10s: true
variants:
- fission
- webrender-sw
@ -113,7 +112,6 @@ web-platform-tests-backlog:
android.*/opt: 7200
default: 3600
variants: []
e10s: true
run-on-projects: ['mozilla-central']
test-manifest-loader: null # don't load tests in the taskgraph
tier: 2
@ -143,7 +141,6 @@ web-platform-tests-reftest:
windows.*-(32|64)(-qr)?/debug: 5
android.*: 6
default: 4
e10s: true
variants:
- fission
- webrender-sw
@ -192,7 +189,6 @@ web-platform-tests-reftest-backlog:
virtualization: virtual
chunks: 1
variants: []
e10s: true
run-on-projects: ['mozilla-central']
test-manifest-loader: null # don't load tests in the taskgraph
tier: 2

View File

@ -301,9 +301,6 @@ class DisperseGroups(OptimizationStrategy):
if "unittest_variant" in task.attributes:
key += "-" + task.attributes["unittest_variant"]
if not task.attributes["e10s"]:
key += "-1proc"
important_manifests = set(test_manifests) & set(importance)
for manifest in important_manifests:
target_count = self.target_counts[importance[manifest]]

View File

@ -135,8 +135,7 @@ def test_split_variants(monkeypatch, run_transform, make_test_task):
(
pytest.param(
{
"attributes": {"unittest_variant": "webrender-sw+wayland"},
"e10s": False,
"attributes": {"unittest_variant": "webrender-sw+wayland+1proc"},
"test-platform": "linux1804-64-clang-trunk-qr/opt",
},
{
@ -162,7 +161,6 @@ def test_split_variants(monkeypatch, run_transform, make_test_task):
pytest.param(
{
"attributes": {},
"e10s": True,
"test-platform": "android-hw-s7-8-0-android-aarch64-shippable-qr/opt",
},
{
@ -185,7 +183,6 @@ def test_split_variants(monkeypatch, run_transform, make_test_task):
pytest.param(
{
"attributes": {},
"e10s": True,
"test-platform": "windows10-64-2004-ref-hw-2017-ccov/debug",
},
{

View File

@ -445,9 +445,6 @@ def make_job_description(config, tasks):
if task["e10s"]:
label += "-e10s"
else:
label += "-1proc"
try_name += "-1proc"
if task["chunks"] > 1:
label += "-{}".format(task["this-chunk"])

View File

@ -2,7 +2,6 @@
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import copy
import hashlib
import json
import re
@ -23,7 +22,6 @@ from gecko_taskgraph.util.taskcluster import (
get_artifact_path,
get_index_url,
)
from gecko_taskgraph.util.treeherder import split_symbol, join_symbol
from gecko_taskgraph.util.platforms import platform_family
from gecko_taskgraph.util.schema import (
resolve_keyed_by,
@ -264,8 +262,8 @@ def handle_keyed_by(config, tasks):
"docker-image",
"max-run-time",
"chunks",
"e10s",
"suite",
"e10s",
"run-on-projects",
"os-groups",
"run-as-administrator",
@ -485,16 +483,6 @@ def get_mobile_project(task):
return None
@transforms.add
def adjust_mobile_e10s(config, tasks):
for task in tasks:
project = get_mobile_project(task)
if project == "geckoview":
# Geckoview is always-e10s
task["e10s"] = True
yield task
@transforms.add
def disable_wpt_timeouts_on_autoland(config, tasks):
"""do not run web-platform-tests that are expected TIMEOUT on autoland"""
@ -760,25 +748,24 @@ def ensure_spi_disabled_on_all_but_spi(config, tasks):
@transforms.add
def split_e10s(config, tasks):
def set_e10s_attributes(config, tasks):
"""
This transform is only to keep backwards compatibility with the old way of
splitting e10s and should be removed once we're confident consumers aren't
relying on it for anything important.
"""
for task in tasks:
e10s = task["e10s"]
if e10s:
task_copy = copy.deepcopy(task)
task_copy["e10s"] = True
task_copy["attributes"]["e10s"] = True
yield task_copy
if not e10s or e10s == "both":
task["e10s"] = False
task["attributes"]["e10s"] = False
group, symbol = split_symbol(task["treeherder-symbol"])
if group != "?":
group += "-1proc"
task["treeherder-symbol"] = join_symbol(group, symbol)
task["mozharness"]["extra-options"].append("--disable-e10s")
variant = task["attributes"].get("unittest_variant")
if variant and "1proc" in variant:
yield task
continue
if not task["e10s"]:
continue
task["e10s"] = True
task["attributes"]["e10s"] = True
yield task
test_setting_description_schema = Schema(
@ -936,10 +923,6 @@ def set_test_setting(config, tasks):
setting["build"][attr] = True
# set runtime configuration
if not task["e10s"]:
setting["runtime"]["1proc"] = True
unittest_variant = task["attributes"].get("unittest_variant")
if unittest_variant:
for variant in unittest_variant.split("+"):