Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2213963 | 8 | Tony Printezis | P3 | Resolved | Fixed | b03 |
JDK-2213553 | 7u2 | Tony Printezis | P3 | Closed | Fixed | b04 |
Currently when we allocate objects into survivor regions during GC we actually update the BOT even though we don't need to (we'll never have to scan cards on survivor regions so we won't need to do BOT look-ups for those regions). Additionally, we dirty the cards on the survivor regions as an extra pass at the end of the GC.
We should improve the above by:
a) Avoid BOT updates for survivor regions (like we do for mutator allocations), and
b) Dirty the cards on survivor regions incrementally, upon every allocation (like, again, we do for mutator allocations)
We now have a G1AllocRegion abstraction in G1 (pushed as part of 7023151) that we use for mutator allocation regions. We should re-use it for GC allocation regions too given that we currently have a lot of code replication.
We should improve the above by:
a) Avoid BOT updates for survivor regions (like we do for mutator allocations), and
b) Dirty the cards on survivor regions incrementally, upon every allocation (like, again, we do for mutator allocations)
We now have a G1AllocRegion abstraction in G1 (pushed as part of 7023151) that we use for mutator allocation regions. We should re-use it for GC allocation regions too given that we currently have a lot of code replication.
- backported by
-
JDK-2213963 G1: avoid BOT updates for survivor allocations and dirty survivor regions incrementally
-
- Resolved
-
-
JDK-2213553 G1: avoid BOT updates for survivor allocations and dirty survivor regions incrementally
-
- Closed
-
- relates to
-
JDK-7023151 G1: refactor the code that operates on _cur_alloc_region to be re-used for allocs by the GC threads
-
- Closed
-
-
JDK-7055086 G1: can rely on used_region_at_save_marks() outside a GC
-
- Closed
-