-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[cDAC] Remaining GC data APIs #119324
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
[cDAC] Remaining GC data APIs #119324
Conversation
|
Tagging subscribers to this area: @steveisok, @dotnet/dotnet-diag |
…runtime into cdac-dynamicadaptationmode
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements the remaining GC data APIs for the cDAC (compact Data Access Component) system, completing the transition from legacy DAC implementations. The changes focus on providing structured access to garbage collector internal data including heap analysis, segment information, out-of-memory data, and global GC mechanisms.
Key changes implemented:
- Implementation of heap analysis APIs (GetHeapAnalyzeData, GetHeapAnalyzeStaticData)
- Addition of heap segment data access (GetHeapSegmentData)
- Out-of-memory data retrieval APIs (GetOOMData, GetOOMStaticData)
- GC interesting info and global mechanisms APIs
- Dynamic adaptation mode support
Reviewed Changes
Copilot reviewed 14 out of 15 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| SOSDacImpl.cs | Implements concrete API methods replacing legacy delegations with cDAC implementations |
| ISOSDacInterface.cs | Updates interface definitions with strongly-typed parameters and adds new data structures |
| OOMHistory.cs | New data structure for out-of-memory history tracking |
| HeapSegment.cs | New data structure for heap segment information |
| GCHeapSVR.cs | Enhanced server GC heap data structure with additional fields for analysis |
| IGCHeap.cs | New interface defining common GC heap operations |
| GC_1.cs | Core GC contract implementation with new data retrieval methods |
| GCHeapWKS.cs | New workstation GC heap implementation |
| Constants.cs | Added global constants for new GC data arrays and mechanisms |
| DataType.cs | Added new data types for heap segments and OOM history |
| IGC.cs | Extended interface with new API signatures and data structures |
| datadescriptor.inc | Added C++ data descriptors for new heap segment and OOM history types |
| datadescriptor.h | Added field mappings for GC heap analysis and interesting data |
| GC.md | Updated documentation with new API signatures and data structures |
src/native/managed/cdac/Microsoft.Diagnostics.DataContractReader.Contracts/Contracts/GC/GC_1.cs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
|
fyi @Maoni0 |
Co-authored-by: Noah Falk <[email protected]>
|
CC @mangod9 |
APIs Implemented
internal_root_array#119396Test run against new runtime-diagnostic tests: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1144229&view=results