6995781: Native Memory Tracking (Phase 1)

7151532: DCmd for hotspot native memory tracking

Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd

Reviewed-by: acorn, coleenp, fparain
This commit is contained in:
Zhengyu Gu 2012-06-28 17:03:16 -04:00
parent 8e42425c92
commit a39b17624a
315 changed files with 7245 additions and 1477 deletions

View file

@ -235,7 +235,6 @@
#ifndef REG_COUNT
#define REG_COUNT 0
#endif
// whole purpose of this function is to work around bug c++/27724 in gcc 4.1.1
// with optimization turned on it doesn't affect produced code
static inline uint64_t cast_uint64_t(size_t x)
@ -244,6 +243,16 @@ static inline uint64_t cast_uint64_t(size_t x)
}
typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry;
typedef Hashtable<intptr_t, mtInternal> IntptrHashtable;
typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable;
typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry;
typedef Hashtable<oop, mtSymbol> StringHashtable;
typedef TwoOopHashtable<klassOop, mtClass> klassOopTwoOopHashtable;
typedef Hashtable<klassOop, mtClass> klassOopHashtable;
typedef HashtableEntry<klassOop, mtClass> klassHashtableEntry;
typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable;
//--------------------------------------------------------------------------------
// VM_STRUCTS
//
@ -711,26 +720,26 @@ static inline uint64_t cast_uint64_t(size_t x)
/* HashtableBucket */ \
/*******************/ \
\
nonstatic_field(HashtableBucket, _entry, BasicHashtableEntry*) \
nonstatic_field(HashtableBucket<mtInternal>, _entry, BasicHashtableEntry<mtInternal>*) \
\
/******************/ \
/* HashtableEntry */ \
/******************/ \
\
nonstatic_field(BasicHashtableEntry, _next, BasicHashtableEntry*) \
nonstatic_field(BasicHashtableEntry, _hash, unsigned int) \
nonstatic_field(HashtableEntry<intptr_t>, _literal, intptr_t) \
nonstatic_field(BasicHashtableEntry<mtInternal>, _next, BasicHashtableEntry<mtInternal>*) \
nonstatic_field(BasicHashtableEntry<mtInternal>, _hash, unsigned int) \
nonstatic_field(IntptrHashtableEntry, _literal, intptr_t) \
\
/*************/ \
/* Hashtable */ \
/*************/ \
\
nonstatic_field(BasicHashtable, _table_size, int) \
nonstatic_field(BasicHashtable, _buckets, HashtableBucket*) \
nonstatic_field(BasicHashtable, _free_list, BasicHashtableEntry*) \
nonstatic_field(BasicHashtable, _first_free_entry, char*) \
nonstatic_field(BasicHashtable, _end_block, char*) \
nonstatic_field(BasicHashtable, _entry_size, int) \
nonstatic_field(BasicHashtable<mtInternal>, _table_size, int) \
nonstatic_field(BasicHashtable<mtInternal>, _buckets, HashtableBucket<mtInternal>*) \
nonstatic_field(BasicHashtable<mtInternal>, _free_list, BasicHashtableEntry<mtInternal>*) \
nonstatic_field(BasicHashtable<mtInternal>, _first_free_entry, char*) \
nonstatic_field(BasicHashtable<mtInternal>, _end_block, char*) \
nonstatic_field(BasicHashtable<mtInternal>, _entry_size, int) \
\
/*******************/ \
/* DictionaryEntry */ \
@ -1538,20 +1547,20 @@ static inline uint64_t cast_uint64_t(size_t x)
/* SymbolTable, SystemDictionary */ \
/*********************************/ \
\
declare_toplevel_type(BasicHashtable) \
declare_type(Hashtable<intptr_t>, BasicHashtable) \
declare_type(SymbolTable, Hashtable<Symbol*>) \
declare_type(StringTable, Hashtable<oop>) \
declare_type(LoaderConstraintTable, Hashtable<klassOop>) \
declare_type(TwoOopHashtable<klassOop>, Hashtable<klassOop>) \
declare_type(Dictionary, TwoOopHashtable<klassOop>) \
declare_type(PlaceholderTable, TwoOopHashtable<Symbol*>) \
declare_toplevel_type(BasicHashtableEntry) \
declare_type(HashtableEntry<intptr_t>, BasicHashtableEntry) \
declare_type(DictionaryEntry, HashtableEntry<klassOop>) \
declare_type(PlaceholderEntry, HashtableEntry<Symbol*>) \
declare_type(LoaderConstraintEntry, HashtableEntry<klassOop>) \
declare_toplevel_type(HashtableBucket) \
declare_toplevel_type(BasicHashtable<mtInternal>) \
declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \
declare_type(SymbolTable, SymbolHashtable) \
declare_type(StringTable, StringHashtable) \
declare_type(LoaderConstraintTable, klassOopHashtable) \
declare_type(klassOopTwoOopHashtable, klassOopHashtable) \
declare_type(Dictionary, klassOopTwoOopHashtable) \
declare_type(PlaceholderTable, SymbolTwoOopHashtable) \
declare_toplevel_type(BasicHashtableEntry<mtInternal>) \
declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \
declare_type(DictionaryEntry, klassHashtableEntry) \
declare_type(PlaceholderEntry, SymbolHashtableEntry) \
declare_type(LoaderConstraintEntry, klassHashtableEntry) \
declare_toplevel_type(HashtableBucket<mtInternal>) \
declare_toplevel_type(SystemDictionary) \
declare_toplevel_type(vmSymbols) \
declare_toplevel_type(ProtectionDomainEntry) \