comparison src/share/vm/runtime/vmStructs.cpp @ 6197:d2a62e0f25eb

6995781: Native Memory Tracking (Phase 1) 7151532: DCmd for hotspot native memory tracking Summary: Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd Reviewed-by: acorn, coleenp, fparain
author zgu
date Thu, 28 Jun 2012 17:03:16 -0400
parents eba1d5bce9e8
children 24b9c7f4cae6
comparison
equal deleted inserted replaced
6174:74533f63b116 6197:d2a62e0f25eb
233 // HotSpotTypeDataBase.java, which parses the type strings. 233 // HotSpotTypeDataBase.java, which parses the type strings.
234 234
235 #ifndef REG_COUNT 235 #ifndef REG_COUNT
236 #define REG_COUNT 0 236 #define REG_COUNT 0
237 #endif 237 #endif
238
239 // whole purpose of this function is to work around bug c++/27724 in gcc 4.1.1 238 // whole purpose of this function is to work around bug c++/27724 in gcc 4.1.1
240 // with optimization turned on it doesn't affect produced code 239 // with optimization turned on it doesn't affect produced code
241 static inline uint64_t cast_uint64_t(size_t x) 240 static inline uint64_t cast_uint64_t(size_t x)
242 { 241 {
243 return x; 242 return x;
244 } 243 }
245 244
245
246 typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry;
247 typedef Hashtable<intptr_t, mtInternal> IntptrHashtable;
248 typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable;
249 typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry;
250 typedef Hashtable<oop, mtSymbol> StringHashtable;
251 typedef TwoOopHashtable<klassOop, mtClass> klassOopTwoOopHashtable;
252 typedef Hashtable<klassOop, mtClass> klassOopHashtable;
253 typedef HashtableEntry<klassOop, mtClass> klassHashtableEntry;
254 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable;
246 255
247 //-------------------------------------------------------------------------------- 256 //--------------------------------------------------------------------------------
248 // VM_STRUCTS 257 // VM_STRUCTS
249 // 258 //
250 // This list enumerates all of the fields the serviceability agent 259 // This list enumerates all of the fields the serviceability agent
709 \ 718 \
710 /*******************/ \ 719 /*******************/ \
711 /* HashtableBucket */ \ 720 /* HashtableBucket */ \
712 /*******************/ \ 721 /*******************/ \
713 \ 722 \
714 nonstatic_field(HashtableBucket, _entry, BasicHashtableEntry*) \ 723 nonstatic_field(HashtableBucket<mtInternal>, _entry, BasicHashtableEntry<mtInternal>*) \
715 \ 724 \
716 /******************/ \ 725 /******************/ \
717 /* HashtableEntry */ \ 726 /* HashtableEntry */ \
718 /******************/ \ 727 /******************/ \
719 \ 728 \
720 nonstatic_field(BasicHashtableEntry, _next, BasicHashtableEntry*) \ 729 nonstatic_field(BasicHashtableEntry<mtInternal>, _next, BasicHashtableEntry<mtInternal>*) \
721 nonstatic_field(BasicHashtableEntry, _hash, unsigned int) \ 730 nonstatic_field(BasicHashtableEntry<mtInternal>, _hash, unsigned int) \
722 nonstatic_field(HashtableEntry<intptr_t>, _literal, intptr_t) \ 731 nonstatic_field(IntptrHashtableEntry, _literal, intptr_t) \
723 \ 732 \
724 /*************/ \ 733 /*************/ \
725 /* Hashtable */ \ 734 /* Hashtable */ \
726 /*************/ \ 735 /*************/ \
727 \ 736 \
728 nonstatic_field(BasicHashtable, _table_size, int) \ 737 nonstatic_field(BasicHashtable<mtInternal>, _table_size, int) \
729 nonstatic_field(BasicHashtable, _buckets, HashtableBucket*) \ 738 nonstatic_field(BasicHashtable<mtInternal>, _buckets, HashtableBucket<mtInternal>*) \
730 nonstatic_field(BasicHashtable, _free_list, BasicHashtableEntry*) \ 739 nonstatic_field(BasicHashtable<mtInternal>, _free_list, BasicHashtableEntry<mtInternal>*) \
731 nonstatic_field(BasicHashtable, _first_free_entry, char*) \ 740 nonstatic_field(BasicHashtable<mtInternal>, _first_free_entry, char*) \
732 nonstatic_field(BasicHashtable, _end_block, char*) \ 741 nonstatic_field(BasicHashtable<mtInternal>, _end_block, char*) \
733 nonstatic_field(BasicHashtable, _entry_size, int) \ 742 nonstatic_field(BasicHashtable<mtInternal>, _entry_size, int) \
734 \ 743 \
735 /*******************/ \ 744 /*******************/ \
736 /* DictionaryEntry */ \ 745 /* DictionaryEntry */ \
737 /*******************/ \ 746 /*******************/ \
738 \ 747 \
1536 \ 1545 \
1537 /*********************************/ \ 1546 /*********************************/ \
1538 /* SymbolTable, SystemDictionary */ \ 1547 /* SymbolTable, SystemDictionary */ \
1539 /*********************************/ \ 1548 /*********************************/ \
1540 \ 1549 \
1541 declare_toplevel_type(BasicHashtable) \ 1550 declare_toplevel_type(BasicHashtable<mtInternal>) \
1542 declare_type(Hashtable<intptr_t>, BasicHashtable) \ 1551 declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \
1543 declare_type(SymbolTable, Hashtable<Symbol*>) \ 1552 declare_type(SymbolTable, SymbolHashtable) \
1544 declare_type(StringTable, Hashtable<oop>) \ 1553 declare_type(StringTable, StringHashtable) \
1545 declare_type(LoaderConstraintTable, Hashtable<klassOop>) \ 1554 declare_type(LoaderConstraintTable, klassOopHashtable) \
1546 declare_type(TwoOopHashtable<klassOop>, Hashtable<klassOop>) \ 1555 declare_type(klassOopTwoOopHashtable, klassOopHashtable) \
1547 declare_type(Dictionary, TwoOopHashtable<klassOop>) \ 1556 declare_type(Dictionary, klassOopTwoOopHashtable) \
1548 declare_type(PlaceholderTable, TwoOopHashtable<Symbol*>) \ 1557 declare_type(PlaceholderTable, SymbolTwoOopHashtable) \
1549 declare_toplevel_type(BasicHashtableEntry) \ 1558 declare_toplevel_type(BasicHashtableEntry<mtInternal>) \
1550 declare_type(HashtableEntry<intptr_t>, BasicHashtableEntry) \ 1559 declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \
1551 declare_type(DictionaryEntry, HashtableEntry<klassOop>) \ 1560 declare_type(DictionaryEntry, klassHashtableEntry) \
1552 declare_type(PlaceholderEntry, HashtableEntry<Symbol*>) \ 1561 declare_type(PlaceholderEntry, SymbolHashtableEntry) \
1553 declare_type(LoaderConstraintEntry, HashtableEntry<klassOop>) \ 1562 declare_type(LoaderConstraintEntry, klassHashtableEntry) \
1554 declare_toplevel_type(HashtableBucket) \ 1563 declare_toplevel_type(HashtableBucket<mtInternal>) \
1555 declare_toplevel_type(SystemDictionary) \ 1564 declare_toplevel_type(SystemDictionary) \
1556 declare_toplevel_type(vmSymbols) \ 1565 declare_toplevel_type(vmSymbols) \
1557 declare_toplevel_type(ProtectionDomainEntry) \ 1566 declare_toplevel_type(ProtectionDomainEntry) \
1558 \ 1567 \
1559 declare_toplevel_type(GenericGrowableArray) \ 1568 declare_toplevel_type(GenericGrowableArray) \