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

Expand old on demand #248

Closed
wants to merge 155 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
8af99ec
Increments of progress on auto-sizing refinements
kdnilsen Feb 8, 2023
e3f5529
Misc bug fixes and performance improvements to auto-sizing
kdnilsen Feb 11, 2023
f85648b
Simplify mutator-time calculation
kdnilsen Feb 12, 2023
54fdce4
Performance improvements
kdnilsen Feb 13, 2023
2fdce04
Fixes to FreeSet implementation to improve performance
kdnilsen Feb 15, 2023
6fb6c9d
Fix syntax error
kdnilsen Feb 16, 2023
fee8506
Test for req.is_lab_alloc() before testing req.min_size()
kdnilsen Feb 16, 2023
0de2291
Put future budgeting code behind test for mode->is_generational
kdnilsen Feb 16, 2023
1c8f793
Fix single-gen initialization
kdnilsen Feb 17, 2023
9242af6
Fix error in plab accounting for promotions
kdnilsen Feb 17, 2023
1c883d4
Minor refactoring and some logging improvements
kdnilsen Feb 17, 2023
f603430
Fix assertion syntax errors
kdnilsen Feb 17, 2023
d3c9796
Relax constraint on thread assertion
kdnilsen Feb 17, 2023
132250e
Add support for promote in place
kdnilsen Feb 20, 2023
090b5f6
Promote regular regions in place
kdnilsen Feb 22, 2023
a8c22f9
During evacuation of promote-in-place regions, use a special garbage api
kdnilsen Feb 24, 2023
a5a9ac1
Fix calculation of old-region surplus and deficit
kdnilsen Feb 25, 2023
dbbfb46
Force evacuation even when collection set is empty if promote in place
kdnilsen Feb 26, 2023
b3176c8
Arrange to coalesce-and-fill regions promoted in place
kdnilsen Feb 27, 2023
67c4531
Several fixes to run in single-generation mode
kdnilsen Feb 26, 2023
e7d3442
Fix bugs with GLOBAL collections
kdnilsen Mar 1, 2023
fb536ef
Add heuristic triggers for old-gen collection
kdnilsen Mar 2, 2023
5b93775
Remove anti-pattern code to disable mixed evac when young under duress
kdnilsen Mar 3, 2023
ea20f11
Initialize two fields of ShenandoahHeap
kdnilsen Mar 3, 2023
a72669e
Disqualify from promotion if !region->has_live()
kdnilsen Mar 3, 2023
e061eae
Fix up several assert statements
kdnilsen Mar 3, 2023
aff8b6d
Fix verification error when regions are promoted in place
kdnilsen Mar 4, 2023
72b225f
Add automatic triggering of old-gen collections
kdnilsen Mar 7, 2023
8347c2f
Several small bug fixes
kdnilsen Mar 7, 2023
7b3a7a4
Fix bugs in humongous waste accounting
kdnilsen Mar 8, 2023
b76bd0b
Fix another bug in humongous waste accounting
kdnilsen Mar 8, 2023
8dc4015
Another fix to humongous accounting
kdnilsen Mar 8, 2023
85e272d
Remember top_before_promoted even for regions with excessive garbage
kdnilsen Mar 8, 2023
946d162
Fix computation of humongous bytes promoted in place
kdnilsen Mar 9, 2023
ce96aa6
Fix assert to allow fullgc worker threads
kdnilsen Mar 9, 2023
aa37bcd
Fix two assertions to apply only in generational mode
kdnilsen Mar 9, 2023
895827d
Give special handling to certain assertions during full gc
kdnilsen Mar 10, 2023
6cb9e6a
Tidy up ShenandoahMMuTracker implementation for upstreaming
kdnilsen Mar 10, 2023
801cc63
Fix humongous waste accounting in make_trash and adjust old triggers
kdnilsen Mar 13, 2023
90d00ca
Do not enable_plab_promotions in try_evacuate_object
kdnilsen Mar 13, 2023
f078246
Enable PLAB allocations for every thread at start of evacuation
kdnilsen Mar 13, 2023
9237ed0
Cleanup some assertions so failures do not trigger in traditional Shen
kdnilsen Mar 13, 2023
9cfa3a9
Account for regular regions promoted in place promptly
kdnilsen Mar 15, 2023
f7cbedd
Remove redundant assertion
kdnilsen Mar 15, 2023
727c231
Force transfer of 1 region to old when regular region promoted in place
kdnilsen Mar 15, 2023
d0703bd
Increase affiliated old regions before increasing used after promote …
kdnilsen Mar 15, 2023
31cd39f
FullGC to recompute humongous waste and generations to relax min/max
kdnilsen Mar 15, 2023
9ff06f1
Remove deprecated command-line options
kdnilsen Mar 15, 2023
33a1a92
Only increase ShenandoahFreeSet used for mutator allocations
kdnilsen Mar 16, 2023
1bb71d4
Disable certain free-set assertions until old-collector-is-free imple…
kdnilsen Mar 16, 2023
ebaee0f
Do not consider OLD humongous regions for promotion in place
kdnilsen Mar 16, 2023
bfbf9d6
Only call try_allocate_in() if region known to have free memory
kdnilsen Mar 16, 2023
71622af
Disable min-threshold trigger for OLD GC
kdnilsen Mar 16, 2023
a52e43d
Adjust leftmost and rightmost when adding old_collector_is_free region
kdnilsen Mar 17, 2023
8990a0a
Adjust asserts for different execution modes
kdnilsen Mar 17, 2023
35c8a14
Fix code related to plab alignment in try_allocate_in
kdnilsen Mar 17, 2023
f7a07d3
Refinements to faciliate upstreaming of MMU components
kdnilsen Mar 21, 2023
a39810e
Merge remote-tracking branch 'GitFarmTrunk/shenandoah' into expand-ol…
kdnilsen Mar 21, 2023
2a98e49
Consistently do not account for generation usage in non-generational …
kdnilsen Mar 23, 2023
80a4c29
Tidy up humongous accounting
kdnilsen Mar 23, 2023
360fd0b
Fill old-gen regions with waste object when remaining memory is small
kdnilsen Mar 24, 2023
58ce39d
Style and substantive refinments upon review of merge conflicts
kdnilsen Mar 24, 2023
d6b9ce4
Revert accidental change that counts waste toward SH::used()
kdnilsen Mar 25, 2023
b483658
Do not increase used for generations in non-gen mode at region retire…
kdnilsen Mar 25, 2023
89e8559
Merge remote-tracking branch 'origin/shenandoah' into expand-old-on-d…
kdnilsen Mar 31, 2023
93a459e
Disable redundant calculation of generation usage
kdnilsen Apr 1, 2023
6cecec6
Disable over-zealous assertions
kdnilsen Apr 3, 2023
ce120c6
Fix initialization error and add object registration for fill object
kdnilsen Apr 5, 2023
9094984
Add asserts to assure fill_objects are sufficiently large
kdnilsen Apr 5, 2023
581d2ee
Fix indentation and brace nesting in ShenandoahFreeSet::allocate_single
kdnilsen Apr 6, 2023
0836fd0
Merge remote-tracking branch 'GitFarmBranch/expand-old-on-demand' int…
kdnilsen Apr 6, 2023
ad5443f
Fix a missing curly brace (manual merge conflict resolution error)
kdnilsen Apr 6, 2023
4d532f4
Remove extraneous whitespace and instrumentation
kdnilsen Apr 6, 2023
624fe58
Fix whitespace errors
kdnilsen Apr 7, 2023
40ba78b
Fix more whitespace errors
kdnilsen Apr 7, 2023
da2de28
Address a regression in processing of preselected regions
kdnilsen Apr 8, 2023
c64971f
Polish to facilitate code reviews
kdnilsen Apr 8, 2023
6ba51a8
More precisely limit old-gen collection set
kdnilsen Apr 9, 2023
a081fba
Fix error in commment
kdnilsen Apr 9, 2023
be61840
Fix initialization error and remove extraneous typo
kdnilsen Apr 10, 2023
9f0b545
Remove an invalid assertion
kdnilsen Apr 12, 2023
18217b4
Correct miscalculation of fill size
kdnilsen Apr 12, 2023
fc85f08
Remove infrastructure to adjust generation capacities for loans from old
kdnilsen Apr 12, 2023
0b8450b
Fixup whitespace and comments
kdnilsen Apr 13, 2023
ab20785
Remove unreferenced variable
kdnilsen Apr 13, 2023
1fef794
Do not verify usage accounting at start of Full GC
kdnilsen Apr 15, 2023
6c5cb83
Refine generational assertions for full-gc mode
kdnilsen Apr 15, 2023
585116d
Degen GC needs to evacuate even if cset is empty in some cases
kdnilsen Apr 15, 2023
9a15b8e
Overwrite update_water_mark in ShenandoahHeapRegion::promote_in_place
kdnilsen Apr 16, 2023
8bf0336
Fix my fix for overwriting update_watermark in promote_in_place
kdnilsen Apr 16, 2023
52ddd21
Fix whitespace errors
kdnilsen Apr 16, 2023
4bb5649
Merge remote-tracking branch 'origin' into expand-old-on-demand
kdnilsen Apr 17, 2023
157d42d
Do not call min_threshold unless generation is not old
kdnilsen Apr 17, 2023
23b8b39
Merge remote-tracking branch 'origin' into expand-old-on-demand
kdnilsen Apr 19, 2023
8f21279
Minor comment fixups following merge
kdnilsen Apr 20, 2023
0cc23fd
Disable certain assertions for global generation
kdnilsen Apr 21, 2023
339137c
Make verifier adjust for deferred accounting of humongous waste
kdnilsen Apr 22, 2023
3bce0b1
Fix assert to use <= insted of <
kdnilsen Apr 22, 2023
5ab4fd1
More fixes to verification of deferred generation accounting
kdnilsen Apr 22, 2023
fa77116
Merge remote-tracking branch 'origin' into expand-old-on-demand
kdnilsen Apr 25, 2023
9b12b2c
Remove redundant manipulation of tams at allocate_contiguous
kdnilsen Apr 26, 2023
b3b1ed9
Fix assert
kdnilsen Apr 26, 2023
f13b55b
Enable certain tests
kdnilsen Apr 26, 2023
abcb1cc
Fix loop that selects old-gen candidates for subsequent mixed evac
kdnilsen Apr 26, 2023
c485c00
Tidy up loop for selection of mixed-evacuation candidate regions
kdnilsen Apr 26, 2023
0316dbc
Better code reuse for clearing old-gen triggers
kdnilsen Apr 26, 2023
40bf977
Remove unnecessary assert
kdnilsen Apr 26, 2023
007806a
Remove unnecessary conditional compile directives
kdnilsen Apr 26, 2023
d8f6990
Fix ShouldNotReachHere() assert
kdnilsen Apr 30, 2023
1ca9619
No need to distinguish generational full gc verification
kdnilsen May 1, 2023
92271b5
Fix a comment re: max_young_evacuation_reserve
kdnilsen May 1, 2023
d6a2b2f
Remove iteator over mutator threads as not needed
kdnilsen May 2, 2023
27a8822
Tidy up some comments
kdnilsen May 2, 2023
42bb8f4
Merge remote-tracking branch 'origin' into expand-old-on-demand
kdnilsen May 2, 2023
30415b4
Fix white space
kdnilsen May 2, 2023
8c96288
Tidy up after merge from mainline
kdnilsen May 3, 2023
e4c120e
Update global usage following full gc even when non-generational mode
kdnilsen May 4, 2023
cda0e41
Enable more tests on this branch
kdnilsen May 4, 2023
5de2889
Remove irrelevant comment
kdnilsen May 4, 2023
b59ece7
Reorder lines of code to reduce diffs from original code
kdnilsen May 4, 2023
b0b61a4
Tidy code for integration
kdnilsen May 4, 2023
ba5616d
Reduce guaranteed young GC interval to 30 seconds
kdnilsen May 4, 2023
81ae25a
Fix some assertions
kdnilsen May 4, 2023
53b4b5a
Weaken some assertions
kdnilsen May 4, 2023
3b32daf
Fix whitespace
kdnilsen May 8, 2023
b84c8cb
Merge remote-tracking branch 'origin' into expand-old-on-demand
kdnilsen May 12, 2023
cfd30ef
Report number of old- and young cset regions when preparing to rebuil…
kdnilsen May 12, 2023
e234dfd
Minor improvements in comments
kdnilsen May 8, 2023
79fede2
Misc changes address reviewer feedback and observed performance issues
kdnilsen May 14, 2023
d7b6341
Fix whitespace
kdnilsen May 14, 2023
f277f97
Modify API for ShenandoahHeapRegion::set_affiliation
kdnilsen May 15, 2023
a171c77
Some changes regarding affiliated region accounting
kdnilsen May 16, 2023
517136a
Remove unused variable from function
kdnilsen May 16, 2023
17ff261
Fix whitespace
kdnilsen May 16, 2023
2b517dc
Use max_capacity() rather than soft_max_capacity() for budgeting
kdnilsen May 16, 2023
4298ca7
Improve handoff of generation sizing impacts
kdnilsen May 19, 2023
3f3f566
Fix typo in young_unaffiliated_regions calculation
kdnilsen May 19, 2023
c44d68f
Better logging and fix fullgc to clear old deficit and surplus
kdnilsen May 20, 2023
9554788
Fix some syntax errors
kdnilsen May 20, 2023
fbb7822
Only anticipate promotion for younger regions if is_aging_cycle()
kdnilsen May 20, 2023
00284a5
Remove extra debugging instrumentation
kdnilsen May 20, 2023
53c899c
Merge remote-tracking branch 'origin' into expand-old-on-demand
kdnilsen May 22, 2023
832c5b2
Move Collector-free regions to Mutator-free at start of update refs
kdnilsen May 22, 2023
9195007
Fix merge error
kdnilsen May 23, 2023
b1e5c26
Change ShenandoahFullGCThreshold defaulit
kdnilsen May 23, 2023
5d2c95b
Respond to reviewer feedback on PR 274
kdnilsen May 23, 2023
20fe5e3
Fix assert to allow transfers to Mutator free set at update refs
kdnilsen May 23, 2023
349f87f
Fix argument types to not loose precision
kdnilsen May 23, 2023
92608d7
Remove irrelevant assert
kdnilsen May 24, 2023
e02032d
Keep lock while transferring regions to young
kdnilsen May 24, 2023
90bca83
Revert default value of ShenandoahGuaranteedYoungGCInterval
kdnilsen May 24, 2023
f6f3515
Allow OOM failures to occur more quickly
kdnilsen May 25, 2023
94040c9
Remove deprecated code
kdnilsen May 25, 2023
da0faa9
Respond to reviewer feedback
kdnilsen May 25, 2023
623edab
Fix errors in implementation of get_fullgc_count()
kdnilsen May 26, 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
11 changes: 6 additions & 5 deletions test/hotspot/jtreg/ProblemList.txt
Original file line number Diff line number Diff line change
@@ -83,11 +83,12 @@ gc/stress/gclocker/TestGCLockerWithG1.java 8180622 generic-all
gc/stress/TestJNIBlockFullGC/TestJNIBlockFullGC.java 8192647 generic-all
gc/stress/TestStressG1Humongous.java 8286554 windows-x64

gc/shenandoah/oom/TestClassLoaderLeak.java 8306336 generic-all
gc/shenandoah/mxbeans/TestChurnNotifications.java#generational 8306337 generic-all
gc/stress/gcold/TestGCOldWithShenandoah.java#generational 8306339 generic-all
gc/stress/systemgc/TestSystemGCWithShenandoah.java#generational 8306340 generic-all
gc/stress/gclocker/TestGCLockerWithShenandoah.java#generational 8306341 generic-all
# kelvin wants to try enabling these tests
# gc/shenandoah/oom/TestClassLoaderLeak.java 8306336 generic-all
# gc/shenandoah/mxbeans/TestChurnNotifications.java#generational 8306337 generic-all
# gc/stress/gcold/TestGCOldWithShenandoah.java#generational 8306339 generic-all
# gc/stress/systemgc/TestSystemGCWithShenandoah.java#generational 8306340 generic-all
# gc/stress/gclocker/TestGCLockerWithShenandoah.java#generational 8306341 generic-all

#############################################################################