Add pgo testing to outerloop (#53301)
authorAndy Ayers <andya@microsoft.com>
Thu, 27 May 2021 03:01:30 +0000 (20:01 -0700)
committerGitHub <noreply@github.com>
Thu, 27 May 2021 03:01:30 +0000 (20:01 -0700)
Also update jit-experimental to no longer run PGO or EH WriteThru.

eng/pipelines/common/templates/runtimes/run-test-job.yml
eng/pipelines/coreclr/libraries-pgo.yml [new file with mode: 0644]
eng/pipelines/coreclr/pgo.yml [new file with mode: 0644]
eng/pipelines/libraries/run-test-job.yml
src/tests/Common/testenvironment.proj

index 53dba08..e8ca30b 100644 (file)
@@ -465,6 +465,12 @@ jobs:
           - jitminopts
           - forcerelocs
           - gcstress0xf
+        ${{ if in(parameters.testGroup, 'pgo') }}:
+          scenarios:
+          - nopgo
+          - defaultpgo
+          - dynamicpgo
+          - fullpgo
         ${{ if in(parameters.testGroup, 'gc-longrunning') }}:
           longRunningGcTests: true
           scenarios:
@@ -481,10 +487,7 @@ jobs:
           scenarios:
           - jitosr
           - jitosr_stress
-          - jitehwritethru
           - jitobjectstackallocation
-          - jitpgo
-          - jitpgo_inline
         ${{ if in(parameters.testGroup, 'ilasm') }}:
           scenarios:
           - ilasmroundtrip
diff --git a/eng/pipelines/coreclr/libraries-pgo.yml b/eng/pipelines/coreclr/libraries-pgo.yml
new file mode 100644 (file)
index 0000000..0914451
--- /dev/null
@@ -0,0 +1,55 @@
+trigger: none
+
+schedules:
+- cron: "0 16 * * 0,6"
+  displayName: Sat and Sun at 8:00 AM (UTC-8:00)
+  branches:
+    include:
+    - main
+  always: true
+
+jobs:
+
+#
+# Build CoreCLR checked and libraries Release
+#
+- template: /eng/pipelines/common/platform-matrix.yml
+  parameters:
+    jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+    buildConfig: checked
+    platforms:
+    - Linux_x64
+    - Linux_arm
+    - Linux_arm64
+    - windows_x86
+    - windows_x64
+    - windows_arm64
+    jobParameters:
+      # libraries test build platforms
+      testBuildPlatforms:
+      - Linux_x64
+      - windows_x64
+
+#
+# Libraries Test Run using Release libraries, Checked CoreCLR, and stress modes
+#
+- template: /eng/pipelines/common/platform-matrix.yml
+  parameters:
+    jobTemplate: /eng/pipelines/libraries/run-test-job.yml
+    buildConfig: Release
+    platforms:
+    - Linux_arm
+    - Linux_arm64
+    - Linux_x64
+    - windows_arm64
+    - windows_x64
+    - windows_x86
+    helixQueueGroup: libraries
+    helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+    jobParameters:
+      timeoutInMinutes: 150
+      testScope: innerloop
+      liveRuntimeBuildConfig: checked
+      dependsOnTestBuildConfiguration: Release
+      dependsOnTestArchitecture: x64
+      coreclrTestGroup: pgo
diff --git a/eng/pipelines/coreclr/pgo.yml b/eng/pipelines/coreclr/pgo.yml
new file mode 100644 (file)
index 0000000..132464b
--- /dev/null
@@ -0,0 +1,57 @@
+trigger: none
+
+schedules:
+- cron: "0 8 * * *"
+  displayName: Mon through Sun at 12:00 AM (UTC-8:00)
+  branches:
+    include:
+    - main
+  always: true
+
+jobs:
+
+- template: /eng/pipelines/common/platform-matrix.yml
+  parameters:
+    jobTemplate: /eng/pipelines/common/build-coreclr-and-libraries-job.yml
+    buildConfig: checked
+    platforms:
+    - Linux_arm
+    - Linux_arm64
+    - Linux_x64
+    - OSX_arm64
+    - windows_arm
+    - windows_arm64
+    - windows_x64
+    - windows_x86
+    - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+    jobParameters:
+      testGroup: pgo
+
+- template: /eng/pipelines/common/platform-matrix.yml
+  parameters:
+    jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml
+    buildConfig: checked
+    platforms:
+    - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64
+    jobParameters:
+      testGroup: pgo
+      liveLibrariesBuildConfig: Release
+
+- template: /eng/pipelines/common/platform-matrix.yml
+  parameters:
+    jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml
+    buildConfig: checked
+    platforms:
+    - Linux_arm
+    - Linux_arm64
+    - Linux_x64
+    - OSX_arm64
+    - windows_arm
+    - windows_arm64
+    - windows_x64
+    - windows_x86
+    helixQueueGroup: ci
+    helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml
+    jobParameters:
+      testGroup: pgo
+      liveLibrariesBuildConfig: Release
index 9e073dd..3e9d2de 100644 (file)
@@ -193,3 +193,10 @@ jobs:
               - gcstress0xc_jitstress1
               - gcstress0xc_jitstress2
               - gcstress0xc_jitminopts_heapverify1
+            ${{ if in(parameters.coreclrTestGroup, 'pgo') }}:
+              scenarios:
+              - nopgo
+              - defaultpgo
+              - dynamicpgo
+              - fullpgo
+
index 762ba14..b1a359d 100644 (file)
     <TestEnvironment Include="gcstress0xc_jitminopts_heapverify1" GCStress="0xC" JITMinOpts="1" HeapVerify="1" />
     <TestEnvironment Include="jitosr" TC_OnStackReplacement="1" TC_QuickJitForLoops="1" TieredCompilation="1" />
     <TestEnvironment Include="jitosr_stress" TC_OnStackReplacement="1" TC_QuickJitForLoops="1" TC_OnStackReplacement_InitialCounter="1" OSR_HitLimit="1" TieredCompilation="1" />
-    <TestEnvironment Include="jitpgo" TieredPGO="1" TieredCompilation="1" TC_QuickJitForLoops="1" />
-    <TestEnvironment Include="jitpgo_inline" TieredPGO="1" TieredCompilation="1" JitInlinePolicyProfile="1" TC_QuickJitForLoops="1" />
-    <TestEnvironment Include="jitehwritethru" EnableEhWriteThru="1" TieredCompilation="0" />
     <TestEnvironment Include="jitobjectstackallocation" JitObjectStackAllocation="1" TieredCompilation="0" />
     <TestEnvironment Include="ilasmroundtrip" RunningIlasmRoundTrip="1" />
     <TestEnvironment Include="clrinterpreter" TieredCompilation="1" />
+    <TestEnvironment Include="nopgo" JitDisablePGO="1" TieredCompilation="1" />
+    <TestEnvironment Include="defaultpgo" TieredPGO="1" TieredCompilation="1" />
+    <TestEnvironment Include="dynamicpgo" TieredPGO="1" TieredCompilation="1" TC_QuickJitForLoops="1" />
+    <TestEnvironment Include="fullpgo" TieredPGO="1" TieredCompilation="1" TC_QuickJitForLoops="1" ReadyToRun="0"/>
   </ItemGroup>
 
   <!-- We use target batching on the COMPlusVariable items to iterate over the all COMPlus_* environment variables