United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6990359 G1: don't push a stolen entry on the taskqueue, deal with it directly
JDK-6990359 : G1: don't push a stolen entry on the taskqueue, deal with it directly

Details
Type:
Enhancement
Submit Date:
2010-10-07
Status:
Closed
Updated Date:
2011-04-20
Project Name:
JDK
Resolved Date:
2011-04-20
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs20
Fixed Versions:
hs20 (b02)

Related Reports
Backport:
Backport:

Sub Tasks

Description
Currently, when worker W steals an entry E from another worker's taskqueue, it pushes E on its own taskqueue before going into trim_queues() where the first thing it does is to pop E. This should work fine most of the time. However, it also opens a (very small) window for another workers to steal E from W. This might cause ping-ponging between workers. It might be better if W just deals with E directly, instead of pushing it on its taskqueue.

I also had a quick look at the marking code and it seems to do the "right" thing, i.e., not pushing the stolen entry but processing it directly.

(thanks to Igor Veresov for spotting this)

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/35e4e086d5f5
                                     
2010-10-14
EVALUATION

http://hg.openjdk.java.net/jdk7/build/hotspot/rev/35e4e086d5f5
                                     
2010-12-04



Hardware and Software, Engineered to Work Together