RFR: 8306541: Refactor collection set candidate handling to prepare for JDK-8140326 [v6]

Thomas Schatzl tschatzl at openjdk.org
Mon May 8 12:48:41 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 incrementally with one additional commit since the last revision:

  ayang review, add/clarify comments

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/13666/files
  - new: https://git.openjdk.org/jdk/pull/13666/files/4a013283..5fe73ea2

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=13666&range=05
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13666&range=04-05

  Stats: 6 lines in 2 files changed: 3 ins; 0 del; 3 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