JDK-8080226 : G1: Replace collector state booleans with explicit state variable(s)
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P4
  • Status: Open
  • Resolution: Unresolved
  • Submitted: 2015-05-12
  • Updated: 2019-02-11
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
Blocks :  
Blocks :  
Description
The current state of the G1 collector is encapsulated in the g1CollectorState class, but the state is scattered over a set of 12 booleans. The actual number of legal states is less than 10, so there are 4000+ illegal combinations of those booleans :-)

The state should be replaced by one (or a few) proper state variables with a proper state machine managing legal transitions between states.
Comments
The code in G1CollectionSet::add_young_region_common() at the moment during full gc does not add statistics for the retired mutator region. Also consider fixing this here.
26-03-2018

In process changes in http://cr.openjdk.java.net/~drwhite/8080226/webrev.02/
22-07-2016