United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7007068 G1: refine the BOT during evac failure handling
JDK-7007068 : G1: refine the BOT during evac failure handling

Details
Type:
Enhancement
Submit Date:
2010-12-15
Status:
Closed
Updated Date:
2011-04-23
Project Name:
JDK
Resolved Date:
2011-04-23
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs20,7-pool
Fixed Versions:
hs20 (b07)

Related Reports
Backport:
Backport:
Duplicate:
Relates:

Sub Tasks

Description
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.

                                    

Comments
SUGGESTED FIX

Every time we process a region during evacuation failure processing we should reset the BOT and every time we come across an object in the region, as we are iterating over it, we should update the BOT to reflect the location of that object.
                                     
2010-12-15
EVALUATION

See Description.
                                     
2010-12-15
SUGGESTED FIX

The changeset for this CR will also include an extra small change to remove the G1BOT::join_blocks() method which is unused (see 7010490).
                                     
2011-01-05
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/2250ee17e258
                                     
2011-01-12



Hardware and Software, Engineered to Work Together