@@ -20,9 +20,9 @@ To balance cost/performance, we keep both types.
2020 - building & testing LLVM shall be done on self-hosted runners.
2121
2222LLVM has several flavor of self-hosted runners:
23- - libcxx runners.
2423 - MacOS runners for HLSL managed by Microsoft.
2524 - GCP windows/linux runners managed by Google.
25+ - GCP linux runners setup for libcxx managed by Google.
2626
2727This document only focuses on Google's GCP hosted runners.
2828
@@ -47,10 +47,11 @@ Any relevant differences are explicitly enumerated.
4747
4848Our runners are hosted on GCP Kubernetes clusters, and use the
4949[ Action Runner Controller (ARC)] ( https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/about-actions-runner-controller ) .
50- The clusters have 3 pools:
50+ The clusters have 4 main pools:
5151 - llvm-premerge-linux
5252 - llvm-premerge-linux-service
53- - llvm-premerge-windows
53+ - llvm-premerge-windows-2022
54+ - llvm-premerge-libcxx
5455
5556** llvm-premerge-linux-service** is a fixed pool, only used to host the
5657services required to manage the premerge infra (controller, listeners,
@@ -60,10 +61,15 @@ monitoring). Today, this pool has three `e2-highcpu-4` machine.
6061VMs. This pool runs the Linux workflows. In the US West cluster, the machines
6162are ` n2d-standard-64 ` due to quota limitations.
6263
63- ** llvm-premerge-windows** is a auto-scaling pool with large ` n2-standard-32 `
64+ ** llvm-premerge-windows-2022 ** is a auto-scaling pool with large ` n2-standard-32 `
6465VMs. Similar to the Linux pool, but this time it runs Windows workflows. In the
6566US West cluster, the machines are ` n2d-standard-32 ` due to quota limitations.
6667
68+ ** llvm-premerge-libcxx** is a auto-scaling pool with large ` n2-standard-32 `
69+ VMs. This is similar to the Linux pool but with smaller machines tailored
70+ to the libcxx testing workflows. In the US West Cluster, the machines are
71+ ` n2d-standard-32 ` due to quota limitations.
72+
6773### Service pool: llvm-premerge-linux-service
6874
6975This pool runs all the services managing the presubmit infra.
@@ -87,7 +93,7 @@ How a job is run:
8793 - If the instance is not reused in the next 10 minutes, the autoscaler
8894 will turn down the instance, freeing resources.
8995
90- ### Worker pools : llvm-premerge-linux, llvm-premerge-windows
96+ ### Worker pools : llvm-premerge-linux, llvm-premerge-windows-2022, llvm-premerge-libcxx
9197
9298To make sure each runner pod is scheduled on the correct pool (linux or
9399windows, avoiding the service pool), we use labels and taints.
@@ -98,6 +104,7 @@ So if we do not enforce limits, the controller could schedule 2 runners on
98104the same instance, forcing containers to share resources.
99105
100106Those bits are configures in the
101- [ linux runner configuration] ( linux_runners_values.yaml ) and
102- [ windows runner configuration] ( windows_runner_values.yaml ) .
107+ [ linux runner configuration] ( linux_runners_values.yaml ) ,
108+ [ windows runner configuration] ( windows_runner_values.yaml ) , and
109+ [ libcxx runner configuration] ( libcxx_runners_values.yaml ) .
103110
0 commit comments