-
Enhancement
-
Resolution: Fixed
-
P4
-
17, 19
-
b08
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8320514 | 17.0.10 | Roman Kennke | P4 | Resolved | Fixed | b04 |
At the end of a Young-GC, we walk the whole young-gen to find promotion-failed objs.
```
void PSScavenge::clean_up_failed_promotion() {
...
RemoveForwardedPointerClosure remove_fwd_ptr_closure;
young_gen->object_iterate(&remove_fwd_ptr_closure);
...
}
```
This can be quite expensive, especially #promotion-failed objs is ususally small if any.
An alternative is to use `PreservedMarks` to record those promotion-failed objs. (`PreservedMarks` is originally used for objs whose markWord must be preserved, `markWord::must_be_preserved`.)
```
void PSScavenge::clean_up_failed_promotion() {
...
RemoveForwardedPointerClosure remove_fwd_ptr_closure;
young_gen->object_iterate(&remove_fwd_ptr_closure);
...
}
```
This can be quite expensive, especially #promotion-failed objs is ususally small if any.
An alternative is to use `PreservedMarks` to record those promotion-failed objs. (`PreservedMarks` is originally used for objs whose markWord must be preserved, `markWord::must_be_preserved`.)
- backported by
-
JDK-8320514 Parallel: Use PreservedMarks to record promotion-failed objects
- Resolved
- relates to
-
JDK-8281035 Serial: Move RemoveForwardedPointerClosure to local scope
- Resolved
-
JDK-8254167 G1: Record regions where evacuation failed to provide targeted iteration
- Resolved
- links to
-
Commit openjdk/jdk17u-dev/40c29f7d
-
Commit openjdk/jdk/16ec47d5
-
Review openjdk/jdk17u-dev/1964
-
Review openjdk/jdk/7028
(2 links to)