hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp
author minqi
Thu, 24 Jan 2013 23:30:45 -0800
changeset 15431 570c5062ab8a
parent 14574 1193d3742872
child 15470 998186997e90
permissions -rw-r--r--
8005278: Serviceability Agent: jmap -heap and jstack -m fail Summary: BinaryTreeDictionary is typedef'ed as AFLBinaryTreeDictionary in vmStructs and in SA we still use old name for that. FreeList now is a template based class which is not reflect in SA type library. When SA does calculation of heap for CMS, the former will cause failure to retrieve BinaryTreeDictionary sine the rename. The later will fail wherever it is used in SA. Reviewed-by: dholmes, sla, coleenp Contributed-by: yunda.mly@taobao.com
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     1
/*
15431
570c5062ab8a 8005278: Serviceability Agent: jmap -heap and jstack -m fail
minqi
parents: 14574
diff changeset
     2
 * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     4
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
489c9b5090e2 Initial load
duke
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
489c9b5090e2 Initial load
duke
parents:
diff changeset
     7
 * published by the Free Software Foundation.
489c9b5090e2 Initial load
duke
parents:
diff changeset
     8
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
489c9b5090e2 Initial load
duke
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
489c9b5090e2 Initial load
duke
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
489c9b5090e2 Initial load
duke
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
489c9b5090e2 Initial load
duke
parents:
diff changeset
    13
 * accompanied this code).
489c9b5090e2 Initial load
duke
parents:
diff changeset
    14
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
489c9b5090e2 Initial load
duke
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
489c9b5090e2 Initial load
duke
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
489c9b5090e2 Initial load
duke
parents:
diff changeset
    18
 *
5547
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 614
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 614
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
f4b087cbb361 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 614
diff changeset
    21
 * questions.
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    22
 *
489c9b5090e2 Initial load
duke
parents:
diff changeset
    23
 */
489c9b5090e2 Initial load
duke
parents:
diff changeset
    24
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    25
#ifndef SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    26
#define SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    27
14123
944e56f74fba 7045397: NPG: Add freelists to class loader arenas.
jmasa
parents: 13728
diff changeset
    28
typedef BinaryTreeDictionary<FreeChunk, AdaptiveFreeList> AFLBinaryTreeDictionary;
944e56f74fba 7045397: NPG: Add freelists to class loader arenas.
jmasa
parents: 13728
diff changeset
    29
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    30
#define VM_STRUCTS_CMS(nonstatic_field, \
613
2aa2b913106c 6687581: Make CMS work with compressed oops
coleenp
parents: 1
diff changeset
    31
                   volatile_nonstatic_field, \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    32
                   static_field) \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    33
  nonstatic_field(CompactibleFreeListSpace,    _collector,                                    CMSCollector*)                         \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    34
  nonstatic_field(CompactibleFreeListSpace,    _bt,                                           BlockOffsetArrayNonContigSpace)        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    35
                                                                                                                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    36
  nonstatic_field(CMSBitMap,                   _bmWordSize,                                   size_t)                                \
15431
570c5062ab8a 8005278: Serviceability Agent: jmap -heap and jstack -m fail
minqi
parents: 14574
diff changeset
    37
  nonstatic_field(CMSBitMap,                   _shifter,                                      const int)                             \
570c5062ab8a 8005278: Serviceability Agent: jmap -heap and jstack -m fail
minqi
parents: 14574
diff changeset
    38
  nonstatic_field(CMSBitMap,                      _bm,                                           BitMap)                             \
570c5062ab8a 8005278: Serviceability Agent: jmap -heap and jstack -m fail
minqi
parents: 14574
diff changeset
    39
  nonstatic_field(CMSBitMap,                   _virtual_space,                                VirtualSpace)                          \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    40
  nonstatic_field(CMSCollector,                _markBitMap,                                   CMSBitMap)                             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    41
  nonstatic_field(ConcurrentMarkSweepGeneration, _cmsSpace,                                   CompactibleFreeListSpace*)             \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    42
     static_field(ConcurrentMarkSweepThread,   _collector,                                    CMSCollector*)                         \
