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

Add Mono EventPipe rundown support. #47339

Conversation

lateralusX
Copy link
Member

Add support into Mono VM emitting rundown events into EventPipe stream. All rundown events emitted by CoreClr during EventPipe rundown phase are now also emitted by Mono, making sure enough meta information is available for tooling to correctly resolve callstacks (not yet emitted) included in EventPipe events emitted by Mono VM.

Re-eanble couple of runtime tests disabled on Mono due to lack of rundown events.

@lateralusX lateralusX changed the title [WIP] Add mono eventpipe rundown support. [WIP] Add Mono EventPipe rundown support. Jan 22, 2021
@lateralusX lateralusX changed the title [WIP] Add Mono EventPipe rundown support. Add Mono EventPipe rundown support. Jan 26, 2021
@lateralusX lateralusX marked this pull request as ready for review January 26, 2021 10:54
Add support into Mono VM emitting rundown events into EventPipe stream.
All rundown events emitted by CoreClr during EventPipe rundown phase
are now also emitted by Mono, making sure enough meta information
is available for tooling to correctly resolve callstacks (not yet emitted)
included in EventPipe events emitted by Mono VM.
Reduce heap allocations for all strings emitted in rundown. Support
buffer in place conversions.
@lateralusX lateralusX force-pushed the lateralusX/add-mono-eventpipe-rundown-support branch from 7bb4859 to 1f6cd97 Compare January 26, 2021 11:38
Copy link
Member

@lambdageek lambdageek left a comment

Choose a reason for hiding this comment

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

Mono bits mostly look ok. A couple of nits. Really the only important bit is to add new glib.h symbols to eglib-remap.h, too.

@lateralusX lateralusX force-pushed the lateralusX/add-mono-eventpipe-rundown-support branch from 1f6cd97 to a418192 Compare January 27, 2021 13:15
@josalem
Copy link
Contributor

josalem commented Jan 27, 2021

Have you tried collecting a trace using dotnet-trace then opening it in PerfView or VS? I imagine that the end-to-end success criteria for this should be getting stacks for a simple trace.

@lateralusX
Copy link
Member Author

Have you tried collecting a trace using dotnet-trace then opening it in PerfView or VS? I imagine that the end-to-end success criteria for this should be getting stacks for a simple trace.

Collecting stack traces is not yet implemented on Mono. Plan was to build on top of this and implement sample profiler + stack traces and when that is done I will run end-to-end test. I have matched the event and data emitted by CoreClr during rundown in this PR, so most of the information should already be included in the stream once the stack traces are added into the mix. If there are issues detected parsing stack traces due to rundown events I will fix that in upcoming PR's.

@lateralusX lateralusX merged commit 8c5d4c7 into dotnet:master Jan 28, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Feb 27, 2021
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.

3 participants