Skip to content

[WIP] Initial work porting native diagnostic server library to C library potentially shared between runtimes.#20351

Merged
lateralusX merged 1 commit intomono:masterfrom
monojenkins:sync-pr-41872-from-runtime
Oct 5, 2020
Merged

[WIP] Initial work porting native diagnostic server library to C library potentially shared between runtimes.#20351
lateralusX merged 1 commit intomono:masterfrom
monojenkins:sync-pr-41872-from-runtime

Conversation

@monojenkins
Copy link
Contributor

@monojenkins monojenkins commented Sep 4, 2020

!! This PR is a copy of dotnet/runtime#41872, please do not edit or review it in this repo !!
Do not automatically approve this PR:

* Consider how the changes affect configurations in this repo,
* Check effects on files that are not mirrored,
* Identify test cases that may be needed in this repo.

!! Merge the PR only after the original PR is merged !!



WIP.

PR handling port of Diagnostic Server C++ library from CoreCLR into a C library that can be shared between Mono as well as CoreCLR runtime. Port follows same guidelines setup for event pipe port dotnet/runtime#34600. Diagnostic server library is currently hosted as part of event pipe library but hosting its own runtime shim as well as source files (so could be split into separate library if ever make sense). Diagnostic Server have dependencies on event pipe library (and reuse part of event pipe runtime shim from its how shim).

This is the first PR getting the code from diagnostic server codebase over to C library. Once that is done there will be follow up PR's starting to enabling more of the CoreCLR tests suites over event pipe currently depending on diagnostic server and connection between diagnostic server and event pipe library.

Current state of this PR is port of most diagnostic server code + Windows PAL, but currently POSIX PAL is still WIP.

Diagnostic server processinfo, https://github.com/dotnet/runtime/tree/master/src/tests/tracing/eventpipe/processinfo, test pass running on Windows Mono.

TODO's before this PR can be merged:

  • Fix all builds (currently only validated on Windows).
  • Port POSIX PAL.
  • Get pass on process info on Linux/Mac enabling the test as part of PR.
  • Implement WriteEvent icall as well as starting IPC streaming thread in event pipe library.
  • Get pass on one test consuming event pipe data over IPC.

@monojenkins monojenkins force-pushed the sync-pr-41872-from-runtime branch 4 times, most recently from bcdb407 to b852081 Compare September 9, 2020 10:33
@monojenkins monojenkins force-pushed the sync-pr-41872-from-runtime branch 8 times, most recently from 92badd0 to e03bdba Compare September 23, 2020 10:58
@monojenkins monojenkins force-pushed the sync-pr-41872-from-runtime branch 4 times, most recently from b0f7750 to 7c15169 Compare October 1, 2020 08:38
…tentially shared between runtimes.

PR handling port of Diagnostic Server C++ library from CoreCLR into a C library that can be shared between Mono as well as CoreCLR runtime. Port follows same guidelines setup for event pipe port dotnet/runtime#34600. Diagnostic server library is currently hosted as part of event pipe library but hosting its own runtime shim as well as source files (so could be split into separate library if ever make sense). Diagnostic Server have dependencies on event pipe library (and reuse part of event pipe runtime shim from its own shim).

This is the first PR getting the code from diagnostic server codebase over to C library. Once that is done there will be follow up PR's starting to enabling more of the CoreCLR tests suites over event pipe currently depending on diagnostic server and connection between diagnostic server and event pipe library.

Diagnostic server processinfo, https://github.com/dotnet/runtime/tree/master/src/tests/tracing/eventpipe/processinfo, test pass running on Windows/Linux Mono.

eventpipe buffersize, https://github.com/dotnet/runtime/tree/master/src/tests/tracing/eventpipe/buffersize, test pass running on Windows/Linux Mono, connecting diagnostic server with eventpipe and IPC test clients and parsers.

TODO's before this PR can be merged:

- [x] Fix all builds (currently only validated on Windows).
- [x] Port POSIX PAL.
- [x] Get pass on process info on Linux/Mac enabling the test as part of PR.
- [x] Implement WriteEvent icall as well as starting IPC streaming thread in event pipe library.
- [x] Get pass on one test consuming event pipe data over IPC.
@monojenkins monojenkins force-pushed the sync-pr-41872-from-runtime branch from 7c15169 to a628496 Compare October 2, 2020 12:38
@lateralusX lateralusX self-requested a review October 3, 2020 00:53
@lateralusX lateralusX marked this pull request as ready for review October 5, 2020 07:23
@lateralusX lateralusX merged commit 77213d3 into mono:master Oct 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants