JDK-8315686 : G1: Disallow evacuation of marking regions in a Prepare Mixed gc
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 22
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2023-09-05
  • Updated: 2023-09-08
  • Resolved: 2023-09-08
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 22
22 masterFixed
Related Reports
Relates :  
Description
Since JDK-8140326 we allow reclamation of old gen regions reclaimed at any gc.

There is the set of regions selected by marking that is supposed to be guaranteed to be evacuated during Mixed GCs. That set is however already available during the Prepare Mixed gc, so they will be evacuated.

This has some issues with predictions:
* in cases where g1 can reclaim all marking regions during prepare mixed, we do not stop a degenerate Mixed Pause (without old gen regions) to happen. This influences prediction there.
If we just skipped the Mixed Pause, adaptive IHOP calculation would not get completed cycles for its length prediction, meaning IHOP will never be adjusted.
* it is unclear which types of predictions to use during a Prepare Mixed with marking regions: currently we separate them based on phase (young-only or mixed), and Prepare Mixed is part of young-only. However if we start doing evacuation of marking old regions we would potentially negatively impact predictors for the entire young-only phase.

So it is best to disable evacuation of marking old regions for Prepare Mixed pauses for now.
Comments
Changeset: 8ddf9eac Author: Thomas Schatzl <tschatzl@openjdk.org> Date: 2023-09-08 08:44:46 +0000 URL: https://git.openjdk.org/jdk/commit/8ddf9eac00b238c135975a15d1ef56b55c67ad36
08-09-2023

A pull request was submitted for review. URL: https://git.openjdk.org/jdk/pull/15611 Date: 2023-09-07 08:17:21 +0000
07-09-2023