JDK-8213984 : Investigate dropping prev mark bitmap in G1
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 12
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • Submitted: 2018-11-16
  • Updated: 2018-11-28
  • Resolved: 2018-11-28
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
tbd_majorResolved
Related Reports
Duplicate :  
Description
The reason why G1 currently needs the "prev" bitmap is that after class unloading (at remark time at the moment) there will be objects that are not parseable in the old gen heap. (This property is required for e.g. remset scanning).

We could make the heap parseable again by stuffing integer arrays into these places. Previously we thought that iterating the heap was too expensive to do, so we did not consider this.

However, during rebuild remset we already concurrently walk the heap.

Care needs to be taken about the BOT (which needs to be updated as well), and that we then need to move the class unloading into the Cleanup pause, i.e. keep the heap parseable during gcs while rebuilding.

Advantages:
1.5% of Java heap memory saved
potential speedups during scanning cards (refinement, during GC)

Disadvantages:
concurrent BOT update
lengthens concurrent cycle
classes can not be unloaded as early as now