-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Tracking: Diagnostic Server and EventPipe C++ to C backport #36820
Comments
Tagging subscribers to this area: @tommcdon |
@lateralusX I think you mentioned that you took the native code changes from #36242 (adding array types) already as part of #34600? Is that accurate? |
Just double checked and the changes are applied but in upcoming PR, so not yet merged. |
Updated table with new PR's affecting EventPipe code that needs to be ported over to Mono. |
Port changes done in the following CoreCLR PR's affecting corresponding Mono runtime EventPipe library sources: dotnet/runtime#36720 dotnet/runtime#37002 dotnet/runtime#38967 dotnet/runtime#40191 dotnet/runtime#40332 dotnet/runtime#40499 EventPipe native code changes track by dotnet/runtime#36820.
Port changes done in the following CoreCLR PR's affecting corresponding Mono runtime EventPipe library sources: dotnet/runtime#36720 dotnet/runtime#37002 dotnet/runtime#38967 dotnet/runtime#40191 dotnet/runtime#40332 dotnet/runtime#40499 EventPipe native code changes track by dotnet/runtime#36820. Co-authored-by: lateralusX <[email protected]>
could EventPipe work in mono runtime right now, it can use perf view for profiling ? |
No the complete end to end is WIP, working on diagnostic server port at the moment, once that is in place we should be able to start use tools like dotnet-counters. The complete EventPipe story on Mono is a bigger work item so before we have full perf view profiling in place there are some other work items to implement as well, but once we reached first "milestone" getting dotnet-coutners and several of the tests suites running, we will lay out work items to complete the perf view story. |
Updated table with new PR, #42307, affecting EventPipe/DiagnosticServer code that needs to be ported over to Mono. |
Added #43711 to list of tracked PR's. |
Has there been a consideration to deduplicate the effort, by drawing out some abstraction? CoreCLR, as is, is building and linking C components (libunwind sources, libSystem.Globalization sources, version.c etc.), so the parts of EventPipe code that is impartial to OOP can be moved to |
The ported library will be shared by both runtimes and once all is done there will only be one version that can be shared between both CoreClr and Mono (the C version of the library). There is also a shim abstracting all runtime specific details into a small set of files implemented by each runtime adapting the library. |
Backported all PR detected so far into C library. @josalem are you aware of any PR's currently missing from the list that needs to be backported into C library? I have looked through changes since last checkpoint but couldn't detect any additional PR's than the once already added to the list. |
I have a couple brewing, but since we've merged the C version, I can put them in directly. I can't think of any that you haven't already handled. |
@lateralusX now that we've switched to the C implementation by default, do we need this issue anymore? |
No, since changes will now be done in the shared code, we won't need this. We still might need a way to communicate changes done in runtime specific shim implementation that might make sense to the other runtimes, but that can probably be notified per PR. |
Once #41872 is merged, we will have the original C++ CoreCLR EventPipe + Diagnostic Server implementation, as well as the C shared (currently MonoVM) EventPipe Diagnostic Server code. They should not functionally diverge.
This issue is meant to track changes that land in the CoreCLR version that should be ported over to the shared version.
So far these are:
The text was updated successfully, but these errors were encountered: