-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mono][infra] Enable runtime tests in fullAOT LLVM mode on linux-x64 #92057
Changes from 104 commits
fd56ecb
870e2d4
96c3dd5
fa12bb3
133f3a8
ba0c40e
82bfa05
8eb0cab
24628ff
93ec6c8
ade75a2
0345bff
451c85f
ec2fe19
8f41239
c188cfa
1ef87f2
b574489
06febc6
fbc914c
a62f417
0af7018
a2fe74a
fe59c5a
a7d7d2c
1d956f0
72f1414
a4bac46
e98235d
6fc3476
9913498
b61f8ef
a67303e
66f0481
bc13a90
5af9f34
7a1365d
358ba2a
da25b50
0691089
7775dd5
5bf0643
612fc81
c69b705
ed8f002
bc9c906
b43f611
936a59a
c20b843
f771c02
fd637c2
2e53492
2f46c1b
db8ca13
31e1c2a
2405b09
0c301ba
af288cb
c51cdc7
d03314f
d1be24d
abefc4b
b4fe13c
ca5ea14
3b45c90
9109cde
babcfde
57f8366
124b053
22b155a
97c2d87
0304a87
cbb9d45
4ae294c
765f7ad
c1fb96e
5df1f70
0a8baab
65cf2ab
d967a00
9f047ed
db7ef9d
41e6975
dd9e817
639b73b
c32760f
acdb941
ccdda9d
55202af
a54c281
814614a
df9aee8
36fb292
ba82756
58752b8
f85c698
2bdc654
08fea48
acbbb8b
889d510
ba408d9
3d16867
e744c75
5fa6730
2b58f7a
c3381cc
7619c51
a00899f
fb828fe
b449744
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -111,43 +111,89 @@ jobs: | |
# | ||
# Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT | ||
# Only when Mono is changed | ||
# | ||
# Disabled due to OOM issues https://github.com/dotnet/runtime/issues/90427 | ||
# - template: /eng/pipelines/common/platform-matrix.yml | ||
# parameters: | ||
# jobTemplate: /eng/pipelines/common/global-build-job.yml | ||
# helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml | ||
# buildConfig: Release | ||
# runtimeFlavor: mono | ||
# platforms: | ||
# - linux_x64 | ||
# - linux_arm64 | ||
# variables: | ||
# - name: timeoutPerTestInMinutes | ||
# value: 60 | ||
# - name: timeoutPerTestCollectionInMinutes | ||
# value: 180 | ||
# jobParameters: | ||
# testGroup: innerloop | ||
# nameSuffix: AllSubsets_Mono_LLVMFullAot_RuntimeTests | ||
# runtimeVariant: llvmfullaot | ||
# buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true | ||
# timeoutInMinutes: 300 | ||
# isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} | ||
# This job runs non-intrinsics runtime tests due to OOM issues | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/global-build-job.yml | ||
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml | ||
buildConfig: Release | ||
runtimeFlavor: mono | ||
platforms: | ||
- linux_x64 | ||
# Tracking issue: https://github.com/dotnet/runtime/issues/90427 | ||
# - linux_arm64 | ||
variables: | ||
- name: timeoutPerTestInMinutes | ||
value: 60 | ||
- name: timeoutPerTestCollectionInMinutes | ||
value: 180 | ||
jobParameters: | ||
testGroup: innerloop | ||
nameSuffix: AllSubsets_Mono_LLVMFullAot_RuntimeTests_Tests | ||
runtimeVariant: llvmfullaot | ||
buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true | ||
timeoutInMinutes: 360 | ||
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} | ||
condition: >- | ||
or( | ||
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), | ||
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), | ||
eq(variables['isRollingBuild'], true)) | ||
postBuildSteps: | ||
- template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml | ||
parameters: | ||
creator: dotnet-bot | ||
llvmAotStepContainer: linux_x64_llvmaot | ||
testRunNamePrefixSuffix: Mono_Release | ||
testBuildArgs: >- | ||
-tree:CoreMangLib -tree:Exceptions -tree:GC -tree:Interop -tree:Loader -tree:Regressions -tree:baseservices | ||
-tree:ilasm -tree:ilverify -tree:managed -tree:profiler -tree:readytorun -tree:reflection -tree:tracing | ||
-tree:JIT/BBT -tree:JIT/CodeGenBringUpTests -tree:JIT/Directed -tree:JIT/Generics -tree:JIT/IL_Conformance | ||
-tree:JIT/Math -tree:JIT/Methodical -tree:JIT/PGO -tree:JIT/Performance -tree:JIT/Regression -tree:JIT/RyuJIT | ||
-tree:JIT/Stress -tree:JIT/common -tree:JIT/jit64 -tree:JIT/opt -tree:JIT/superpmi | ||
extraVariablesTemplates: | ||
- template: /eng/pipelines/common/templates/runtimes/test-variables.yml | ||
|
||
# condition: >- | ||
# or( | ||
# eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), | ||
# eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), | ||
# eq(variables['isRollingBuild'], true)) | ||
# postBuildSteps: | ||
# - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml | ||
# parameters: | ||
# creator: dotnet-bot | ||
# llvmAotStepContainer: linux_x64_llvmaot | ||
# testRunNamePrefixSuffix: Mono_Release | ||
# extraVariablesTemplates: | ||
# - template: /eng/pipelines/common/templates/runtimes/test-variables.yml | ||
# | ||
# Mono CoreCLR runtime Test executions using live libraries and LLVM Full AOT | ||
# Only when Mono is changed | ||
# This job runs the runtime intrinsics tests due to OOM issues | ||
- template: /eng/pipelines/common/platform-matrix.yml | ||
parameters: | ||
jobTemplate: /eng/pipelines/common/global-build-job.yml | ||
helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml | ||
buildConfig: Release | ||
runtimeFlavor: mono | ||
platforms: | ||
- linux_x64 | ||
# Tracking issue: https://github.com/dotnet/runtime/issues/90427 | ||
# - linux_arm64 | ||
variables: | ||
- name: timeoutPerTestInMinutes | ||
value: 60 | ||
- name: timeoutPerTestCollectionInMinutes | ||
value: 180 | ||
jobParameters: | ||
testGroup: innerloop | ||
nameSuffix: AllSubsets_Mono_LLVMFullAot_RuntimeIntrinsicsTests | ||
runtimeVariant: llvmfullaot | ||
buildArgs: -s mono+libs+clr.hosts+clr.iltools -c Release /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not sure if it is possible with Helix, but could we re-use the build from There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correct, perhaps we can create a template. @fanyang-mono Should this be moved to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Moved to the |
||
timeoutInMinutes: 360 | ||
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} | ||
condition: >- | ||
or( | ||
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), | ||
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), | ||
eq(variables['isRollingBuild'], true)) | ||
postBuildSteps: | ||
- template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml | ||
parameters: | ||
creator: dotnet-bot | ||
llvmAotStepContainer: linux_x64_llvmaot | ||
testRunNamePrefixSuffix: Mono_Release | ||
testBuildArgs: -tree:JIT/Intrinsics -tree:JIT/HardwareIntrinsics -tree:JIT/SIMD | ||
extraVariablesTemplates: | ||
- template: /eng/pipelines/common/templates/runtimes/test-variables.yml | ||
|
||
# | ||
# Mono CoreCLR runtime test executions using live libraries and mini Full AOT | ||
|
@@ -161,6 +207,8 @@ jobs: | |
runtimeFlavor: mono | ||
platforms: | ||
- linux_x64 | ||
# Tracking issue: https://github.com/dotnet/runtime/issues/90427 | ||
# linux_arm64 | ||
variables: | ||
- name: timeoutPerTestInMinutes | ||
value: 60 | ||
|
@@ -172,6 +220,12 @@ jobs: | |
runtimeVariant: minifullaot | ||
buildArgs: -s mono+libs+clr.hosts -c Release | ||
timeoutInMinutes: 300 | ||
isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} | ||
condition: >- | ||
or( | ||
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_mono_excluding_wasm.containsChange'], true), | ||
eq(stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_runtimetests.containsChange'], true), | ||
eq(variables['isRollingBuild'], true)) | ||
postBuildSteps: | ||
- template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml | ||
parameters: | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure if it is needed in this PR but we should consolidate which flags are used for fullAOT/AOT jobs across our builds. For example, for perf jobs we use
/p:MonoAOTEnableLLVM=true /p:MonoEnableLLVM=true /p:BuildMonoAOTCrossCompiler=true
https://github.com/matouskozak/runtime/blob/12f546416d4aeb23b980a92e407fbf693823236d/eng/pipelines/coreclr/perf-non-wasm-jobs.yml#L39There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. This command only builds the runtime.
The AOT compiler is built in an optional step which contains required parameters:
runtime/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml
Lines 42 to 63 in e610649
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we align on the use ofIs theMonoBundleLLVMOptimizer
vsMonoAOTEnableLLVM
then?MonoBundleLLVMOptimizer=true
necessary then? Looks likeMonoEnableLLVM=true
should be enoughruntime/src/mono/mono.proj
Line 46 in c7ada75