JDK-7007068 : G1: refine the BOT during evac failure handling
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs20,7-pool
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2010-12-15
  • Updated: 2013-09-18
  • Resolved: 2011-04-23
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 JDK 7 Other
6u25Fixed 7Fixed hs20Fixed
Related Reports
Duplicate :  
Relates :  
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
EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/2250ee17e258
12-01-2011

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).
05-01-2011

EVALUATION See Description.
15-12-2010

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.
15-12-2010