JDK-6483660 : Disentangle ensure_parsability() and TLAB retirement
Type:Bug
Component:hotspot
Sub-Component:gc
Affected Version:6
Priority:P4
Status:Resolved
Resolution:Fixed
OS:generic
CPU:generic
Submitted:2006-10-18
Updated:2010-04-02
Resolved:2006-11-14
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.
SUGGESTED FIX
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.sfbay/prt-workspaces/20061102125615.ysr.tlab/workspace
(prt-web:/net/prt-web.sfbay/prt-workspaces/20061102125615.ysr.tlab/workspace)
User: ysr
Comment:
---------------------------------------------------------
Job ID: 20061102125615.ysr.tlab
Original workspace: neeraja:/net/spot/scratch/ysr/tlab
Submitter: ysr
Archived data: /net/prt-archiver.sfbay/data/archived_workspaces/main/gc_baseline/2006/20061102125615.ysr.tlab/
Webrev: http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/gc_baseline/2006/20061102125615.ysr.tlab/workspace/webrevs/webrev-2006.11.02/index.html
Fixed 6483660: Disentangle ensure_parsability() and TLAB retirement
Webrev: http://analemma.sfbay/net/spot/scratch/ysr/tlab/webrev
We currently have the "ensure_parsability" interface that
both fills up unused portions of TLABs with filler arrays
and retires them, but many uses of the interface do not need
TLAB retirement. This putback addresses this issue by
providing for a "retire_tlabs" option to the interface,
so that callers may retire the unused TLABs only as necessary.
This can lead to better efficiency in TLAB usage in the presence
of orthogonal heap iterations and such, as well as reduce the
attendant noise in the sensor data for TLAB ergonomics.
In the event that the option ZeroTLAB is on, we force
TLAB retirement since we would otherwise need an additional
pass over the TLABs to re-zero them once done with whatever needed
the heap to be in a parsable state.
We took this opportunity to also fix the mis-spelling of the
method name.
Reviewed by: Jon Masamitsu
Fix Verified: yes
Verification Testing:
refworkload fastdebug/product +/-ZeroTLAB ParallelGC/CMS
Other testing:
. runThese -full w/ ParallelGC and CMS
. refworkload for performance data (improvement immersed in noise, not significant)
Files:
update: src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.cpp
update: src/share/vm/gc_implementation/parallelScavenge/parallelScavengeHeap.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/psScavenge.cpp
update: src/share/vm/gc_implementation/shared/vmGCOperations.cpp
update: src/share/vm/gc_interface/collectedHeap.cpp
update: src/share/vm/gc_interface/collectedHeap.hpp
update: src/share/vm/memory/concurrentMarkSweepGeneration.cpp
update: src/share/vm/memory/dump.cpp
update: src/share/vm/memory/genCollectedHeap.cpp
update: src/share/vm/memory/genCollectedHeap.hpp
update: src/share/vm/memory/generation.hpp
update: src/share/vm/memory/heapInspection.cpp
update: src/share/vm/memory/threadLocalAllocBuffer.cpp
update: src/share/vm/memory/threadLocalAllocBuffer.hpp
update: src/share/vm/prims/jvmpi.cpp
update: src/share/vm/prims/jvmtiTagMap.cpp
update: src/share/vm/runtime/thread.cpp
update: src/share/vm/services/heapDumper.cpp
update: src/share/vm/utilities/vmError.cpp
Examined files: 3888
Contents Summary:
21 update
3867 no action (unchanged)
02-11-2006
EVALUATION
Target to 7.0; small change that might touch a line or two in
many files.