United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6484982 G1: process references during evacuation pauses
JDK-6484982 : G1: process references during evacuation pauses

Details
Type:
Enhancement
Submit Date:
2006-10-23
Status:
Closed
Updated Date:
2012-12-05
Project Name:
JDK
Resolved Date:
2012-01-23
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs20,7
Fixed Versions:
hs23 (b02)

Related Reports
Backport:
Backport:
Backport:
Backport:
Duplicate:
Relates:

Sub Tasks

Description
Right now, G1 only processes references (as well as enqueueing objects for finalization) during marking cycles and not during evacuation pauses. Even though we haven't seen actual issues with the lack of prompt reference processing, it is easy to imagine an application that allocates a lot of short-lived finalizable objects to require more resources that really needed, as finalizable objects (and the resources they are holding on to) are piled up in the heap, waiting for a marking cycle to be processed.

                                    

Comments
EVALUATION

Make the current G1 reference processor discover reference objects during concurrent marking only. Add a stop-the-world reference processor to discover reference objects during evacuation pauses. The STW reference processor would also be employed during full GCs. The two reference processors have slightly different attributes: with the STW reference processor, assignments to the _discovered the field do not need a barrier and discovery is atomic w.r.t. the Java application; with the concurrent reference processor assignmnets to the discovered field _do_ need a barrier and also discovery is not atomic w.r.t. the Java app.

Also reference objects 'discovered' by the CM reference processor have to persist across evacuation pauses (they are processed during remarking) even those reference objects that happen to be in the collection set.
                                     
2011-08-11
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/4dfb2df418f2
                                     
2011-09-22
EVALUATION

http://hg.openjdk.java.net/hsx/hsx22/hotspot/rev/d320dd70ca40
                                     
2011-10-12
EVALUATION

See main CR
                                     
2011-10-22



Hardware and Software, Engineered to Work Together