-
Notifications
You must be signed in to change notification settings - Fork 5k
[release/6.0] Load R2R images on osx-arm64 according to Apple's guidelines #67438
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
[release/6.0] Load R2R images on osx-arm64 according to Apple's guidelines #67438
Conversation
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsCloses #64103. This PR reactivates the previously backported #64104 and fixes its impact on debugging by backporting #67118. More details about the rationale of this change can be found in #64103, #64104, #65341, and #67118.
|
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.
LGTM, thank you!
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.
Approved. Please check on the pr failure and fill in the template. We will take for consideration in 6.0.x
Added the template, the SingleFile failure seems to be infra related: will try rerunning. |
Failed again, I have created a new infra issue for that. |
Hi @mangod9, do you have any news about the test infra issue? |
Should we relabel this to area-ReadyToRun-coreclr instead of codegen? |
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.
Validated from a debugger perspective - the code running is r2r and the debugger properly reports exceptions and stacks. Thanks!
/azp run runtime |
Azure Pipelines successfully started running 1 pipeline(s). |
Failure is #64153, arm64 queue is not starting work - it might be backlogged. |
Customer Impact
Slow startup of .NET applications on Apple Silicon. ReadyToRun images are not loaded correctly on Apple Silicon. All methods are JITed during startup.
For reference, compiling a medium-size project like ILGPU takes ~17s on a Mac Mini M1 before this change, and ~13s after this change (about 30% faster).
Testing
crossgen2 outerloop tests. Manually verified that the ReadyToRun images are loaded correctly on Apple Silicon and Debugging of managed apps works.
Risk
Low risk. These fixes have been in dotnet/runtime:main for more than a month, however there is a risk of discovering latent Apple Silicon specific bugs in ReadyToRun with this fix.
Closes #64103.
This PR reactivates the previously backported #64104 and fixes its impact on debugging by backporting #67118.
I believe that this change would be limited to osx-arm64 and introduce a substantial performance gain by enabling ReadyToRun on Apple Silicon, which was supposed to work in .NET 6 in the first place but never did.
More details about the rationale of this change can be found in #64103, #64104, #65341, and #67118.