578
862a85ed20db 6670684: 4/5 SA command universe did not print out CMS space information
dcubed
parents: 1
diff changeset
    43
  nonstatic_field(LinearAllocBlock,            _word_size,                                    size_t)                                \
14123
944e56f74fba 7045397: NPG: Add freelists to class loader arenas.
jmasa
parents: 13728
diff changeset
    44
  nonstatic_field(AFLBinaryTreeDictionary,     _total_size,                                   size_t)                                \
12507
6182ca66bc7b 7131629: Generalize the CMS free list code
jmasa
parents: 7397
diff changeset
    45
  nonstatic_field(CompactibleFreeListSpace,    _indexedFreeList[0],                           FreeList<FreeChunk>)                   \
15431
570c5062ab8a 8005278: Serviceability Agent: jmap -heap and jstack -m fail
minqi
parents: 14574
diff changeset
    46
  nonstatic_field(CompactibleFreeListSpace,    _smallLinearAllocBlock,                        LinearAllocBlock)                      \
570c5062ab8a 8005278: Serviceability Agent: jmap -heap and jstack -m fail
minqi
parents: 14574
diff changeset
    47
  nonstatic_field(CompactibleFreeListSpace,    _dictionary,                                   FreeBlockDictionary<FreeChunk>*)
578
862a85ed20db 6670684: 4/5 SA command universe did not print out CMS space information
dcubed
parents: 1
diff changeset
    48
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    49
489c9b5090e2 Initial load
duke
parents:
diff changeset
    50
#define VM_TYPES_CMS(declare_type,                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    51
                     declare_toplevel_type)                               \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    52
                                                                          \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    53
           declare_type(ConcurrentMarkSweepGeneration,CardGeneration)     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    54
           declare_type(CompactibleFreeListSpace,     CompactibleSpace)   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    55
           declare_type(ConcurrentMarkSweepThread,    NamedThread)        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    56
           declare_type(SurrogateLockerThread, JavaThread)                \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    57
  declare_toplevel_type(CMSCollector)                                     \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    58
  declare_toplevel_type(CMSBitMap)                                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    59
  declare_toplevel_type(FreeChunk)                                        \
14123
944e56f74fba 7045397: NPG: Add freelists to class loader arenas.
jmasa
parents: 13728
diff changeset
    60
  declare_toplevel_type(Metablock)                                        \
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    61
  declare_toplevel_type(ConcurrentMarkSweepThread*)                       \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    62
  declare_toplevel_type(ConcurrentMarkSweepGeneration*)                   \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    63
  declare_toplevel_type(SurrogateLockerThread*)                           \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    64
  declare_toplevel_type(CompactibleFreeListSpace*)                        \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    65
  declare_toplevel_type(CMSCollector*)                                    \
14123
944e56f74fba 7045397: NPG: Add freelists to class loader arenas.
jmasa
parents: 13728
diff changeset
    66
  declare_toplevel_type(AFLBinaryTreeDictionary*)                         \
578
862a85ed20db 6670684: 4/5 SA command universe did not print out CMS space information
dcubed
parents: 1
diff changeset
    67
  declare_toplevel_type(LinearAllocBlock)                                 \
12507
6182ca66bc7b 7131629: Generalize the CMS free list code
jmasa
parents: 7397
diff changeset
    68
  declare_toplevel_type(FreeBlockDictionary<FreeChunk>)                   \
14574
1193d3742872 8003879: Duplicate definitions in vmStructs
mikael
parents: 14123
diff changeset
    69
           declare_type(AFLBinaryTreeDictionary, FreeBlockDictionary<FreeChunk>)
1
489c9b5090e2 Initial load
duke
parents:
diff changeset
    70
489c9b5090e2 Initial load
duke
parents:
diff changeset
    71
#define VM_INT_CONSTANTS_CMS(declare_constant)                            \
489c9b5090e2 Initial load
duke
parents:
diff changeset
    72
  declare_constant(Generation::ConcurrentMarkSweep)                       \
7397
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    73
5b173b4ca846 6989984: Use standard include model for Hospot
stefank
parents: 5547
diff changeset
    74
#endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP