comparison src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp @ 6725:da91efe96a93

6964458: Reimplement class meta-data storage to use native memory Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>
author coleenp
date Sat, 01 Sep 2012 13:25:18 -0400
parents f69a5d43dc19
children 685df3c6f84b
comparison
equal deleted inserted replaced
6724:36d1d483d5d6 6725:da91efe96a93
1 /* 1 /*
2 * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
29 volatile_nonstatic_field, \ 29 volatile_nonstatic_field, \
30 static_field) \ 30 static_field) \
31 nonstatic_field(CompactibleFreeListSpace, _collector, CMSCollector*) \ 31 nonstatic_field(CompactibleFreeListSpace, _collector, CMSCollector*) \
32 nonstatic_field(CompactibleFreeListSpace, _bt, BlockOffsetArrayNonContigSpace) \ 32 nonstatic_field(CompactibleFreeListSpace, _bt, BlockOffsetArrayNonContigSpace) \
33 \ 33 \
34 nonstatic_field(CMSPermGen, _gen, ConcurrentMarkSweepGeneration*) \
35 nonstatic_field(CMSBitMap, _bmStartWord, HeapWord*) \
36 nonstatic_field(CMSBitMap, _bmWordSize, size_t) \ 34 nonstatic_field(CMSBitMap, _bmWordSize, size_t) \
37 nonstatic_field(CMSBitMap, _shifter, const int) \ 35 nonstatic_field(CMSBitMap, _shifter, const int) \
38 nonstatic_field(CMSBitMap, _bm, BitMap) \ 36 nonstatic_field(CMSBitMap, _bm, BitMap) \
39 nonstatic_field(CMSBitMap, _virtual_space, VirtualSpace) \ 37 nonstatic_field(CMSBitMap, _virtual_space, VirtualSpace) \
40 nonstatic_field(CMSCollector, _markBitMap, CMSBitMap) \ 38 nonstatic_field(CMSCollector, _markBitMap, CMSBitMap) \
55 #define VM_TYPES_CMS(declare_type, \ 53 #define VM_TYPES_CMS(declare_type, \
56 declare_toplevel_type) \ 54 declare_toplevel_type) \
57 \ 55 \
58 declare_type(ConcurrentMarkSweepGeneration,CardGeneration) \ 56 declare_type(ConcurrentMarkSweepGeneration,CardGeneration) \
59 declare_type(CompactibleFreeListSpace, CompactibleSpace) \ 57 declare_type(CompactibleFreeListSpace, CompactibleSpace) \
60 declare_type(CMSPermGenGen, ConcurrentMarkSweepGeneration) \
61 declare_type(CMSPermGen, PermGen) \
62 declare_type(ConcurrentMarkSweepThread, NamedThread) \ 58 declare_type(ConcurrentMarkSweepThread, NamedThread) \
63 declare_type(SurrogateLockerThread, JavaThread) \ 59 declare_type(SurrogateLockerThread, JavaThread) \
64 declare_toplevel_type(CMSCollector) \ 60 declare_toplevel_type(CMSCollector) \
65 declare_toplevel_type(CMSBitMap) \ 61 declare_toplevel_type(CMSBitMap) \
66 declare_toplevel_type(FreeChunk) \ 62 declare_toplevel_type(FreeChunk) \
78 declare_toplevel_type(FreeBlockDictionary<FreeChunk>) \ 74 declare_toplevel_type(FreeBlockDictionary<FreeChunk>) \
79 declare_type(BinaryTreeDictionary<FreeChunk>, FreeBlockDictionary<FreeChunk>) 75 declare_type(BinaryTreeDictionary<FreeChunk>, FreeBlockDictionary<FreeChunk>)
80 76
81 #define VM_INT_CONSTANTS_CMS(declare_constant) \ 77 #define VM_INT_CONSTANTS_CMS(declare_constant) \
82 declare_constant(Generation::ConcurrentMarkSweep) \ 78 declare_constant(Generation::ConcurrentMarkSweep) \
83 declare_constant(PermGen::ConcurrentMarkSweep)
84 79
85 #endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP 80 #endif // SHARE_VM_GC_IMPLEMENTATION_CONCURRENTMARKSWEEP_VMSTRUCTS_CMS_HPP