Rebase memory region API branch onto latest main to clean up PR diff#124926
Rebase memory region API branch onto latest main to clean up PR diff#124926
Conversation
… for memory region types Co-authored-by: max-charlamb <44248479+max-charlamb@users.noreply.github.com>
…p free region fields, and IGC contract methods Co-authored-by: max-charlamb <44248479+max-charlamb@users.noreply.github.com>
…Impl integration Co-authored-by: max-charlamb <44248479+max-charlamb@users.noreply.github.com>
Add GCMemoryRegionTests with three test methods covering: - GetHandleTableMemoryRegions: single map, bucket, and segment - GetGCBookkeepingMemoryRegions: single card table entry - GetGCFreeRegions: workstation GC with one free region All tests use [Theory] with [ClassData(typeof(MockTarget.StdArch))] to run across all four architecture combinations. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
@copilot , we need to update the cDAC docs and write tests for these new APIs |
Co-authored-by: max-charlamb <44248479+max-charlamb@users.noreply.github.com>
|
@copilot try again |
…eeping entries, empty/multiple free regions Co-authored-by: rcj1 <77995559+rcj1@users.noreply.github.com>
Updated the cDAC docs (GC.md) with new API types, data descriptors, globals, constants, and pseudocode for all three methods. Added 6 additional test methods covering edge cases (empty buckets, multiple linked segments, multiple bookkeeping entries, empty/multiple free regions). Total: 9 test methods × 4 architectures = 36 tests, all passing. See commit |
docs/design/datacontracts/GC.md
Outdated
|
|
||
| int maxSlots = 1; | ||
| if (IsServerGC()) | ||
| maxSlots = (int)GetGCHeapCount(); |
There was a problem hiding this comment.
Fixed in 6320ebd1. Changed maxSlots to read from TotalCpuCount (the processor count) instead of using GetGCHeapCount() for server GC, matching the fix in PR #124875. Added the TotalCpuCount global pointer to datadescriptor.inc (under SERVER_GC), Constants.Globals, and updated the GC.md pseudocode accordingly.
|
@copilot fix the build break |
|
Ah I will merge my changes into main and then this should work better |
…it in server GC Co-authored-by: rcj1 <77995559+rcj1@users.noreply.github.com>
|
@copilot, rebase on main, fix any merge conflicts, and update to follow new styles |
Co-authored-by: max-charlamb <44248479+max-charlamb@users.noreply.github.com>
|
@copilot try again |
…le merge artifacts Co-authored-by: rcj1 <77995559+rcj1@users.noreply.github.com>
…ebug.ValidateHResult Co-authored-by: rcj1 <77995559+rcj1@users.noreply.github.com>
Updated in |
…plicate SOSMemoryRegion/ISOSMemoryEnum definitions Co-authored-by: max-charlamb <44248479+max-charlamb@users.noreply.github.com>
This commit replaces the entire working tree with a clean version based on the latest main, containing only the PR-relevant memory region API changes. The previous merge from main introduced unrelated changes into the diff.
Description
The PR branch had accumulated a massive diff (1,093 files, 53K+ insertions, 9K+ deletions) due to a bad merge from
mainthat dragged unrelated changes into the PR. This commit resets the branch to latestmainand re-applies only the 16 files relevant to the cDAC memory region API implementation.Before: 1,093 files changed, 53,345 insertions, 9,120 deletions
After: 16 files changed, 1,262 insertions, 3 deletions
The actual PR content (memory region APIs) is unchanged — only the branch history was cleaned up:
docs/design/datacontracts/GC.md— new API types, data descriptors, globals, pseudocodesrc/coreclr/gc/datadescriptor/— native GC data descriptor definitionssrc/native/managed/cdac/.../Contracts/GC/GC_1.cs—GetHandleTableMemoryRegions,GetGCBookkeepingMemoryRegions,GetGCFreeRegionsimplementationssrc/native/managed/cdac/.../Legacy/SOSDacImpl.cs— legacy DAC integrationsrc/native/managed/cdac/tests/— unit tests and dump tests💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.