United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6417901 Generalize parallel reference processing to all collectors.
JDK-6417901 : Generalize parallel reference processing to all collectors.

Details
Type:
Enhancement
Submit Date:
2006-04-25
Status:
Resolved
Updated Date:
2010-05-11
Project Name:
JDK
Resolved Date:
2007-04-24
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
1.5.1,7
Fixed Versions:
hs10 (b12)

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

Sub Tasks

Description
Improve the performance of the parallel reference processing so that it can
be used by default in the parallel collectors.  Extend the usage of the parallel
reference processsing to all the collectors.

                                    

Comments
EVALUATION

The implementation has been refactored and extended/generalized to
all parallel collectors by ###@###.### (see suggested
fix section for relevant URL's/webrev etc.).

However, it is not enabled by default because of the somewhat large
fixed overheads. A suitable dynamic heuristic should be implemented
for turning on this functionality on-the-fly as beneficial.
                                     
2007-03-12
SUGGESTED FIX

The following fix was putback to 7.0 gc_baseline and is expected to
integrate into main/baseline likely (i believe) around the 7.0 b11 time-frame:-

Event:            putback-to
Parent workspace: /net/jano.sfbay/export/disk05/hotspot/ws/main/gc_baseline
                  (jano.sfbay:/export/disk05/hotspot/ws/main/gc_baseline)
Child workspace:  /net/prt-web.east/prt-workspaces/20070312144034.ap159146.gc_baseline_sync/workspace
                  (prt-web:/net/prt-web.east/prt-workspaces/20070312144034.ap159146.gc_baseline_sync/workspace)
User:             ap159146

Comment:

---------------------------------------------------------

Job ID:                 20070312144034.ap159146.gc_baseline_sync
Original workspace:     spb-east:/scratch/users/ap159146/gc_baseline_sync
Submitter:              ap159146
Archived data:          /net/prt-data.east/archives/main/gc_baseline/2007/20070312144034.ap159146.gc_baseline_sync/
Webrev:                 http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/gc_baseline/2007/20070312144034.ap159146.gc_baseline_sync/workspace/webrevs/webrev-2007.03.12/index.html

Fixed 6417901: Generalize parallel reference processing to all collectors.

webrev at: http://javaweb.sfbay/~ap159146/6417901/

Reviewed by: John, Jon, Ramki

Fix verified (y/n): y

Verification testing:
   - runThese;
   - refworkload;
   - PRT;
   - a bunch of manually written tests;

Other testing:

Details:
  I've updated the fix upon review comments and did another round of testing.
  A wiki page with some details: http://j2se.sfbay.sun.com/web/bin/view/HotspotGC/RefProc


Files:
update: src/share/vm/includeDB_core
update: src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.cpp
update: src/share/vm/gc_implementation/parallelScavenge/gcTaskManager.hpp
update: src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.cpp
update: src/share/vm/gc_implementation/parallelScavenge/gcTaskThread.hpp
update: src/share/vm/gc_implementation/parallelScavenge/pcTasks.cpp
update: src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp
update: src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp
update: src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp
update: src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
update: src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.hpp
update: src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp
update: src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
update: src/share/vm/gc_implementation/parallelScavenge/psScavenge.hpp
update: src/share/vm/memory/concurrentMarkSweepGeneration.cpp
update: src/share/vm/memory/concurrentMarkSweepGeneration.hpp
update: src/share/vm/memory/defNewGeneration.cpp
update: src/share/vm/memory/genMarkSweep.cpp
update: src/share/vm/memory/genOopClosures.hpp
update: src/share/vm/memory/genOopClosures.inline.hpp
update: src/share/vm/memory/parNewGeneration.cpp
update: src/share/vm/memory/parNewGeneration.hpp
update: src/share/vm/memory/referenceProcessor.cpp
update: src/share/vm/memory/referenceProcessor.hpp
update: src/share/vm/runtime/globals.hpp
update: src/share/vm/runtime/thread.hpp
update: src/share/vm/utilities/workgroup.cpp
update: src/share/vm/utilities/workgroup.hpp
rename from: src/share/vm/memory/referenceProcessorMT.cpp
         to: deleted_files/src/share/vm/memory/referenceProcessorMT.cpp
rename from: src/share/vm/memory/referenceProcessorMT.hpp
         to: deleted_files/src/share/vm/memory/referenceProcessorMT.hpp

Examined files: 3944

Contents Summary:
      28   update
    3916   no action (unchanged)

Names Summary:
       2   renamed
       2   update parent's name history
                                     
2007-03-12



Hardware and Software, Engineered to Work Together