-
Bug
-
Resolution: Unresolved
-
P4
-
25
During merging heap roots the existing code always updates the young gen length and clears the young gen remembered set card set.
In case of optional evacuation, this causes some bugs:
* after the initial evacuation, the young gen card set is empty, i.e. occupied is empty, and so the value passed to the predictors zero. Messes up the predictions a fair bit.
* clearing the young gen card set every merge heap root clears the regions associated with the young gen remset. Current code does not use them except for logging, so logging is wrong.
Fortunately no cards are added to the young gen remset during evacuation, so there is no risk of missing remembered sets.
In case of optional evacuation, this causes some bugs:
* after the initial evacuation, the young gen card set is empty, i.e. occupied is empty, and so the value passed to the predictors zero. Messes up the predictions a fair bit.
* clearing the young gen card set every merge heap root clears the regions associated with the young gen remset. Current code does not use them except for logging, so logging is wrong.
Fortunately no cards are added to the young gen remset during evacuation, so there is no risk of missing remembered sets.
- caused by
-
JDK-8343782 G1: Use one G1CardSet instance for multiple old gen regions
-
- Resolved
-
- links to
-
Review(master) openjdk/jdk/26695