Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2206205 | 7 | Tony Printezis | P3 | Closed | Fixed | b128 |
JDK-2205639 | 6u25 | Tony Printezis | P3 | Resolved | Fixed | b01 |
During evacuation failure handling we iterate over the regions that contain objects that we could not move during the collection to discover those objects and process them. Given that we do the expensive iteration anyway we should also refine the BOT (to reflect the location of individual objects, not TLABs/PLABs as we do now) as it would be a very minor overhead on the evacuation failure processing code.
Additionally, this is a prelude for another CR (6994297: G1: do first-level slow-path allocations with a CAS) during which we'll disable BOT updates for eden regions (we'll ultimately do that for survivor regions too) which means that recreating the BOT during evacuation failure handling will be a requirement, not just a small performance improvement. But this change is self-contained so I decided to open a separate CR instead of folding it into 6994297.
Additionally, this is a prelude for another CR (6994297: G1: do first-level slow-path allocations with a CAS) during which we'll disable BOT updates for eden regions (we'll ultimately do that for survivor regions too) which means that recreating the BOT during evacuation failure handling will be a requirement, not just a small performance improvement. But this change is self-contained so I decided to open a separate CR instead of folding it into 6994297.
- backported by
-
JDK-2205639 G1: refine the BOT during evac failure handling
- Resolved
-
JDK-2206205 G1: refine the BOT during evac failure handling
- Closed
- duplicates
-
JDK-7010490 G1: BOT: join_blocks() is dead code
- Closed
- relates to
-
JDK-6994297 G1: do first-level slow-path allocations with a CAS
- Closed