Skip to content

Conversation

@max-charlamb
Copy link
Member

@max-charlamb max-charlamb commented Sep 3, 2025

APIs Implemented

Test run against new runtime-diagnostic tests: https://dev.azure.com/dnceng-public/public/_build/results?buildId=1144229&view=results

@dotnet-policy-service
Copy link
Contributor

Tagging subscribers to this area: @steveisok, @dotnet/dotnet-diag
See info in area-owners.md if you want to be subscribed.

@max-charlamb max-charlamb changed the title [cDAC] ISOSDacInterface16::GetGCDynamicAdaptationMode [cDAC] Remaining GC data APIs Sep 10, 2025
@max-charlamb max-charlamb marked this pull request as ready for review September 10, 2025 15:10
Copy link
Contributor

Copilot AI left a 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

Copy link
Member

@noahfalk noahfalk left a comment

Choose a reason for hiding this comment

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

LGTM

@noahfalk
Copy link
Member

fyi @Maoni0

@Maoni0
Copy link
Member

Maoni0 commented Sep 16, 2025

CC @mangod9

@max-charlamb max-charlamb merged commit 89c7dd1 into dotnet:main Sep 22, 2025
102 checks passed
@max-charlamb max-charlamb deleted the cdac-dynamicadaptationmode branch September 22, 2025 15:48
@github-actions github-actions bot locked and limited conversation to collaborators Oct 23, 2025
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.

4 participants