-
Enhancement
-
Resolution: Fixed
-
P4
-
18
-
b17
There is (typically) one filter before each enqueue action that filters out such references from the young generation.
This filter is too coarse, it catches regions from the whole young generation (i.e. current eden regions used in this collection and survivor regions which are the eden regions of the next gc), but when there is an evacuation failure live objects will stay in the current eden regions, and need the cards *from* these regions.
Currently during evacuation failure handling (fixup self forwards) we recreate those by rescanning the live objects in the eden regions.
This could be avoided by adding an explicit "new eden/survivor" regions tag in G1HeapRegionAttr and use this to get an exact filter.
A prototype is available at https://github.com/tschatzl/jdk/tree/submit/evac-failure-no-scan-during-remove-self-forwards
- blocks
-
JDK-8274077 Make collection set regions not need remembered set update during GC
-
- Open
-
- relates to
-
JDK-8274068 Rename G1ScanInYoungSetter to G1SkipCardEnqueueSetter
-
- Resolved
-
-
JDK-8274069 Clean up g1ParScanThreadState a bit
-
- Resolved
-
-
JDK-8274516 [REDO] JDK-8271880: Tighten condition for excluding regions from collecting cards with cross-references
-
- Resolved
-
-
JDK-8274340 [BACKOUT] JDK-8271880: Tighten condition for excluding regions from collecting cards with cross-references
-
- Closed
-
-
JDK-8274452 G1: Only evac-failed objects must be in the collection set here
-
- Closed
-
-
JDK-8270842 G1: Only young regions need to redirty outside references in remset.
-
- Resolved
-