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

Implement PerfMap generation in Crossgen2 #44123

Closed
trylek opened this issue Nov 1, 2020 · 6 comments
Closed

Implement PerfMap generation in Crossgen2 #44123

trylek opened this issue Nov 1, 2020 · 6 comments
Assignees
Milestone

Comments

@trylek
Copy link
Member

trylek commented Nov 1, 2020

As part of replacing Crossgen with Crossgen2, we need an equivalent of the Crossgen option /CreatePerfMap.

@trylek trylek added this to the 6.0.0 milestone Nov 1, 2020
@trylek trylek self-assigned this Nov 1, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Nov 1, 2020
@trylek trylek removed the untriaged New issue has not been triaged by the area owner label Nov 1, 2020
@trylek
Copy link
Member Author

trylek commented Nov 1, 2020

@davidwrighton / @janvorli - assuming I implement the PerfMap format, how do I go about testing it? I'm getting it's somehow related to PerfView and Linux, is the workflow described somewhere?

@trylek
Copy link
Member Author

trylek commented Nov 1, 2020

One thing that comes to mind in particular is the function signature formatting; are we required to replicate CoreCLR MethodDesc formatting?

@davidwrighton
Copy link
Member

@trylek, you'll need to talk to @brianrob, and see what the implications are. You want to understand the interactions with the perfcollect script and perfview.

@trylek
Copy link
Member Author

trylek commented Feb 7, 2021

OK, so technically both Crossgen2 and R2RDump support generating perfmaps now (as of #47019). I guess that the remaining bit needed to close this item is to actually validate that PerfMap works as expected. I performed a round of local testing of PDB generator using PerfView based on David's advice but I merged in the PerfMap generator based on just visual validation of the file format as there's currently no workflow in existence to actually exercise it.

@brianrob, would you be willing to work with me on figuring out the plan for the next step i.e. switching perfcollect to somehow use the Crossgen2 / R2RDump infrastructure for generating R2R PerfMap files, validating the new diagnostic experience and ideally fixing this validation in terms of some diagnostic lab testing?

FYI @hoyosjs @agocke @tommcdon

@brianrob
Copy link
Member

brianrob commented Feb 9, 2021

@trylek, definitely. This is probably a relatively trivial change to perfcollect. It's important for versions of perf that can't process jitdumps (this is the format that the Linux perf tool can consume to resolve non-ELF symbols), but this is becoming less and less common.

@trylek
Copy link
Member Author

trylek commented Jul 20, 2021

I believe that the remaining work on perfmap files is tracked by https://github.com/dotnet/sdk/issues/18813 and this issue can be closed.

@trylek trylek closed this as completed Jul 20, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 19, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants