-
Notifications
You must be signed in to change notification settings - Fork 5k
Profiling x64 processes can’t resolve R2R symbols #72578
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
Comments
Tagging subscribers to this area: @tommcdon |
Note this is not just x64. I see similar issues on arm64. |
@AndyAyersMS I am having trouble reproducing this, can you share what you were doing when you saw the failures? |
Looking at the profile from See #71214 (comment) |
I ran that same benchmark and can see events from r2r and non-r2r bodies. Oddly, I don't see the [Optimized...] and such annotations. |
Let me see if I can still repro.
There is a tiering-annotated profile under the advanced group in perfview. |
This still repros for me, eg using the latest nightly build (on windows arm64) and the sort benchmark from #71214: There is no way this benchmark is spending 86% of its time in Similar thing shows up in the normal profile view. |
Sent it to you via email. |
If I'm parsing this right the PDB it finds seems awfully small
|
A local build on a native x64 machine and the ni pdb's for 6.0.7 are all ~3mb. They don't contain much info - just symbol to native offset, but no line info. EDIT: meant to say this is expected - cvdump shows the functions with offsets and are roughtly the same size. |
@mangod9 could you have someone look in to what Andy is reporting above? He is investigating a trace where the symbols for System.Private.CoreLib (which is R2R) are loaded, but methods are resolving incorrectly. |
Adding @AntonLapounov since he had investigated a similar issue earlier in 7. |
Do we know if this is a regression or we had similar behavior in 6 ? |
I'll try the same thing on 6.0 |
@AndyAyersMS Could you please share the exact repro steps? |
6.0 profile looks similar. It could be a broken benchmark perhaps.
See #71214 (comment) |
If it affects only few benchmarks and not a regression, we should remove the 'blocking-release' label. |
Agreed and removed |
Not sure how many benchmarks are affected. This one is perhaps unusual in that R2R code figures prominently during the "actual" intervals (which is not typical, we usually try and measure Tier1 code). |
That was not helpful. I can run |
Sorry, here's something more specific:
The above will create two ETL files. Look at those with perfview.
|
Thank you, I have reproduced the issue with SDK 6.0.303. I see the same behavior in Windows Performance Analyzer, so the issue is not specific to PerfView. Both apps show |
Possibly? The data is there but you might need a custom parser and I think there is possibly some cleverness in how it's encoded. @brianrob would likely know but I think he's OOF (or soon to be) You might try peeking at the perfview log, sometimes they spew interesting stuff there. |
I think I identified the issue. Below is a snippet from cvdump output for
According to R2RDump, that gap actually contains
contains one of There are 28,822 ReadyToRun methods in |
Thanks @AntonLapounov -- sounds like real progress. Hopefully not too hard to fix. |
The text was updated successfully, but these errors were encountered: