From 85722b807a922c613d31d220f69f5bad833682c3 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Mon, 18 Apr 2022 11:32:19 -0700 Subject: [PATCH] Put javac, d8 and r8 rules into RBE ninja pool, take two I60f7859f3657fc1eff0daf0e0a1b0f9fe63551b6 attempted to put the javac, d8 and r8 rules into the RBE ninja pool so they could run 500 jobs in parallel, but rbe.mk is not parsed during the main build phase and the pool continued to be unset. Move the pool configuration into config.mk. Bug: 228603472 Test: manual Change-Id: I56377244e1c496034576ba5988393d88c2c5b09f --- core/config.mk | 48 +++++++++++++++++++++++++++++++++--------------- core/rbe.mk | 8 -------- 2 files changed, 33 insertions(+), 23 deletions(-) diff --git a/core/config.mk b/core/config.mk index 7af600f3d5..e9dedfdfa6 100644 --- a/core/config.mk +++ b/core/config.mk @@ -427,21 +427,6 @@ $(hide) $(HOST_OTOOL) -l $(1) | grep LC_ID_DYLIB -A 5 > $(2) $(hide) $(HOST_NM) -gP $(1) | cut -f1-2 -d" " | (grep -v U$$ >> $(2) || true) endef -GOMA_POOL := -RBE_POOL := -GOMA_OR_RBE_POOL := -# When goma or RBE are enabled, kati will be passed --default_pool=local_pool to put -# most rules into the local pool. Explicitly set the pool to "none" for rules that -# should be run outside the local pool, i.e. with -j500. -ifneq (,$(filter-out false,$(USE_GOMA))) - GOMA_POOL := none - GOMA_OR_RBE_POOL := none -else ifneq (,$(filter-out false,$(USE_RBE))) - RBE_POOL := none - GOMA_OR_RBE_POOL := none -endif -.KATI_READONLY := GOMA_POOL RBE_POOL GOMA_OR_RBE_POOL - ifeq ($(CALLED_FROM_SETUP),true) include $(BUILD_SYSTEM)/ccache.mk include $(BUILD_SYSTEM)/goma.mk @@ -1233,6 +1218,39 @@ define find_warning_allowed_projects $(filter $(ANDROID_WARNING_ALLOWED_PROJECTS),$(1)/) endef +GOMA_POOL := +RBE_POOL := +GOMA_OR_RBE_POOL := +# When goma or RBE are enabled, kati will be passed --default_pool=local_pool to put +# most rules into the local pool. Explicitly set the pool to "none" for rules that +# should be run outside the local pool, i.e. with -j500. +ifneq (,$(filter-out false,$(USE_GOMA))) + GOMA_POOL := none + GOMA_OR_RBE_POOL := none +else ifneq (,$(filter-out false,$(USE_RBE))) + RBE_POOL := none + GOMA_OR_RBE_POOL := none +endif +.KATI_READONLY := GOMA_POOL RBE_POOL GOMA_OR_RBE_POOL + +JAVAC_NINJA_POOL := +R8_NINJA_POOL := +D8_NINJA_POOL := + +ifneq ($(filter-out false,$(USE_RBE)),) + ifdef RBE_JAVAC + JAVAC_NINJA_POOL := $(RBE_POOL) + endif + ifdef RBE_R8 + R8_NINJA_POOL := $(RBE_POOL) + endif + ifdef RBE_D8 + D8_NINJA_POOL := $(RBE_POOL) + endif +endif + +.KATI_READONLY := JAVAC_NINJA_POOL R8_NINJA_POOL D8_NINJA_POOL + # These goals don't need to collect and include Android.mks/CleanSpec.mks # in the source tree. dont_bother_goals := out product-graph diff --git a/core/rbe.mk b/core/rbe.mk index e399ec1e70..370d4bd0e0 100644 --- a/core/rbe.mk +++ b/core/rbe.mk @@ -14,10 +14,6 @@ # limitations under the License. # -JAVAC_NINJA_POOL := -R8_NINJA_POOL := -D8_NINJA_POOL := - # Notice: this works only with Google's RBE service. ifneq ($(filter-out false,$(USE_RBE)),) ifdef RBE_DIR @@ -88,20 +84,16 @@ ifneq ($(filter-out false,$(USE_RBE)),) ifdef RBE_JAVAC JAVAC_WRAPPER := $(strip $(JAVAC_WRAPPER) $(RBE_WRAPPER) --labels=type=compile,lang=java,compiler=javac --exec_strategy=$(javac_exec_strategy) --platform=$(java_r8_d8_platform)) - JAVAC_NINJA_POOL := $(RBE_POOL) endif ifdef RBE_R8 R8_WRAPPER := $(strip $(RBE_WRAPPER) --labels=type=compile,compiler=r8 --exec_strategy=$(r8_exec_strategy) --platform=$(java_r8_d8_platform) --inputs=out/soong/host/linux-x86/framework/r8-compat-proguard.jar,build/make/core/proguard_basic_keeps.flags --toolchain_inputs=prebuilts/jdk/jdk11/linux-x86/bin/java) - R8_NINJA_POOL := $(RBE_POOL) endif ifdef RBE_D8 D8_WRAPPER := $(strip $(RBE_WRAPPER) --labels=type=compile,compiler=d8 --exec_strategy=$(d8_exec_strategy) --platform=$(java_r8_d8_platform) --inputs=out/soong/host/linux-x86/framework/d8.jar --toolchain_inputs=prebuilts/jdk/jdk11/linux-x86/bin/java) - D8_NINJA_POOL := $(RBE_POOL) endif rbe_dir := endif -.KATI_READONLY := JAVAC_NINJA_POOL R8_NINJA_POOL D8_NINJA_POOL