RFR: 8306541: Refactor collection set candidate handling to prepare for JDK-8140326 [v12]
Thomas Schatzl
tschatzl at openjdk.org
Fri May 12 11:09:00 UTC 2023
> Hi all,
>
> please review this refactoring of collection set candidate set handling.
>
> The idea is to improve the interface to collection set candidates and prepare for having collection set candidates available at any time to evacuate them at any young collection.
>
> These preparations to allow for multiple sources for these candidates (from the marking, as now, and from retained regions, i.e. evacuation failed regions as per [JDK-8140326](https://bugs.openjdk.org/browse/JDK-8140326)).
>
> This patch only uses candidates from marking at this time.
>
> Also moves gc efficiency out of HeapRegion and associate it to the list element as it's not used otherwise.
>
> In detail:
> * the collection set candidates set is not temporarily allocated any more, but the candidate collection set object is available all the time.
>
> * G1CollectionSetCandidates is the main class, representing the current candidates. Contains the "from marking" candidate list only (at this point).
>
> * there are several additional helper sets/lists
> * G1CollectionSetRegionList: list of HeapRegion*, typically sorted by efficiency (but not necessarily). Also does not contain gc efficiences.
> * G1CollectionCandidateList: list of candidates, i.e. HeapRegion* with their gc efficiency. Building block for the actual collection set candidates list.
>
> All these sets implement C++ iterators for simpler use in various places.
>
> Testing:
> - this patch only: tier1-3, gha
> - with JDK-8140326 tier1-7 (or 8?)
>
> Thanks,
> Thomas
Thomas Schatzl has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 23 commits:
- G1CollectionCandidateList -> G1CollectionCandidateRegionList attempt
- ayang review, make initial_old_regions an integer
- ayang review
- Merge branch 'master' into 8306541-refactor-cset-candidates
- Removed assert that is useless for now
- remove _reclaimable_bytes
- make reclaimable-bytes debug only
- ayang review (1)
- iwalulya review, naming compare fn
- iwalulya review
- ... and 13 more: https://git.openjdk.org/jdk/compare/3b430b9f...eb797c18
-------------
Changes: https://git.openjdk.org/jdk/pull/13666/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13666&range=11
Stats: 1051 lines in 25 files changed: 559 ins; 251 del; 241 mod
Patch: https://git.openjdk.org/jdk/pull/13666.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/13666/head:pull/13666
PR: https://git.openjdk.org/jdk/pull/13666
More information about the hotspot-dev
mailing list