Set BuildDriverKey as CPU-heavy. This is the result of an investigation into why Skymeld's performance deteriorated so much as we added more features to it. BuildDriverKey is in fact very CPU-heavy (e.g. action conflict checking) and thus should be marked as such. PiperOrigin-RevId: 448937072
diff --git a/src/main/java/com/google/devtools/build/lib/concurrent/MultiExecutorQueueVisitor.java b/src/main/java/com/google/devtools/build/lib/concurrent/MultiExecutorQueueVisitor.java index 4b1bb15..7219dd7 100644 --- a/src/main/java/com/google/devtools/build/lib/concurrent/MultiExecutorQueueVisitor.java +++ b/src/main/java/com/google/devtools/build/lib/concurrent/MultiExecutorQueueVisitor.java
@@ -81,7 +81,7 @@ } @Override - public final void execute(Runnable runnable, ThreadPoolType threadPoolType) { + public void execute(Runnable runnable, ThreadPoolType threadPoolType) { super.executeWithExecutorService(runnable, getExecutorServiceByThreadPoolType(threadPoolType)); }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD index 5f865a7..dbdb4b8 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/BUILD +++ b/src/main/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -890,6 +890,7 @@ ":sky_functions", "//src/main/java/com/google/devtools/build/lib/actions:action_lookup_key", "//src/main/java/com/google/devtools/build/lib/analysis:top_level_artifact_context", + "//src/main/java/com/google/devtools/build/skyframe:cpu_heavy_skykey", "//src/main/java/com/google/devtools/build/skyframe:skyframe-objects", ], )
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/BuildDriverKey.java b/src/main/java/com/google/devtools/build/lib/skyframe/BuildDriverKey.java index f2744c4..32574dd 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/BuildDriverKey.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/BuildDriverKey.java
@@ -15,15 +15,15 @@ import com.google.devtools.build.lib.actions.ActionLookupKey; import com.google.devtools.build.lib.analysis.TopLevelArtifactContext; +import com.google.devtools.build.skyframe.CPUHeavySkyKey; import com.google.devtools.build.skyframe.SkyFunctionName; -import com.google.devtools.build.skyframe.SkyKey; import java.util.Objects; /** * Wraps an {@link ActionLookupKey}. The evaluation of this SkyKey is the entry point of analyzing * the {@link ActionLookupKey} and executing the associated actions. */ -public final class BuildDriverKey implements SkyKey { +public final class BuildDriverKey implements CPUHeavySkyKey { private final ActionLookupKey actionLookupKey; private final TopLevelArtifactContext topLevelArtifactContext; private final TestType testType;