comparison src/share/vm/runtime/vmStructs.cpp @ 6885:685df3c6f84b

7045397: NPG: Add freelists to class loader arenas. Reviewed-by: coleenp, stefank, jprovino, ohair
author jmasa
date Tue, 18 Sep 2012 23:35:42 -0700
parents 5876f980ea19
children a3e2f723f2a5
comparison
equal deleted inserted replaced
6877:d0e7716b179e 6885:685df3c6f84b
57 #include "memory/freeBlockDictionary.hpp" 57 #include "memory/freeBlockDictionary.hpp"
58 #include "memory/genCollectedHeap.hpp" 58 #include "memory/genCollectedHeap.hpp"
59 #include "memory/generation.hpp" 59 #include "memory/generation.hpp"
60 #include "memory/generationSpec.hpp" 60 #include "memory/generationSpec.hpp"
61 #include "memory/heap.hpp" 61 #include "memory/heap.hpp"
62 #include "memory/metablock.hpp"
62 #include "memory/space.hpp" 63 #include "memory/space.hpp"
63 #include "memory/tenuredGeneration.hpp" 64 #include "memory/tenuredGeneration.hpp"
64 #include "memory/universe.hpp" 65 #include "memory/universe.hpp"
65 #include "memory/watermark.hpp" 66 #include "memory/watermark.hpp"
66 #include "oops/arrayKlass.hpp" 67 #include "oops/arrayKlass.hpp"
247 typedef Hashtable<oop, mtSymbol> StringHashtable; 248 typedef Hashtable<oop, mtSymbol> StringHashtable;
248 typedef TwoOopHashtable<Klass*, mtClass> KlassTwoOopHashtable; 249 typedef TwoOopHashtable<Klass*, mtClass> KlassTwoOopHashtable;
249 typedef Hashtable<Klass*, mtClass> KlassHashtable; 250 typedef Hashtable<Klass*, mtClass> KlassHashtable;
250 typedef HashtableEntry<Klass*, mtClass> KlassHashtableEntry; 251 typedef HashtableEntry<Klass*, mtClass> KlassHashtableEntry;
251 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable; 252 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable;
253 typedef BinaryTreeDictionary<Metablock, FreeList> MetablockTreeDictionary;
252 254
253 //-------------------------------------------------------------------------------- 255 //--------------------------------------------------------------------------------
254 // VM_STRUCTS 256 // VM_STRUCTS
255 // 257 //
256 // This list enumerates all of the fields the serviceability agent 258 // This list enumerates all of the fields the serviceability agent
1235 nonstatic_field(vframeArrayElement, _method, Method*) \ 1237 nonstatic_field(vframeArrayElement, _method, Method*) \
1236 \ 1238 \
1237 nonstatic_field(AccessFlags, _flags, jint) \ 1239 nonstatic_field(AccessFlags, _flags, jint) \
1238 nonstatic_field(elapsedTimer, _counter, jlong) \ 1240 nonstatic_field(elapsedTimer, _counter, jlong) \
1239 nonstatic_field(elapsedTimer, _active, bool) \ 1241 nonstatic_field(elapsedTimer, _active, bool) \
1240 nonstatic_field(InvocationCounter, _counter, unsigned int) 1242 nonstatic_field(InvocationCounter, _counter, unsigned int) \
1243 volatile_nonstatic_field(FreeChunk, _size, size_t) \
1244 nonstatic_field(FreeChunk, _next, FreeChunk*) \
1245 nonstatic_field(FreeChunk, _prev, FreeChunk*) \
1246 nonstatic_field(FreeList<FreeChunk>, _size, size_t) \
1247 nonstatic_field(FreeList<Metablock>, _size, size_t) \
1248 nonstatic_field(FreeList<FreeChunk>, _count, ssize_t) \
1249 nonstatic_field(FreeList<Metablock>, _count, ssize_t) \
1250 nonstatic_field(MetablockTreeDictionary, _total_size, size_t)
1241 1251
1242 /* NOTE that we do not use the last_entry() macro here; it is used */ 1252 /* NOTE that we do not use the last_entry() macro here; it is used */
1243 /* in vmStructs_<os>_<cpu>.hpp's VM_STRUCTS_OS_CPU macro (and must */ 1253 /* in vmStructs_<os>_<cpu>.hpp's VM_STRUCTS_OS_CPU macro (and must */
1244 /* be present there) */ 1254 /* be present there) */
1245 1255
2078 declare_toplevel_type(StubQueue*) \ 2088 declare_toplevel_type(StubQueue*) \
2079 declare_toplevel_type(Thread*) \ 2089 declare_toplevel_type(Thread*) \
2080 declare_toplevel_type(Universe) \ 2090 declare_toplevel_type(Universe) \
2081 declare_toplevel_type(vframeArray) \ 2091 declare_toplevel_type(vframeArray) \
2082 declare_toplevel_type(vframeArrayElement) \ 2092 declare_toplevel_type(vframeArrayElement) \
2083 declare_toplevel_type(Annotations*) 2093 declare_toplevel_type(Annotations*) \
2094 \
2095 /***************/ \
2096 /* Miscellaneous types */ \
2097 /***************/ \
2098 \
2099 /* freelist */ \
2100 declare_toplevel_type(FreeChunk*) \
2101 declare_toplevel_type(Metablock*) \
2102 declare_toplevel_type(FreeBlockDictionary<FreeChunk>*) \
2103 declare_toplevel_type(FreeList<FreeChunk>*) \
2104 declare_toplevel_type(FreeList<FreeChunk>) \
2105 declare_toplevel_type(FreeBlockDictionary<Metablock>*) \
2106 declare_toplevel_type(FreeList<Metablock>*) \
2107 declare_toplevel_type(FreeList<Metablock>) \
2108 declare_toplevel_type(MetablockTreeDictionary*) \
2109 declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>) \
2110 declare_type(MetablockTreeDictionary, FreeBlockDictionary<Metablock>)
2084 2111
2085 2112
2086 /* NOTE that we do not use the last_entry() macro here; it is used */ 2113 /* NOTE that we do not use the last_entry() macro here; it is used */
2087 /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must be */ 2114 /* in vmStructs_<os>_<cpu>.hpp's VM_TYPES_OS_CPU macro (and must be */
2088 /* present there) */ 2115 /* present there) */