JDK-8031565 : Use serial/waiting time to perform independent tasks during young gc in G1
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 8u20,9
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2014-01-13
  • Updated: 2020-06-17
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.
Other
tbdUnresolved
Related Reports
Relates :  
Relates :  
Relates :  
Description
In G1, young GC often contains periods of time where worker threads are waiting for others (termination time) or executes something serially.
This time could be used to perform some tasks that have no dependencies on other tasks and otherwise consume a significant amount of time.

Prominent examples for such tasks are are string table and symbol table cleanup that take a significant (i.e. most) amount of time during other pauses, but could be scheduled at any time during a STW pause.

The goal is to schedule this work in this "dead time" so that it does consume explicit time in the other GC pauses.
Comments
Michihiro Horie, Kazunori Ogata, Mikio Takeuchi, and Hiroshi Horii. 2019. Scaling up parallel GC work-stealing in many-core environments. In Proceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management (ISMM 2019). ACM, New York, NY, USA, 27-40. DOI: https://doi.org/10.1145/3315573.3329985 proposes that during waiting for new tasks (polling), do small amounts of work, i.e. copying small? char/byte arrays
17-06-2020