United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6483660 Disentangle ensure_parsability() and TLAB retirement
JDK-6483660 : Disentangle ensure_parsability() and TLAB retirement

Details
Type:
Bug
Submit Date:
2006-10-18
Status:
Resolved
Updated Date:
2010-04-02
Project Name:
JDK
Resolved Date:
2006-11-14
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
6
Fixed Versions:
hs10 (b03)

Related Reports
Backport:
Backport:
Relates:

Sub Tasks

Description
See comments section for related email.

                                    

Comments
EVALUATION

Target to 7.0; small change that might touch a line or two in
many files.
                                     
2006-10-18
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)
                                     
2006-11-02



Hardware and Software, Engineered to Work Together