RFR: 8280384: Parallel: Remove VMThread specific ParCompactionManager [v2]

Thomas Schatzl tschatzl at openjdk.java.net
Mon Jan 24 15:51:33 UTC 2022


> Hi all,
> 
>    can I have reviews for this change? Parallel GC allocates `ParallelGCThreads+1` `ParCompactionManagers`, the last one only used for work in the VM thread. That `ParCompactionManager`'s task queue is also not wired into the work stealing mechanism (i.e. the `TaskQueueSet`). This causes unnecessary code duplication when printing statistics for something which is mostly not used at all.
> 
> The suggestion is to remove that unnecessarily allocated task queue as it seems unnecessary: this special handling for an apparently uncommon case prevents factoring out task queue statistics code, and use the 0'th `ParcompactionManager` for these tasks which the code states to be just fine (and it is). In e.g. G1 we also just use the 0'th "worker id" and associated data structures when doing work in the VM thread directly.
> 
> Testing: tier1-5
> 
> Thanks,
>   Thomas

Thomas Schatzl has updated the pull request incrementally with one additional commit since the last revision:

  Fix merge error

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7195/files
  - new: https://git.openjdk.java.net/jdk/pull/7195/files/14d5f83c..cddd45aa

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7195&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7195&range=00-01

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7195.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7195/head:pull/7195

PR: https://git.openjdk.java.net/jdk/pull/7195



More information about the hotspot-gc-dev mailing list