Skip to content
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

Suppress OSR for crossgen2 execution #62968

Merged
merged 2 commits into from
Dec 18, 2021

Conversation

AndyAyersMS
Copy link
Member

In CI testing, crossgen2 currently is run via a .NET 6 runtime, and
that runtime has some bugs in OSR.

Work around by suppressing OSR for the duration of the run. We should
be able to revert this once we update the crossgen2 runtime
to a .NET 7 version.

In CI testing, crossgen2 currently is run via a .NET 6 runtime, and
that runtime has some bugs in OSR.

Work around by suppressing OSR for the duration of the run. We should
be able to revert this once we update the crossgen2 runtime
to a .NET 7 version.
@AndyAyersMS
Copy link
Member Author

cc @trylek @dotnet/jit-contrib

This should allow the jit-experimental CI legs to run cleanly.

@AndyAyersMS
Copy link
Member Author

/azp run runtime-jit-experimental

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

Copy link
Member

@trylek trylek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great, thank you! These suppressions are a nasty hack that's likely to continue to bite us in the future, I'm wondering whether we might be able to devise some more robust scheme, I'll think about it during the holidays ;-).

@AndyAyersMS
Copy link
Member Author

So far: one crossgen2 test doesn't use the normal execution path, so is still getting run and is failing for OSR: readytorun\multifolder. Will push a commit to try and fix that once the rest of the tests have finished.

@trylek
Copy link
Member

trylek commented Dec 17, 2021

Hmm, sorry about that one, I think that was originally created by me, it was supposed to exercise then new multi-component composite builds that are to this day beyond the scope of scripting used for "normal" CG2 tests.

@trylek
Copy link
Member

trylek commented Dec 17, 2021

In other words, if you end up having a hard time to make the test work, it shouldn't be a big deal to just disable it with an issues.targets entry and the core runtime team will tackle it as part of the .NET 7 feature work.

@AndyAyersMS
Copy link
Member Author

It looks like it can get a similar fix -- it may end up disabling OSR for the running of the test as well, but that seems ok for now.

@AndyAyersMS
Copy link
Member Author

That turned out to be the only issue remaining.

@MichalStrehovsky
Copy link
Member

Looks great, thank you! These suppressions are a nasty hack that's likely to continue to bite us in the future, I'm wondering whether we might be able to devise some more robust scheme, I'll think about it during the holidays ;-).

Crossgen2 is one of the 1st party candidates for NativeAOT adoption in .NET 7. If we AOT compile crossgen2, these environment variables will no longer affect it. AOT compiling crossgen2 will also have other advantages based on my past experiments (#37411 (comment)).

@AndyAyersMS AndyAyersMS merged commit 2abbe5b into dotnet:main Dec 18, 2021
@AndyAyersMS AndyAyersMS deleted the ExcludeOSRForCrossgen2Execution branch December 18, 2021 07:09
@ghost ghost locked as resolved and limited conversation to collaborators Jan 17, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants