-
Notifications
You must be signed in to change notification settings - Fork 6.2k
8367708: GenShen: Reduce total evacuation burden #27278
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
Changes from 50 commits
702710e
61b575f
51d056f
ba98e42
441487c
dafc363
c4c252e
41ba86a
f215a70
4d6b5cd
7fe605f
2e224f6
46ad5c6
9a1989d
4126c22
981692e
3a67b1f
3692312
045590b
fbbd88c
7e0edf0
3525369
fe0da51
db12fe5
0440bae
3bdc022
1ee2ff1
e6e772f
c5a159e
e7ca4f8
42a93c7
3841ca6
9386e90
0252a5c
e029b8c
72ad42e
7a20ef2
49f8589
ef668c8
1ea9b3e
d9170a1
bc28a38
578b240
9b076f7
02a47e6
dfd24cc
d46ece0
e134bbf
6b1ddc1
6fc458a
69a7600
1ff5149
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -838,7 +838,7 @@ class ShenandoahHeap : public CollectedHeap { | |
static inline void atomic_clear_oop(narrowOop* addr, oop compare); | ||
static inline void atomic_clear_oop(narrowOop* addr, narrowOop compare); | ||
|
||
size_t trash_humongous_region_at(ShenandoahHeapRegion *r) const; | ||
size_t trash_humongous_region_at(ShenandoahHeapRegion *r); | ||
|
||
|
||
static inline void increase_object_age(oop obj, uint additional_age); | ||
|
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -34,6 +34,20 @@ | |
range, \ | ||
constraint) \ | ||
\ | ||
product(uintx, ShenandoahGenerationalMinPIPUsage, 30, EXPERIMENTAL, \ | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Looking at this quite late, but thought I'd leave these comments here nonetheless. While I agree that copying takes up cycle time and cpu, there is a potential space cost to promoting in place regions with substantial garbage. Why was 30% used (i.e. 70% garbage) considered reasonable? I'd have expected something like 50 or a tad higher used (i.e. less than 50% garbage) to be eligible for PIP. Did higher values not work well for specific benchmarks that were used to pick this threshold? |
||
"(Generational mode only) What percent of a heap region " \ | ||
"should be used before we consider promoting a region in " \ | ||
"place? Regions with less than this amount of used will " \ | ||
"promoted by evacuation. A benefit of promoting in place " \ | ||
"is that less work is required by the GC at the time the " \ | ||
"region is promoted. A disadvantage of promoting in place " \ | ||
"is that this introduces fragmentation of old-gen memory, " \ | ||
"with old-gen regions scattered throughout the heap. Regions " \ | ||
"that have been promoted in place may need to be evacuated at " \ | ||
"a later time in order to compact old-gen memory to enable " \ | ||
"future humongous allocations.") \ | ||
range(0,100) \ | ||
\ | ||
product(uintx, ShenandoahGenerationalHumongousReserve, 0, EXPERIMENTAL, \ | ||
"(Generational mode only) What percent of the heap should be " \ | ||
"reserved for humongous objects if possible. Old-generation " \ | ||
|
@@ -165,7 +179,7 @@ | |
"collector accepts. In percents of heap region size.") \ | ||
range(0,100) \ | ||
\ | ||
product(uintx, ShenandoahOldGarbageThreshold, 15, EXPERIMENTAL, \ | ||
product(uintx, ShenandoahOldGarbageThreshold, 25, EXPERIMENTAL, \ | ||
"How much garbage an old region has to contain before it would " \ | ||
"be taken for collection.") \ | ||
range(0,100) \ | ||
|
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.
Is this intentional? This looks like it would reintroduce #26256 (crash trying to access size of humongous object after its class has been unloaded).
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.
good catch. I'll change how this is implemented.
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.
I've fixed this.