Commit d7120730 authored by Garrett Beaty's avatar Garrett Beaty Committed by Chromium LUCI CQ

Revert "Add a presubmit to ensure our goma usage isn't modified during freeze."

This reverts commit 70ca76dc.

Reason for revert: goma freeze is over

Original change's description:
> Add a presubmit to ensure our goma usage isn't modified during freeze.
>
> A generator is added that outputs some numbers representing our goma
> usage. The values have no concrete meaning, but approximate the load
> applied to goma for the project and the relative load for different
> builders (with some numbers being very rough approximations).
>
> Changes that modify the generated file require a footer in the CL
> description in order to submit.
>
> Bug: 1145230
> Change-Id: I6d58deee27e9bc6d220f87311a6266c220f03e51
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2556210
> Commit-Queue: Garrett Beaty <gbeaty@chromium.org>
> Reviewed-by: Erik Staab <estaab@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#831871}

TBR=estaab@chromium.org,gbeaty@chromium.org,gatong@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 1145230
Change-Id: Ic21c76e1277282750a2a740d91e57d09f2ad192f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2610927Reviewed-by: default avatarGarrett Beaty <gbeaty@chromium.org>
Commit-Queue: Garrett Beaty <gbeaty@chromium.org>
Cr-Commit-Position: refs/heads/master@{#840178}
parent 5ab77021
...@@ -8,9 +8,6 @@ See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts ...@@ -8,9 +8,6 @@ See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
for more details on the presubmit API built into depot_tools. for more details on the presubmit API built into depot_tools.
""" """
import ast
import traceback
PRESUBMIT_VERSION = '2.0.0' PRESUBMIT_VERSION = '2.0.0'
...@@ -142,35 +139,3 @@ def CheckOutagesConfigOnCommit(input_api, output_api): ...@@ -142,35 +139,3 @@ def CheckOutagesConfigOnCommit(input_api, output_api):
] ]
return [] return []
_IGNORE_GOMA_FREEZE_FOOTER = 'Ignore-Goma-Freeze'
def CheckGomaUsageDuringFreeze(input_api, output_api):
for f in input_api.AffectedFiles():
if f.LocalPath() != 'infra/config/generated/goma-usage.pyl':
continue
if f.Action() == 'D':
break
def get_goma_usage(lines):
return ast.literal_eval('\n'.join(lines))
# Make sure that the file can be parsed
try:
new_usage = get_goma_usage(f.NewContents())
except Exception as e:
return [
output_api.PresubmitError('Failed to parse goma-usage.pyl',
long_text=traceback.format_exc()),
]
if f.Action() != 'M':
break
old_usage = get_goma_usage(f.OldContents())
if new_usage['*weighted total*'] > old_usage['*weighted total*']:
footers = input_api.change.GitFootersFromDescription()
if _IGNORE_GOMA_FREEZE_FOOTER not in footers:
return [output_api.PresubmitError('\n'.join([
('The goma team has a freeze on goma usage until January 5, 2021, '
'this change increases the usage of goma.'),
('If this change needs to be made before the freeze ends, '
'contact the troopers about how to proceed'),
]))]
return []
# This is a non-LUCI generated file
# This file provides an abstract notion of how heavily goma is being used
# This is consumed by presubmit checks that need to validate the config
{
# 61590 (scheduler total) + 344575 (weighted CQ total)
# (weighted CQ total) = 6891.5 (CQ total) * 50 (CQ weight)
'*weighted total*': 406165,
'scheduler': {
'*total*': 61590,
'triggered': {
'*total*': 59680,
('https://chromium.googlesource.com/chromium/src', 'regexp:refs/heads/master'): {
'*total*': 58800,
# 4 concurrent builds x 80 jobs
'ci/ASAN Debug': 320,
# 5 concurrent builds x 80 jobs
'ci/ASAN Release': 400,
# 4 concurrent builds x 80 jobs
'ci/ASAN Release Media': 320,
# 4 concurrent builds x 80 jobs
'ci/ASan Debug (32-bit x86 with V8-ARM)': 320,
# 4 concurrent builds x 80 jobs
'ci/ASan Release (32-bit x86 with V8-ARM)': 320,
# 4 concurrent builds x 80 jobs
'ci/ASan Release Media (32-bit x86 with V8-ARM)': 320,
# 4 concurrent builds x 80 jobs
'ci/Afl Upload Linux ASan': 320,
'ci/Android ASAN (dbg)': 150,
'ci/Android CFI': 500,
'ci/Android FYI 32 Vk Release (Pixel 2)': 80,
'ci/Android FYI 32 dEQP Vk Release (Pixel 2)': 80,
'ci/Android FYI 64 Vk Release (Pixel 2)': 80,
'ci/Android FYI 64 dEQP Vk Release (Pixel 2)': 80,
'ci/Android FYI Release (NVIDIA Shield TV)': 80,
'ci/Android FYI Release (Nexus 5)': 80,
'ci/Android FYI Release (Nexus 5X)': 80,
'ci/Android FYI Release (Nexus 6)': 80,
'ci/Android FYI Release (Nexus 9)': 80,
'ci/Android FYI Release (Pixel 2)': 80,
'ci/Android FYI SkiaRenderer GL (Nexus 5X)': 80,
'ci/Android FYI SkiaRenderer Vulkan (Pixel 2)': 80,
'ci/Android FYI dEQP Release (Nexus 5X)': 80,
'ci/Android Release (Nexus 5X)': 80,
'ci/Android WebView P FYI (rel)': 80,
'ci/Android arm Builder (dbg)': 150,
'ci/Android arm64 Builder (dbg)': 500,
'ci/Android x64 Builder (dbg)': 150,
'ci/Android x86 Builder (dbg)': 150,
'ci/CFI Linux CF': 200,
'ci/CFI Linux ToT': 200,
'ci/Cast Android (dbg)': 150,
'ci/Cast Audio Linux': 500,
'ci/Cast Linux': 50,
'ci/ChromeOS FYI Release (amd64-generic)': 80,
'ci/ChromeOS FYI Release (kevin)': 80,
# 6 concurrent builds x 80 jobs
'ci/ChromiumOS ASAN Release': 480,
'ci/CrWinAsan': 200,
'ci/CrWinAsan(dll)': 200,
'ci/Dawn Linux x64 Builder': 80,
'ci/Dawn Linux x64 DEPS Builder': 80,
# jobs count assumes an 8-core machine
'ci/Dawn Mac x64 Builder': 80,
# jobs count assumes an 8-core machine
'ci/Dawn Mac x64 DEPS Builder': 80,
'ci/Dawn Win10 x64 ASAN Release': 80,
'ci/Dawn Win10 x64 Builder': 80,
'ci/Dawn Win10 x64 DEPS Builder': 80,
'ci/Dawn Win10 x86 Builder': 80,
'ci/Dawn Win10 x86 DEPS Builder': 80,
'ci/Deterministic Android': 150,
'ci/Deterministic Android (dbg)': 150,
'ci/Deterministic Fuchsia (dbg)': 80,
'ci/Deterministic Linux': 500,
'ci/Deterministic Linux (dbg)': 500,
'ci/Fuchsia ARM64': 500,
'ci/Fuchsia x64': 500,
'ci/GPU FYI Linux Builder': 80,
'ci/GPU FYI Linux Builder (dbg)': 80,
'ci/GPU FYI Linux Ozone Builder': 80,
'ci/GPU FYI Linux dEQP Builder': 80,
# jobs count assumes an 8-core machine
'ci/GPU FYI Mac Builder': 80,
# jobs count assumes an 8-core machine
'ci/GPU FYI Mac Builder (dbg)': 80,
# jobs count assumes an 8-core machine
'ci/GPU FYI Mac dEQP Builder': 80,
'ci/GPU FYI Perf Android 64 Builder': 80,
'ci/GPU FYI Win Builder': 80,
'ci/GPU FYI Win Builder (dbg)': 80,
'ci/GPU FYI Win dEQP Builder': 80,
'ci/GPU FYI Win x64 Builder': 80,
'ci/GPU FYI Win x64 Builder (dbg)': 80,
'ci/GPU FYI Win x64 DX12 Vulkan Builder': 80,
'ci/GPU FYI Win x64 DX12 Vulkan Builder (dbg)': 80,
'ci/GPU FYI Win x64 dEQP Builder': 80,
'ci/GPU FYI XR Win x64 Builder': 80,
'ci/GPU Linux Builder': 80,
'ci/GPU Linux Builder (dbg)': 80,
# jobs count assumes an 8-core machine
'ci/GPU Mac Builder': 80,
# jobs count assumes an 8-core machine
'ci/GPU Mac Builder (dbg)': 80,
'ci/GPU Win x64 Builder': 80,
'ci/GPU Win x64 Builder (dbg)': 80,
'ci/Leak Detection Linux': 500,
# 3 concurrent builds x 80 jobs
'ci/Libfuzzer Upload Chrome OS ASan': 240,
# 5 concurrent builds x 80 jobs
'ci/Libfuzzer Upload Linux ASan': 400,
# 5 concurrent builds x 80 jobs
'ci/Libfuzzer Upload Linux ASan Debug': 400,
# 5 concurrent builds x 80 jobs
'ci/Libfuzzer Upload Linux MSan': 400,
# 5 concurrent builds x 80 jobs
'ci/Libfuzzer Upload Linux UBSan': 400,
'ci/Libfuzzer Upload Linux V8-ARM64 ASan': 80,
'ci/Libfuzzer Upload Linux V8-ARM64 ASan Debug': 80,
# 3 concurrent builds x 80 jobs
'ci/Libfuzzer Upload Linux32 ASan': 240,
# 3 concurrent builds x 80 jobs
'ci/Libfuzzer Upload Linux32 ASan Debug': 240,
'ci/Libfuzzer Upload Linux32 V8-ARM ASan': 80,
'ci/Libfuzzer Upload Linux32 V8-ARM ASan Debug': 80,
'ci/Libfuzzer Upload Mac ASan': 200,
# 3 concurrent builds x 80 jobs
'ci/Libfuzzer Upload Windows ASan': 240,
'ci/Linux ASan LSan Builder': 500,
'ci/Linux Builder': 500,
'ci/Linux Builder (dbg)': 500,
'ci/Linux Builder (dbg)(32)': 500,
'ci/Linux CFI': 500,
'ci/Linux Chromium OS ASan LSan Builder': 500,
'ci/Linux ChromiumOS Full': 80,
'ci/Linux ChromiumOS MSan Builder': 500,
'ci/Linux FYI GPU TSAN Release': 80,
'ci/Linux FYI SkiaRenderer Dawn Release (Intel HD 630)': 80,
'ci/Linux MSan Builder': 500,
'ci/Linux TSan Builder': 500,
'ci/Linux Viz': 80,
'ci/Linux remote_run Builder': 80,
# 4 concurrent builds x 80 jobs
'ci/MSAN Release (chained origins)': 320,
# 4 concurrent builds x 80 jobs
'ci/MSAN Release (no origins)': 320,
# 2 concurrent builds x 40 jobs
'ci/Mac ASAN Release': 80,
# 2 concurrent builds x 40 jobs
'ci/Mac ASAN Release Media': 80,
# 2 concurrent builds x 80 jobs
# jobs count assumes an 8-core machine
'ci/Mac ASan 64 Builder': 160,
# jobs count assumes an 8-core machine
'ci/Mac Builder': 80,
# jobs count assumes an 8-core machine
'ci/Mac Builder (dbg)': 80,
# jobs count assumes an 8-core machine
'ci/Mac Builder Next': 80,
# jobs count assumes an 8-core machine
'ci/Mac FYI GPU ASAN Release': 80,
# jobs count assumes an 8-core machine
'ci/Mac FYI arm64 Release (Apple DTK)': 80,
# jobs count assumes an 8-core machine
'ci/Mac deterministic': 80,
# jobs count assumes an 8-core machine
'ci/Mac deterministic (dbg)': 80,
'ci/Mojo Android': 80,
'ci/Mojo ChromiumOS': 80,
'ci/Mojo Linux': 80,
'ci/Mojo Windows': 80,
'ci/Network Service Linux': 500,
'ci/Site Isolation Android': 80,
# 4 concurrent builds x 80 jobs
'ci/TSAN Debug': 320,
# 3 concurrent builds x 80 jobs
'ci/TSAN Release': 240,
'ci/ToTAndroid': 200,
'ci/ToTAndroid (dbg)': 200,
'ci/ToTAndroid x64': 200,
'ci/ToTAndroid64': 200,
'ci/ToTAndroidASan': 200,
'ci/ToTAndroidCFI': 200,
'ci/ToTAndroidOfficial': 200,
'ci/ToTLinux': 200,
'ci/ToTLinux (dbg)': 200,
'ci/ToTLinuxASan': 200,
'ci/ToTLinuxASanLibfuzzer': 200,
'ci/ToTLinuxCoverage': 200,
'ci/ToTLinuxMSan': 200,
'ci/ToTLinuxTSan': 200,
'ci/ToTLinuxThinLTO': 200,
'ci/ToTLinuxUBSanVptr': 200,
'ci/ToTMac': 200,
'ci/ToTMac (dbg)': 200,
'ci/ToTMacASan': 200,
'ci/ToTMacCoverage': 200,
'ci/ToTWin(dbg)': 200,
'ci/ToTWin(dll)': 200,
'ci/ToTWin64(dbg)': 200,
'ci/ToTWin64(dll)': 200,
'ci/ToTWinASanLibfuzzer': 200,
'ci/ToTWinCFI': 200,
'ci/ToTWinCFI64': 200,
'ci/ToTWindowsCoverage': 200,
# jobs count assumes an 8-core machine
'ci/ToTiOS': 80,
# jobs count assumes an 8-core machine
'ci/ToTiOSDevice': 80,
# 4 concurrent builds x 80 jobs
'ci/UBSan Release': 320,
# 4 concurrent builds x 80 jobs
'ci/UBSan vptr Release': 320,
'ci/UBSanVptr Linux': 200,
'ci/VR Linux': 80,
'ci/WebKit Linux ASAN': 500,
'ci/WebKit Linux Leak': 500,
'ci/WebKit Linux MSAN': 500,
'ci/Win 10 Fast Ring': 80,
# 7 concurrent builds x 80 jobs
'ci/Win ASan Release': 560,
# 6 concurrent builds x 80 jobs
'ci/Win ASan Release Media': 480,
'ci/Win Builder': 200,
'ci/Win Builder (dbg)': 200,
'ci/Win x64 Builder': 200,
'ci/Win x64 Builder (dbg)': 200,
'ci/Win10 FYI x64 SkiaRenderer Dawn Release (NVIDIA)': 80,
'ci/Windows deterministic': 150,
'ci/android-10-arm64-rel': 150,
'ci/android-11-x86-fyi-rel': 80,
'ci/android-archive-dbg': 80,
'ci/android-archive-rel': 200,
'ci/android-arm64-proguard-rel': 500,
'ci/android-asan': 500,
'ci/android-bfcache-rel': 150,
'ci/android-binary-size-generator': 150,
'ci/android-code-coverage-native': 200,
'ci/android-cronet-arm-dbg': 150,
'ci/android-cronet-arm-rel': 150,
'ci/android-cronet-arm64-dbg': 150,
'ci/android-cronet-arm64-rel': 150,
'ci/android-cronet-asan-arm-rel': 150,
'ci/android-cronet-marshmallow-arm64-perf-rel': 150,
'ci/android-cronet-x86-dbg': 150,
'ci/android-cronet-x86-rel': 150,
'ci/android-incremental-dbg': 150,
'ci/android-lollipop-arm-rel': 150,
'ci/android-marshmallow-arm64-rel': 150,
'ci/android-marshmallow-x86-rel': 150,
'ci/android-marshmallow-x86-rel-non-cq': 150,
'ci/android-mojo-webview-rel': 80,
'ci/android-nougat-arm64-rel': 150,
'ci/android-official': 200,
'ci/android-paeverywhere-arm-fyi-dbg': 80,
'ci/android-paeverywhere-arm-fyi-rel': 80,
'ci/android-paeverywhere-arm64-fyi-dbg': 80,
'ci/android-paeverywhere-arm64-fyi-rel': 80,
'ci/android-pie-arm64-rel': 150,
'ci/android-pie-arm64-wpt-rel-non-cq': 80,
'ci/android-pie-x86-fyi-rel': 150,
'ci/android-pie-x86-rel': 150,
'ci/android-weblayer-x86-fyi-rel': 80,
'ci/chromeos-amd64-generic-asan-rel': 80,
'ci/chromeos-amd64-generic-cfi-thin-lto-rel': 80,
'ci/chromeos-amd64-generic-dbg': 80,
'ci/chromeos-amd64-generic-lacros-dbg': 80,
'ci/chromeos-amd64-generic-lacros-rel': 80,
'ci/chromeos-amd64-generic-rel': 80,
'ci/chromeos-arm-generic-dbg': 80,
'ci/chromeos-arm-generic-rel': 80,
'ci/chromeos-kevin-rel': 80,
'ci/fuchsia-arm64-cast': 500,
'ci/fuchsia-fyi-arm64-dbg': 80,
'ci/fuchsia-fyi-arm64-rel': 80,
'ci/fuchsia-fyi-arm64-size': 80,
'ci/fuchsia-fyi-x64-dbg': 80,
'ci/fuchsia-fyi-x64-rel': 80,
'ci/fuchsia-official': 200,
'ci/fuchsia-x64-cast': 500,
'ci/fuchsia-x64-dbg': 500,
# jobs count assumes an 8-core machine
'ci/ios-asan': 80,
# jobs count assumes an 8-core machine
'ci/ios-device': 80,
# jobs count assumes an 8-core machine
'ci/ios-simulator': 80,
# jobs count assumes an 8-core machine
'ci/ios-simulator-code-coverage': 80,
# jobs count assumes an 8-core machine
'ci/ios-simulator-cronet': 80,
# jobs count assumes an 8-core machine
'ci/ios-simulator-full-configs': 80,
# jobs count assumes an 8-core machine
'ci/ios-simulator-multi-window': 80,
# jobs count assumes an 8-core machine
'ci/ios-simulator-noncq': 80,
# jobs count assumes an 8-core machine
'ci/ios13-sdk-device': 80,
# jobs count assumes an 8-core machine
'ci/ios14-beta-simulator': 80,
# jobs count assumes an 8-core machine
'ci/ios14-sdk-simulator': 80,
'ci/linux-annotator-rel': 80,
'ci/linux-archive-dbg': 80,
'ci/linux-archive-rel': 200,
'ci/linux-ash-chromium-builder-fyi-rel': 80,
'ci/linux-bfcache-rel': 500,
'ci/linux-blink-animation-use-time-delta': 80,
'ci/linux-blink-heap-concurrent-marking-tsan-rel': 80,
'ci/linux-blink-heap-verification': 80,
'ci/linux-chromeos-dbg': 80,
'ci/linux-chromeos-rel': 80,
'ci/linux-chromium-tests-staging-builder': 80,
'ci/linux-fieldtrial-rel': 80,
'ci/linux-gcc-rel': 500,
'ci/linux-lacros-builder-fyi-rel': 80,
'ci/linux-lacros-builder-rel': 80,
'ci/linux-official': 200,
'ci/linux-ozone-rel': 500,
'ci/linux-paeverywhere-x64-fyi-dbg': 80,
'ci/linux-paeverywhere-x64-fyi-rel': 80,
'ci/linux-perfetto-rel': 80,
'ci/linux-swangle-chromium-x64': 80,
'ci/linux-swangle-tot-angle-x64': 80,
'ci/linux-swangle-tot-angle-x86': 80,
'ci/linux-swangle-tot-swiftshader-x64': 80,
'ci/linux-swangle-tot-swiftshader-x86': 80,
'ci/linux-swangle-x64': 80,
'ci/linux-swangle-x86': 80,
'ci/linux-trusty-rel': 500,
'ci/linux-upload-perfetto': 80,
'ci/linux-win_cross-rel': 200,
'ci/linux-wpt-fyi-rel': 80,
'ci/linux-wpt-identity-fyi-rel': 80,
'ci/linux-wpt-input-fyi-rel': 80,
'ci/mac-archive-dbg': 40,
'ci/mac-archive-rel': 80,
# jobs count assumes an 8-core machine
'ci/mac-arm64-rel': 80,
'ci/mac-code-coverage': 200,
'ci/mac-hermetic-upgrade-rel': 80,
'ci/mac-mojo-rel': 40,
# jobs count assumes an 8-core machine
'ci/mac-official': 80,
'ci/mac-paeverywhere-x64-fyi-dbg': 80,
'ci/mac-paeverywhere-x64-fyi-rel': 80,
# jobs count assumes an 8-core machine
'ci/mac-swangle-chromium-x64': 80,
# jobs count assumes an 8-core machine
'ci/mac-updater-builder-dbg': 80,
# jobs count assumes an 8-core machine
'ci/mac-updater-builder-rel': 80,
'ci/metadata-exporter': 500,
'ci/win-annotator-rel': 80,
'ci/win-archive-dbg': 200,
'ci/win-archive-rel': 200,
'ci/win-asan': 500,
'ci/win-official': 200,
'ci/win-paeverywhere-x64-fyi-dbg': 80,
'ci/win-paeverywhere-x64-fyi-rel': 80,
'ci/win-paeverywhere-x86-fyi-dbg': 80,
'ci/win-paeverywhere-x86-fyi-rel': 80,
'ci/win-pixel-builder-rel': 80,
'ci/win-swangle-chromium-x86': 80,
'ci/win-swangle-tot-angle-x64': 80,
'ci/win-swangle-tot-angle-x86': 80,
'ci/win-swangle-tot-swiftshader-x64': 80,
'ci/win-swangle-tot-swiftshader-x86': 80,
'ci/win-swangle-x64': 80,
'ci/win-swangle-x86': 80,
'ci/win-updater-builder-dbg': 80,
'ci/win-updater-builder-rel': 80,
'ci/win10-code-coverage': 200,
'ci/win32-archive-dbg': 200,
'ci/win32-archive-rel': 200,
'ci/win32-arm64-rel': 150,
'ci/win32-official': 200,
'ci/win32-updater-builder-dbg': 80,
'ci/win32-updater-builder-rel': 80,
'goma/Chromium Android ARM 32-bit Goma RBE Staging': 80,
'goma/Chromium Android ARM 32-bit Goma RBE ToT': 80,
'goma/Chromium Android ARM 32-bit Goma RBE ToT (ATS)': 80,
'goma/Chromium Linux Goma RBE Staging': 80,
'goma/Chromium Linux Goma RBE Staging (clobber)': 80,
'goma/Chromium Linux Goma RBE Staging (dbg)': 80,
'goma/Chromium Linux Goma RBE Staging (dbg) (clobber)': 80,
'goma/Chromium Linux Goma RBE ToT': 80,
'goma/Chromium Linux Goma RBE ToT (ATS)': 80,
'goma/Chromium Linux Goma Staging': 80,
'goma/Chromium Mac Goma RBE Staging': 80,
'goma/Chromium Mac Goma RBE Staging (clobber)': 80,
'goma/Chromium Mac Goma RBE Staging (dbg)': 80,
'goma/Chromium Mac Goma RBE ToT': 80,
'goma/Chromium Mac Goma Staging': 80,
'goma/Chromium Win Goma RBE Staging': 200,
'goma/Chromium Win Goma RBE Staging (clobber)': 200,
'goma/Chromium Win Goma RBE ToT': 200,
'goma/Chromium iOS Goma RBE ToT': 80,
'goma/CrWinGomaStaging': 80,
'goma/Linux Builder Goma Canary': 80,
'goma/Linux Builder Goma Latest Client': 80,
'goma/Linux Builder Goma RBE Canary': 80,
'goma/Linux Builder Goma RBE Latest Client': 80,
'goma/Mac Builder (dbg) Goma Canary': 40,
'goma/Mac Builder (dbg) Goma Canary (clobber)': 40,
'goma/Mac Builder (dbg) Goma Latest Client': 40,
'goma/Mac Builder (dbg) Goma Latest Client (clobber)': 40,
'goma/Mac Builder (dbg) Goma RBE Canary (clobber)': 80,
'goma/Mac Builder (dbg) Goma RBE Latest Client (clobber)': 80,
'goma/Mac Builder Goma Canary': 40,
'goma/Mac Builder Goma Latest Client': 40,
'goma/Win Builder (dbg) Goma Canary': 80,
'goma/Win Builder (dbg) Goma Latest Client': 80,
'goma/Win Builder (dbg) Goma RBE Latest Client': 80,
'goma/Win Builder Goma Canary': 80,
'goma/Win Builder Goma Latest Client': 80,
'goma/Win Builder Goma RBE Latest Client': 80,
'goma/Win7 Builder (dbg) Goma Canary': 80,
'goma/Win7 Builder (dbg) Goma Latest Client': 80,
'goma/Win7 Builder Goma Canary': 80,
'goma/Win7 Builder Goma Latest Client': 80,
'goma/android-archive-dbg-goma-canary': 80,
'goma/android-archive-dbg-goma-latest': 80,
'goma/android-archive-dbg-goma-rbe-ats-canary': 80,
'goma/android-archive-dbg-goma-rbe-ats-latest': 80,
'goma/android-archive-dbg-goma-rbe-canary': 80,
'goma/android-archive-dbg-goma-rbe-latest': 80,
'goma/chromeos-amd64-generic-rel-goma-canary': 80,
'goma/chromeos-amd64-generic-rel-goma-latest': 80,
'goma/chromeos-amd64-generic-rel-goma-rbe-canary': 80,
'goma/chromeos-amd64-generic-rel-goma-rbe-latest': 80,
'goma/chromeos-amd64-generic-rel-goma-rbe-staging': 80,
'goma/chromeos-amd64-generic-rel-goma-rbe-tot': 80,
# jobs count assumes an 8-core machine
'goma/ios-device-goma-canary-clobber': 80,
# jobs count assumes an 8-core machine
'goma/ios-device-goma-latest-clobber': 80,
# jobs count assumes an 8-core machine
'goma/ios-device-goma-rbe-canary-clobber': 80,
# jobs count assumes an 8-core machine
'goma/ios-device-goma-rbe-latest-clobber': 80,
'goma/linux-archive-rel-goma-canary': 80,
'goma/linux-archive-rel-goma-canary-localoutputcache': 80,
'goma/linux-archive-rel-goma-latest': 80,
'goma/linux-archive-rel-goma-latest-localoutputcache': 80,
'goma/linux-archive-rel-goma-rbe-ats-canary': 80,
'goma/linux-archive-rel-goma-rbe-ats-latest': 80,
'goma/linux-archive-rel-goma-rbe-canary': 80,
'goma/linux-archive-rel-goma-rbe-latest': 80,
'goma/mac-archive-rel-goma-canary': 40,
'goma/mac-archive-rel-goma-canary-localoutputcache': 40,
'goma/mac-archive-rel-goma-latest': 40,
'goma/mac-archive-rel-goma-latest-localoutputcache': 40,
'goma/mac-archive-rel-goma-rbe-canary': 80,
'goma/mac-archive-rel-goma-rbe-latest': 80,
'goma/win32-archive-rel-goma-canary-localoutputcache': 80,
'goma/win32-archive-rel-goma-latest-localoutputcache': 80,
# jobs count assumes an 8-core machine
'webrtc/WebRTC Chromium Android Builder': 80,
# jobs count assumes an 8-core machine
'webrtc/WebRTC Chromium Linux Builder': 80,
'webrtc/WebRTC Chromium Mac Builder': 80,
# jobs count assumes an 8-core machine
'webrtc/WebRTC Chromium Win Builder': 80,
},
('https://webrtc.googlesource.com/src/', 'regexp:refs/heads/master'): {
'*total*': 880,
# jobs count assumes an 8-core machine
'webrtc.fyi/WebRTC Chromium FYI Android Builder': 80,
# jobs count assumes an 8-core machine
'webrtc.fyi/WebRTC Chromium FYI Android Builder (dbg)': 80,
# jobs count assumes an 8-core machine
'webrtc.fyi/WebRTC Chromium FYI Android Builder ARM64 (dbg)': 80,
# jobs count assumes an 8-core machine
'webrtc.fyi/WebRTC Chromium FYI Linux Builder': 80,
# jobs count assumes an 8-core machine
'webrtc.fyi/WebRTC Chromium FYI Linux Builder (dbg)': 80,
'webrtc.fyi/WebRTC Chromium FYI Mac Builder': 80,
'webrtc.fyi/WebRTC Chromium FYI Mac Builder (dbg)': 80,
# jobs count assumes an 8-core machine
'webrtc.fyi/WebRTC Chromium FYI Win Builder': 80,
# jobs count assumes an 8-core machine
'webrtc.fyi/WebRTC Chromium FYI Win Builder (dbg)': 80,
# jobs count assumes an 8-core machine
'webrtc.fyi/WebRTC Chromium FYI ios-device': 80,
# jobs count assumes an 8-core machine
'webrtc.fyi/WebRTC Chromium FYI ios-simulator': 80,
},
},
'scheduled': {
'*total*': 1910,
'0 0,12 * * *': {
'*total*': 80,
# jobs count assumes an 8-core machine
'ci/ios13-beta-simulator': 80,
},
'0 0,6,12,18 * * *': {
'*total*': 160,
'ci/win-celab-builder-rel': 80,
# jobs count assumes an 8-core machine
'findit/linux_chromium_bot_db_exporter': 80,
},
'0 1-23/6 * * *': {
'*total*': 80,
# jobs count assumes an 8-core machine
'ci/ios-webkit-tot': 80,
},
'0 6,18 * * *': {
'*total*': 80,
# jobs count assumes an 8-core machine
'ci/ios13-sdk-simulator': 80,
},
'0 7 * * 0 *': {
'*total*': 160,
'ci/android-avd-packager': 80,
'ci/android-sdk-packager': 80,
},
'0 7,14,22 * * * *': {
'*total*': 80,
'ci/android-androidx-packager': 80,
},
'triggered': {
'*total*': 950,
'ci/android-code-coverage': 200,
'ci/android-pie-x86-fyi-rel': 150,
'ci/fuchsia-code-coverage': 200,
'ci/linux-chromeos-code-coverage': 200,
'ci/linux-chromeos-js-code-coverage': 200,
},
'with 12h interval': {
'*total*': 80,
'ci/linux-example-builder': 80,
},
'with 2m interval': {
'*total*': 80,
'ci/try-warmer': 80,
},
'with 3h interval': {
'*total*': 160,
'ci/mac-upload-perfetto': 80,
'ci/win-upload-perfetto': 80,
},
},
},
'cq': {
'*total*': 6891.5,
'try/android-binary-size': 150,
'try/android-cronet-arm-dbg': 80,
'try/android-lollipop-arm-rel': 150,
'try/android-marshmallow-arm64-rel': 300,
'try/android-marshmallow-x86-rel': 300,
'try/android-pie-arm64-dbg': 300,
'try/android-pie-arm64-rel': 300,
'try/android_compile_dbg': 150,
'try/android_compile_x64_dbg': 80,
'try/android_compile_x86_dbg': 80,
'try/android_cronet': 80,
'try/android_optional_gpu_tests_rel': 80,
'try/cast_shell_android': 80,
'try/cast_shell_linux': 80,
'try/chromeos-amd64-generic-dbg': 80,
'try/chromeos-amd64-generic-rel': 80,
'try/chromeos-arm-generic-rel': 80,
'try/chromeos-kevin-rel': 80,
'try/chromium_presubmit': 80,
# jobs count assumes an 8-core machine
'try/dawn-linux-x64-deps-rel': 80,
# jobs count assumes an 8-core machine
'try/dawn-mac-x64-deps-rel': 80,
# jobs count assumes an 8-core machine
'try/dawn-win10-x64-deps-rel': 80,
# jobs count assumes an 8-core machine
'try/dawn-win10-x86-deps-rel': 80,
'try/fuchsia-arm64-cast': 80,
'try/fuchsia-compile-x64-dbg': 80,
'try/fuchsia-x64-cast': 80,
'try/fuchsia_arm64': 80,
'try/fuchsia_x64': 80,
# jobs count assumes an 8-core machine
'try/ios-simulator': 80,
# jobs count assumes an 8-core machine
'try/ios-simulator-cronet': 80,
# jobs count assumes an 8-core machine
'try/ios-simulator-full-configs': 80,
'try/linux-blink-rel': 80,
'try/linux-chromeos-compile-dbg': 80,
'try/linux-chromeos-rel': 150,
'try/linux-lacros-rel': 300,
'try/linux-libfuzzer-asan-rel': 80,
'try/linux-ozone-rel': 80,
# 80 jobs x 100% experiment
'try/linux-perfetto-rel': 80,
'try/linux-rel': 150,
# 150 jobs x 5% experiment
'try/linux-rel-builderful': 7.5,
# 80 jobs x 5% experiment
'try/linux-warmed-orchestrator': 4,
'try/linux_chromium_asan_rel_ng': 150,
'try/linux_chromium_compile_dbg_ng': 150,
'try/linux_chromium_dbg_ng': 80,
'try/linux_chromium_tsan_rel_ng': 150,
'try/linux_layout_tests_composite_after_paint': 80,
'try/linux_layout_tests_layout_ng_disabled': 80,
'try/linux_optional_gpu_tests_rel': 80,
'try/linux_vr': 80,
'try/mac-rel': 150,
# jobs count assumes an 8-core machine
'try/mac-updater-try-builder-dbg': 80,
# jobs count assumes an 8-core machine
'try/mac-updater-try-builder-rel': 80,
'try/mac_chromium_compile_dbg_ng': 150,
# jobs count assumes an 8-core machine
'try/mac_optional_gpu_tests_rel': 80,
'try/win-libfuzzer-asan-rel': 80,
'try/win-updater-try-builder-dbg': 80,
'try/win-updater-try-builder-rel': 80,
'try/win10_chromium_x64_rel_ng': 150,
'try/win7-rel': 300,
'try/win_chromium_compile_dbg_ng': 150,
'try/win_optional_gpu_tests_rel': 80,
},
}
# Copyright 2020 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
load("//project.star", "settings")
def _get_builder_id(bucket, builder):
return "{}/{}".format(bucket, builder)
def _get_goma_usage(builder):
properties = json.decode(builder.properties)
jobs = properties.get("$build/goma", {}).get("jobs")
if jobs != None:
return struct(jobs = jobs, estimate = False)
# If the dimensions don't include the cores, guess 8
cores = 8
estimate = True
for d in builder.dimensions:
if d.startswith("cores:"):
cores = int(d[len("cores:"):])
estimate = False
break
# default logic taken from
# https://source.chromium.org/chromium/chromium/tools/build/+/master:recipes/recipe_modules/goma/api.py;l=158;drc=d29660fdde91466d1a061e3fe85ea77b51951f00
jobs = cores * 10
if jobs > 200:
jobs = 200
return struct(jobs = jobs, estimate = estimate)
def _get_builder_goma_usage(ctx):
goma_usage_by_builder = {}
for bucket in ctx.output["cr-buildbucket.cfg"].buckets:
for builder in bucket.swarming.builders:
builder_id = _get_builder_id(bucket.name, builder.name)
goma_usage_by_builder[builder_id] = _get_goma_usage(builder)
return goma_usage_by_builder
def _get_scheduler_goma_usage(ctx, goma_usage_by_builder):
scheduler_cfg = ctx.output["luci-scheduler.cfg"]
gitiles_by_job = {}
for trigger in scheduler_cfg.trigger:
gitiles = {
(trigger.gitiles.repo, ref): True
for ref in trigger.gitiles.refs
}
for job in trigger.triggers:
gitiles_by_job.setdefault(job, {}).update(gitiles)
total_gitiles_goma_usage = 0
total_goma_usage_by_gitiles = {}
goma_usage_by_builder_by_gitiles = {}
total_schedule_goma_usage = 0
total_goma_usage_by_schedule = {}
goma_usage_by_builder_by_schedule = {}
for job in scheduler_cfg.job:
if job.id not in gitiles_by_job and not job.schedule:
continue
if not job.buildbucket.bucket:
continue
_, project, bucket = job.buildbucket.bucket.split(".", 2)
if project != settings.project:
continue
builder_id = _get_builder_id(bucket, job.buildbucket.builder)
goma_usage = goma_usage_by_builder[builder_id]
concurrent = 1
if (proto.has(job, "triggering_policy") and
proto.has(job.triggering_policy, "max_concurrent_invocations")):
concurrent = job.triggering_policy.max_concurrent_invocations
goma_jobs = goma_usage.jobs * concurrent
goma_usage = struct(
jobs = goma_jobs,
jobs_per_build = goma_usage.jobs,
estimate = goma_usage.estimate,
concurrent = concurrent,
)
for g in gitiles_by_job.get(job.id, []):
gitiles_dict = goma_usage_by_builder_by_gitiles.setdefault(g, {})
gitiles_dict[builder_id] = goma_usage
total_goma_usage_by_gitiles.setdefault(g, 0)
total_goma_usage_by_gitiles[g] += goma_jobs
total_gitiles_goma_usage += goma_jobs
if job.schedule:
schedule_dict = goma_usage_by_builder_by_schedule.setdefault(job.schedule, {})
schedule_dict[builder_id] = goma_usage
total_goma_usage_by_schedule.setdefault(job.schedule, 0)
total_goma_usage_by_schedule[job.schedule] += goma_jobs
total_schedule_goma_usage += goma_jobs
gitiles_goma_usage = struct(
total = total_gitiles_goma_usage,
by_gitiles = {
k: struct(
total = total_goma_usage_by_gitiles[k],
by_builder = goma_usage_by_builder_by_gitiles[k],
)
for k in total_goma_usage_by_gitiles
},
)
schedule_goma_usage = struct(
total = total_schedule_goma_usage,
by_schedule = {
k: struct(
total = total_goma_usage_by_schedule[k],
by_builder = goma_usage_by_builder_by_schedule[k],
)
for k in total_goma_usage_by_schedule
},
)
return gitiles_goma_usage, schedule_goma_usage
def _get_cq_goma_usage(ctx, goma_usage_by_builder):
cq_cfg = ctx.output["commit-queue.cfg"]
total_cq_goma_usage = 0
cq_goma_usage_by_builder = {}
for group in cq_cfg.config_groups:
if not proto.has(group.verifiers, "tryjob"):
continue
for builder in group.verifiers.tryjob.builders:
if builder.includable_only:
continue
project, builder_id = builder.name.split("/", 1)
if project != settings.project:
continue
goma_usage = goma_usage_by_builder[builder_id]
jobs = goma_usage.jobs
experiment_percentage = None
if builder.experiment_percentage:
experiment_percentage = builder.experiment_percentage
jobs = jobs * experiment_percentage * 0.01
goma_usage = struct(
jobs = jobs,
jobs_per_build = goma_usage.jobs,
experiment_percentage = experiment_percentage,
estimate = goma_usage.estimate,
)
cq_goma_usage_by_builder[builder_id] = goma_usage
total_cq_goma_usage += jobs
return struct(
total = total_cq_goma_usage,
by_builder = cq_goma_usage_by_builder,
)
def _pyl_formatter(output):
indent = [""]
def add_line(*lines):
for line in lines:
line = line.strip()
if line:
if line[0] in ")}]":
indent[0] = indent[0][:-2]
output.append(indent[0])
output.append(line)
if line[-1] in "[{(":
indent[0] += " "
output.append("\n")
return add_line
# About 150 concurrent CQ attempts, assume 1/3 is spent compiling
_CQ_WEIGHT = 50
def _generate_goma_usage(ctx):
goma_usage_by_builder = _get_builder_goma_usage(ctx)
gitiles_goma_usage, schedule_goma_usage = (
_get_scheduler_goma_usage(ctx, goma_usage_by_builder)
)
cq_goma_usage = _get_cq_goma_usage(ctx, goma_usage_by_builder)
output = []
_ = _pyl_formatter(output)
_(
"# This is a non-LUCI generated file",
"# This file provides an abstract notion of how heavily goma is being used",
"# This is consumed by presubmit checks that need to validate the config",
"",
)
scheduler_total = gitiles_goma_usage.total + schedule_goma_usage.total
weighted_cq_total = cq_goma_usage.total * _CQ_WEIGHT
_(
"{",
"# {scheduler_total} (scheduler total) + {weighted_cq_total} (weighted CQ total)".format(
scheduler_total = scheduler_total,
weighted_cq_total = weighted_cq_total,
),
"# (weighted CQ total) = {cq_total} (CQ total) * {cq_weight} (CQ weight)".format(
cq_total = cq_goma_usage.total,
cq_weight = _CQ_WEIGHT,
),
"'*weighted total*': {},".format(scheduler_total + cq_goma_usage.total * _CQ_WEIGHT),
)
_(
"'scheduler': {",
"'*total*': {},".format(scheduler_total),
)
def _output_scheduler_goma_usage(name, goma_usage):
_(
"{}: {{".format(name),
"'*total*': {},".format(goma_usage.total),
)
for builder, goma_usage_for_builder in sorted(goma_usage.by_builder.items()):
if goma_usage_for_builder.concurrent > 1:
_("# {concurrent} concurrent builds x {jobs} jobs".format(
concurrent = goma_usage_for_builder.concurrent,
jobs = goma_usage_for_builder.jobs_per_build,
))
if goma_usage_for_builder.estimate:
_("# jobs count assumes an 8-core machine")
_("'{}': {},".format(builder, goma_usage_for_builder.jobs))
# Close the dict for name
_("},")
_(
"'triggered': {",
"'*total*': {},".format(gitiles_goma_usage.total),
)
for gitiles, goma_usage_for_gitiles in sorted(gitiles_goma_usage.by_gitiles.items()):
name = "('{}', '{}')".format(*gitiles)
_output_scheduler_goma_usage(name, goma_usage_for_gitiles)
# Close the 'triggered' dict
_("},")
_(
"'scheduled': {",
"'*total*': {},".format(schedule_goma_usage.total),
)
for schedule, goma_usage_for_schedule in sorted(schedule_goma_usage.by_schedule.items()):
name = "'{}'".format(schedule)
_output_scheduler_goma_usage(name, goma_usage_for_schedule)
# Close the 'scheduled' dict
_("},")
# Close the 'scheduler' dict
_("},")
_(
"'cq': {",
"'*total*': {},".format(cq_goma_usage.total),
)
for builder, goma_usage in sorted(cq_goma_usage.by_builder.items()):
if goma_usage.experiment_percentage:
_("# {jobs} jobs x {percent}% experiment".format(
jobs = goma_usage.jobs_per_build,
percent = goma_usage.experiment_percentage,
))
if goma_usage.estimate:
_("# jobs count assumes an 8-core machine")
_("'{}': {},".format(builder, goma_usage.jobs))
# Close the 'cq' dict
_("},")
_(
# Close the top-level dict
"}",
# End with a newline
"",
)
ctx.output["goma-usage.pyl"] = "".join(output)
lucicfg.generator(_generate_goma_usage)
...@@ -10,7 +10,7 @@ load("//lib/branches.star", "branches") ...@@ -10,7 +10,7 @@ load("//lib/branches.star", "branches")
load("//project.star", "settings") load("//project.star", "settings")
lucicfg.check_version( lucicfg.check_version(
min = "1.21.0", min = "1.19.0",
message = "Update depot_tools", message = "Update depot_tools",
) )
...@@ -27,7 +27,6 @@ lucicfg.config( ...@@ -27,7 +27,6 @@ lucicfg.config(
"commit-queue.cfg", "commit-queue.cfg",
"cq-builders.md", "cq-builders.md",
"cr-buildbucket.cfg", "cr-buildbucket.cfg",
"goma-usage.pyl",
"luci-logdog.cfg", "luci-logdog.cfg",
"luci-milo.cfg", "luci-milo.cfg",
"luci-notify.cfg", "luci-notify.cfg",
...@@ -135,7 +134,7 @@ branches.exec("//subprojects/goma/subproject.star") ...@@ -135,7 +134,7 @@ branches.exec("//subprojects/goma/subproject.star")
branches.exec("//subprojects/webrtc/subproject.star") branches.exec("//subprojects/webrtc/subproject.star")
branches.exec("//generators/cq-builders-md.star") branches.exec("//generators/cq-builders-md.star")
exec("//generators/goma-usage.star")
exec("//generators/scheduler-noop-jobs.star") exec("//generators/scheduler-noop-jobs.star")
exec("//generators/sort-consoles.star") exec("//generators/sort-consoles.star")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment