From 3afe0c561adfa2dc4bbdf5b1cc8eec21345465ad Mon Sep 17 00:00:00 2001 From: Tobias Werth Date: Mon, 13 Nov 2023 03:03:32 -0800 Subject: [PATCH] Revert "Remove `--experimental_throttle_action_cache_check` flag." This reverts commit 1e17348da7e45c00cb474390a3b8ed3103b6b5cf. This was requested in #19924. Closes #20162. PiperOrigin-RevId: 581897901 Change-Id: Ifea2330c45c97db4454ffdcc31b7b7af640cd659 --- .../build/lib/analysis/config/CoreOptions.java | 10 ++++++++++ .../build/lib/bazel/rules/BazelRulesModule.java | 11 ----------- .../build/lib/skyframe/SkyframeActionExecutor.java | 5 ++++- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java index 2075543cad53c9..25970a6c038059 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/CoreOptions.java @@ -919,6 +919,16 @@ public OutputPathsConverter() { + " of failing. This is to help use cquery diagnose failures in select.") public boolean debugSelectsAlwaysSucceed; + @Option( + name = "experimental_throttle_action_cache_check", + defaultValue = "true", + converter = BooleanConverter.class, + documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, + metadataTags = OptionMetadataTag.EXPERIMENTAL, + effectTags = {OptionEffectTag.EXECUTION}, + help = "Whether to throttle the check whether an action is cached.") + public boolean throttleActionCacheCheck; + /** Ways configured targets may provide the {@link Fragment}s they require. */ public enum IncludeConfigFragmentsEnum { /** diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java index 36d110f654a6a7..6130ab02df9a3b 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java @@ -25,7 +25,6 @@ import com.google.devtools.build.lib.runtime.Command; import com.google.devtools.build.lib.runtime.CommandEnvironment; import com.google.devtools.build.lib.util.ResourceFileLoader; -import com.google.devtools.common.options.Converters.BooleanConverter; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; import com.google.devtools.common.options.OptionEffectTag; @@ -253,16 +252,6 @@ public static class BuildGraveyardOptions extends OptionsBase { help = "This option is deprecated and has no effect and will be removed in the future.") public boolean deferParamFiles; - @Option( - name = "experimental_throttle_action_cache_check", - defaultValue = "true", - converter = BooleanConverter.class, - documentationCategory = OptionDocumentationCategory.UNDOCUMENTED, - metadataTags = OptionMetadataTag.EXPERIMENTAL, - effectTags = {OptionEffectTag.EXECUTION}, - help = "no-op") - public boolean throttleActionCacheCheck; - @Option( name = "check_fileset_dependencies_recursively", defaultValue = "true", diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java index b75b2cebdde2fb..81a2ef092f6ecf 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java @@ -310,7 +310,10 @@ void prepareForExecution( freeDiscoveredInputsAfterExecution = !trackIncrementalState && options.getOptions(CoreOptions.class).actionListeners.isEmpty(); - this.cacheHitSemaphore = new Semaphore(ResourceUsage.getAvailableProcessors()); + this.cacheHitSemaphore = + options.getOptions(CoreOptions.class).throttleActionCacheCheck + ? new Semaphore(ResourceUsage.getAvailableProcessors()) + : null; this.actionExecutionSemaphore = buildRequestOptions.useSemaphoreForJobs ? new Semaphore(buildRequestOptions.jobs) : null;