-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
superpmi: crossgen and PMI collection "clean phase" replay failures #47546
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone
Comments
BruceForstall
added
the
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
label
Jan 27, 2021
dotnet-issue-labeler
bot
added
the
untriaged
New issue has not been triaged by the area owner
label
Jan 27, 2021
BruceForstall
removed
the
untriaged
New issue has not been triaged by the area owner
label
Jan 27, 2021
This comment was marked as outdated.
This comment was marked as outdated.
This was referenced Aug 2, 2023
jakobbotsch
added a commit
to jakobbotsch/runtime
that referenced
this issue
Aug 2, 2023
We have various tests where getNewHelper throws an EE exception, so capture these and rethrow them as part of SPMI. It would be nice with a more general approach to this (conceptually all EE APIs could throw exceptions), but this at least handles it for our own libraries. Contributes to dotnet#47540 and dotnet#47546.
This comment was marked as outdated.
This comment was marked as outdated.
jakobbotsch
added a commit
that referenced
this issue
Aug 6, 2023
… shape a bit (#89852) We have various tests where getNewHelper throws an EE exception, so capture these and rethrow them as part of SPMI. It would be nice with a more general approach to this (conceptually all EE APIs could throw exceptions), but this at least handles it for our own libraries. Contributes to #47540 and #47546. Also clean up the API shape of getNewHelper slightly, since this requires a JIT-EE GUID change anyway; the only used member of the token is the class, so pass a class handle instead. The second parameter was also removed.
In the latest SPMI collection, which includes #90016 and #89852 we have 132/1882 logs with failures or misses:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
area-CodeGen-coreclr
CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Related: #47540
Part of the SuperPMI collection process is to "clean" the collection. This takes the collected assets, runs a SuperPMI replay on them, and delete the method contexts (functions) that fail to replay. Thus, the final result replay is error-free. As long as there aren't too many functions removed, we still get great coverage and utility from the collection.
However, each of these failures indicates a potential bug (or limitation) in SuperPMI. We should track down the failures, figure out why they occur, and fix SuperPMI or the JIT, VM, or JIT interface protocols, as necessary.
For a sample crossgen collection of the libraries using this command (Windows x64 Checked):
The "clean" phase encountered 680 failures (out of 197906 compilations).
category:eng-sys
theme:super-pmi
skill-level:expert
cost:large
impact:medium
The text was updated successfully, but these errors were encountered: