JDK-8204951 : Investigate to use WorkGang for Parallel GC
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 11
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2018-06-13
  • Updated: 2020-06-18
  • Resolved: 2019-08-30
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 14
14Fixed
Related Reports
Blocks :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
All collectors but parallel gc use WorkGang to implement parallelism.

This again and again causes us to add an additional abstraction layer above any code that tries to use parallel threads for all collectors (evacuation failure, dynamic thread sizing, reference processing, ...).

Further the parallel gc task queue mechanism has disadvantages:
- the work (tasks) must be known beforehand
- getting work from the task queue incurs taking a global lock which is actually known for being inefficient in literature already

Investigate to replace the parallel gc task queue mechanism with a work gang.

proposed solution:
JDK-8224659
JDK-8224660
JDK-8224661
JDK-8224662
JDK-8224663
JDK-8224664
JDK-8224665
JDK-8224666