Skip to content
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

Dynamic heap count #86245

Merged
merged 74 commits into from
May 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
e9b4114
Implementation of redistribute_regions along with some hacks to enabl…
PeterSolMS Mar 9, 2023
281f7f3
More changes to support dynamic heap count:
PeterSolMS Mar 21, 2023
5317634
Incorporate handle table changes, fix mark_list_piece, mark_list sizing.
PeterSolMS Mar 23, 2023
dd8d536
rethreading freelists
PeterSolMS Mar 25, 2023
8319f84
Merge branch 'main' into redistribute_regions
PeterSolMS Mar 25, 2023
9e87004
fixed #ifdef for segments version
PeterSolMS Mar 25, 2023
9d8d628
Enhancements:
PeterSolMS Mar 31, 2023
6deeb03
Rethread free lists for the other generations.
PeterSolMS Apr 3, 2023
6bb064a
- Fix free list rethreading issue
PeterSolMS Apr 4, 2023
c2a8ef0
Fixes for GCC compiler.
PeterSolMS Apr 4, 2023
5d9ebf8
Rename restribute_regions to change_heap_count, refactor code, add ch…
PeterSolMS Apr 6, 2023
588631d
Merge branch 'main' into redistribute_regions
PeterSolMS Apr 6, 2023
e6c8b5f
Fix compile error with segments.
PeterSolMS Apr 6, 2023
4951346
misc change to get repros
Apr 9, 2023
9af5141
got rid of code no longer needed
Apr 9, 2023
9d315e4
different way of handling decommissioned heaps
Apr 9, 2023
204645d
do not set some fields to 0 when recommissioing a heap as we concurre…
Apr 10, 2023
c2f1187
enabled msl and loh alloc state recording
Apr 11, 2023
51f3c8c
Compile coreclr.dll with regions, enable memory mapped stresslog
PeterSolMS Apr 11, 2023
f539f60
Merge with main.
PeterSolMS Apr 11, 2023
72538a7
Fix compilation error after merge.
PeterSolMS Apr 11, 2023
4833f63
Implementation of redistribute_regions along with some hacks to enabl…
PeterSolMS Mar 9, 2023
fbfe7b3
More changes to support dynamic heap count:
PeterSolMS Mar 21, 2023
bf782eb
Incorporate handle table changes, fix mark_list_piece, mark_list sizing.
PeterSolMS Mar 23, 2023
51277e5
rethreading freelists
PeterSolMS Mar 25, 2023
8a45544
fixed #ifdef for segments version
PeterSolMS Mar 25, 2023
20efbb4
Enhancements:
PeterSolMS Mar 31, 2023
67677a8
Rethread free lists for the other generations.
PeterSolMS Apr 3, 2023
e9f45c7
- Fix free list rethreading issue
PeterSolMS Apr 4, 2023
129c141
Fixes for GCC compiler.
PeterSolMS Apr 4, 2023
91d8f65
Rename restribute_regions to change_heap_count, refactor code, add ch…
PeterSolMS Apr 6, 2023
18203da
Fix compile error with segments.
PeterSolMS Apr 6, 2023
3fe61e6
misc change to get repros
Apr 9, 2023
2e6f4c4
got rid of code no longer needed
Apr 9, 2023
c8321f4
different way of handling decommissioned heaps
Apr 9, 2023
ec8fb6b
do not set some fields to 0 when recommissioing a heap as we concurre…
Apr 10, 2023
2610c7d
enabled msl and loh alloc state recording
Apr 11, 2023
df1f49b
Compile coreclr.dll with regions, enable memory mapped stresslog
PeterSolMS Apr 11, 2023
2190fb2
Fix compilation error after merge.
PeterSolMS Apr 11, 2023
0f390be
Merge branch 'redistribute_regions' of https://github.com/petersolMS/…
PeterSolMS Apr 19, 2023
0828d6b
Merge with main, cleanup, remove demotion related changes.
PeterSolMS Apr 20, 2023
6597f6a
Merge branch 'main' into redistribute_regions
PeterSolMS Apr 20, 2023
fa4cf11
Small change to make spin lock logic clearer.
PeterSolMS Apr 20, 2023
7a26065
Changes to start at one heap and then adjust according to work load.
PeterSolMS Apr 25, 2023
c47cb3d
Fix issues in grow_mark_list and SplitFinalizationData, adjust heap c…
PeterSolMS Apr 26, 2023
259794c
Use only half the median of the number of allocating threads for heap…
PeterSolMS Apr 26, 2023
4cd3741
Compute median in a better way.
PeterSolMS Apr 26, 2023
99701dd
Address code review feedback.
PeterSolMS May 2, 2023
2e2cddb
Address code review feedback:
PeterSolMS May 8, 2023
0d4478a
Undo white space change
PeterSolMS May 8, 2023
fa366af
Merge from redistribute_regions PR.
PeterSolMS May 8, 2023
e3db222
Improve comments, rearrange code for clarity - put the steps first th…
PeterSolMS May 8, 2023
ab2f304
Merge branch 'redistribute_regions' into dynamic_heap_count
PeterSolMS May 8, 2023
c7ba281
Make dynamic heap count more real:
PeterSolMS May 10, 2023
6bfa40c
add comment explaining bug fix
PeterSolMS May 10, 2023
211f9f0
Fix issue where I didn't set the heap for basic regions contained in …
PeterSolMS May 10, 2023
2568fe4
Port 3 bug fixes from dynamic_heap_count branch.
PeterSolMS May 11, 2023
717bc5d
Small fixes and changes:
PeterSolMS May 11, 2023
51166e2
Fixes:
PeterSolMS May 11, 2023
c6ebe47
Parallelize rethreading of free lists, #ifdef _DEBUG some related che…
PeterSolMS May 11, 2023
776e52c
Remove extra comma inserted accidentally.
PeterSolMS May 15, 2023
6f6a62b
Enhance comments in change_heap_count.
PeterSolMS May 15, 2023
edbd40a
Merge with main.
PeterSolMS May 15, 2023
5766439
Remove extra comma accidentally inserted.
PeterSolMS May 15, 2023
92dd581
Changes to dynamic heap count logic:
PeterSolMS May 16, 2023
3f79600
Enable dynamic heap count instrumentation temporarily, limit gen 0 si…
PeterSolMS May 16, 2023
91c44d9
Merge with main
PeterSolMS May 18, 2023
c365d92
Fix GCC warning messages.
PeterSolMS May 18, 2023
55e0613
More GCC warning work.
PeterSolMS May 18, 2023
87c1bea
Merge with changes in redistribute_regions branch.
PeterSolMS May 18, 2023
1d98155
Disable TRACE_GC, fix to get rid of GCC warning about signed/unsigned…
PeterSolMS May 18, 2023
60d42cd
Re-initialize dd_fragmentation and dd_gc_clock when putting a heap ba…
PeterSolMS May 22, 2023
813b7ea
Fix overflowing size computation at the beginning of compute_new_dyna…
PeterSolMS May 22, 2023
e70d4a6
Replace assert with an if-statement. This does not fix the root cause…
PeterSolMS May 23, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,283 changes: 2,165 additions & 118 deletions src/coreclr/gc/gc.cpp

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion src/coreclr/gc/gcconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,8 @@ class GCConfigStringHolder
INT_CONFIG (GCConserveMem, "GCConserveMemory", "System.GC.ConserveMemory", 0, "Specifies how hard GC should try to conserve memory - values 0-9") \
INT_CONFIG (GCWriteBarrier, "GCWriteBarrier", NULL, 0, "Specifies whether GC should use more precise but slower write barrier") \
STRING_CONFIG(GCName, "GCName", "System.GC.Name", "Specifies the path of the standalone GC implementation.") \
INT_CONFIG (GCSpinCountUnit, "GCSpinCountUnit", 0, 0, "Specifies the spin count unit used by the GC.")
INT_CONFIG (GCSpinCountUnit, "GCSpinCountUnit", 0, 0, "Specifies the spin count unit used by the GC.") \
BOOL_CONFIG (GCDynamicAdaptation, "GCDynamicAdaptation", NULL, false, "Enables varying the heap count dynamically in Server GC.")
// This class is responsible for retreiving configuration information
// for how the GC should operate.
class GCConfig
Expand Down
2 changes: 2 additions & 0 deletions src/coreclr/gc/gcinterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -1033,6 +1033,7 @@ struct ScanContext
{
Thread* thread_under_crawl;
int thread_number;
int thread_count;
uintptr_t stack_limit; // Lowest point on the thread stack that the scanning logic is permitted to read
bool promotion; //TRUE: Promotion, FALSE: Relocation.
bool concurrent; //TRUE: concurrent scanning
Expand All @@ -1050,6 +1051,7 @@ struct ScanContext

thread_under_crawl = 0;
thread_number = -1;
thread_count = -1;
stack_limit = 0;
promotion = false;
concurrent = false;
Expand Down
Loading