United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6962947 shared TaskQueue statistics
6962947 : shared TaskQueue statistics

Details
Type:
Enhancement
Submit Date:
2010-06-22
Status:
Resolved
Updated Date:
2010-09-24
Project Name:
JDK
Resolved Date:
2010-08-04
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs19
Fixed Versions:
hs19

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

Sub Tasks

Description
Code to keep some basic statistics on TaskQueue operations like pushes, overflow pushes, steals, etc., exists in the PSPromotionManager class.  It should be moved to TaskQueue directly so it is more widely available and made easier to use.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-rt/hotspot/rev/a93a9eda13f7
                                     
2010-07-25
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/a93a9eda13f7
                                     
2010-07-23
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/a93a9eda13f7
                                     
2010-07-17
EVALUATION

Must also fix some fragile padding declarations in ParNew and CMS which assumed sizeof(TaskQueue) < 64 and underflowed when the TaskQueue size changed.  Add a PADDING_SIZE macro to compute the correct length for a padding array, avoiding 0 (which is disallowed by the c++ standard, although it is accepted by some compilers). Also add a template class, Padded<>, to easily create a subclass of a given type padded to the correct size.
                                     
2010-07-12
SUGGESTED FIX

See attached 6962747-taskqueue-stats.zip.
                                     
2010-07-02
EVALUATION

Add class TaskQueueStats, used by TaskQueue, to track pushes, pops, steals, overflows, etc. Enable the code by default in debug builds to prevent bit rot and make it easy to enable in product builds (with gmake ... EXTRA_CFLAGS=-DTASKQUEUE_STATS=1).

Change PSPromotionManager to use TaskQueueStats, guard compilation with TASKQUEUE_STATS instead of PS_PM_STATS, make the output conditional (PrintGCDetails && ParallelGCVerbose) and format it as a table.
                                     
2010-07-02
EVALUATION

Yes.  The statistics can be useful for performance evaluation & diagnosis.
                                     
2010-06-22



Hardware and Software, Engineered to Work Together