Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8205220 | 11.0.1 | Thomas Schatzl | P4 | Resolved | Fixed | team |
A mismatch in the rebuild policy to select regions for remembered set rebuild and collection set chooser causes the latter to not clear out remembered sets for some old gen regions.
I.e. the rebuild policy basically only selects by liveness, but the collection set chooser selects and discards only regions which marking were updated.
This makes regions that were allocated during marking, that were selected for rebuild during remark (because e.g. due to fragmentation they were "half-empty"), to not be part of the set of regions to be looked at in the collection set chooser, and hence their remembered set not cleared out if applicable.
This is a memory/performance issue as these regions keep being maintained for longer than necessary.
I.e. the rebuild policy basically only selects by liveness, but the collection set chooser selects and discards only regions which marking were updated.
This makes regions that were allocated during marking, that were selected for rebuild during remark (because e.g. due to fragmentation they were "half-empty"), to not be part of the set of regions to be looked at in the collection set chooser, and hence their remembered set not cleared out if applicable.
This is a memory/performance issue as these regions keep being maintained for longer than necessary.
- backported by
-
JDK-8205220 Mismatch in rebuild policy and collection set chooser causes remembered sets to be kept errorneously
-
- Resolved
-
- relates to
-
JDK-8203848 Missing remembered set entry in j.l.ref.references after JDK-8203028
-
- Closed
-
-
JDK-8180415 Rebuild remembered sets during the concurrent cycle
-
- Resolved
-