-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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
[Apple mobile] Enable trimming on build machines to match ILLink features #110966
[Apple mobile] Enable trimming on build machines to match ILLink features #110966
Conversation
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
Each job that is building full library tests on Apple mobile. It impacts the total build time of |
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.
I left couple of comments, but all in all neat work!
eng/testing/tests.ioslike.targets
Outdated
@@ -16,7 +16,7 @@ | |||
<!-- running aot-helix tests locally, so we can test with the same project file as CI --> | |||
<_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration)</_AOTBuildCommand> | |||
<!-- The command below sets default properties for runtime and library tests --> | |||
<_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=true /p:Configuration=$(Configuration) /p:EnableAggressiveTrimming=$(EnableAggressiveTrimming)</_AOTBuildCommand> | |||
<_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=false /p:Configuration=$(Configuration) /p:EnableAggressiveTrimming=false</_AOTBuildCommand> |
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.
Since we are not trimming on Helix anymore, do we need to set EnableAggressiveTrimming
for AOTing at all?
@@ -11,6 +11,7 @@ | |||
<IncludesTestRunner>false</IncludesTestRunner> | |||
<ExpectedExitCode>42</ExpectedExitCode> | |||
<EnableAggressiveTrimming>true</EnableAggressiveTrimming> | |||
<DynamicCodeSupport>false</DynamicCodeSupport> |
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.
I assume this setting needs to be there because we are testing the full AOT mode?
It would be good to move it to some common .props/targets file instead as adding new tests for testing full AOT could miss setting this feature switch.
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.
Correct. Updated condition in tests.mobile.targets
to override default trimming features.
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
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.
Once CI is green I think this is good to go, thanks!
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
/azp run runtime-extra-platforms |
Azure Pipelines successfully started running 1 pipeline(s). |
/ba-g timeouts |
Is this change low risk to backport it to net 9 branch to improve the CI there? |
This is a low risk change. |
/backport to release/9.0-staging |
Started backporting to release/9.0-staging: https://github.com/dotnet/runtime/actions/runs/13832612248 |
@kotlarmilos backporting to "release/9.0-staging" failed, the patch most likely resulted in conflicts: $ git am --3way --empty=keep --ignore-whitespace --keep-non-patch changes.patch
Applying: Trim on build machine
Applying: Remove unknown types from a descriptor file
Applying: Don't trim on Helix
Using index info to reconstruct a base tree...
M eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
Falling back to patching base and 3-way merge...
Auto-merging eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
CONFLICT (content): Merge conflict in eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Patch failed at 0003 Don't trim on Helix
Error: The process '/usr/bin/git' failed with exit code 128 Please backport manually! |
Description
This PR moves trimming from Helix to AzDo (build) machines to simplify ILLink feature alignment between AzDo and Helix. Previously, when an ILLink feature was added to the SDK, we needed to manually maintain an internal setup. This led to regressions, and time spend on investigation to identify the root cause, such as in:
#103594
#110771
Changes
Trimming is now moved trimming from Helix to AzDo (build) machines. Redundant code for maintaining ILLink features is removed.
This change introduces a 20min regression in build time for the complete set of library tests on
runtime-extra-platforms
pipeline, as they are now trimmed sequentially on build machines. However, it is expected to save time when investigating regressions caused by SDK changes.Verification
The changes have been verified on the
runtime
andruntime-extra-platforms
pipelines.Fixes #110771 #104431 #110266