JDK-6417901 : Generalize parallel reference processing to all collectors.
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 1.5.1,7
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2006-04-25
  • Updated: 2010-05-11
  • Resolved: 2007-04-24
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
6u4Fixed 7Fixed hs10Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
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.
12-03-2007

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
12-03-2007