Skip to content

[cDAC] Remaining GC data APIs - #119324

Merged
max-charlamb merged 17 commits into
dotnet:mainfrom
max-charlamb:cdac-dynamicadaptationmode
Sep 22, 2025
Merged

[cDAC] Remaining GC data APIs#119324
max-charlamb merged 17 commits into
dotnet:mainfrom
max-charlamb:cdac-dynamicadaptationmode

Conversation

@max-charlamb

@max-charlambmax-charlamb commented Sep 3, 2025

Copy link
Copy Markdown
Member

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
Copy Markdown
Contributor

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

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

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

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
FileDescription
SOSDacImpl.csImplements concrete API methods replacing legacy delegations with cDAC implementations
ISOSDacInterface.csUpdates interface definitions with strongly-typed parameters and adds new data structures
OOMHistory.csNew data structure for out-of-memory history tracking
HeapSegment.csNew data structure for heap segment information
GCHeapSVR.csEnhanced server GC heap data structure with additional fields for analysis
IGCHeap.csNew interface defining common GC heap operations
GC_1.csCore GC contract implementation with new data retrieval methods
GCHeapWKS.csNew workstation GC heap implementation
Constants.csAdded global constants for new GC data arrays and mechanisms
DataType.csAdded new data types for heap segments and OOM history
IGC.csExtended interface with new API signatures and data structures
datadescriptor.incAdded C++ data descriptors for new heap segment and OOM history types
datadescriptor.hAdded field mappings for GC heap analysis and interesting data
GC.mdUpdated documentation with new API signatures and data structures

@noahfalknoahfalk left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

Comment threaddocs/design/datacontracts/GC.md Outdated
@noahfalk

Copy link
Copy Markdown
Member

fyi @Maoni0

Co-authored-by: Noah Falk <noahfalk@users.noreply.github.com>
@Maoni0

Copy link
Copy Markdown
Member

CC @mangod9

@max-charlamb
max-charlamb merged commit 89c7dd1 into dotnet:mainSep 22, 2025
102 checks passed
@max-charlamb
max-charlamb deleted the cdac-dynamicadaptationmode branch September 22, 2025 15:48
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Oct 23, 2025
Sign up for freeto 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.

5 participants

@max-charlamb@noahfalk@Maoni0@mangod9