Mercurial > hg > graal-compiler
changeset 12839:a6414751d537
8025996: Track metaspace usage when metaspace is expanded
Reviewed-by: coleenp, ehelin
author | stefank |
---|---|
date | Mon, 07 Oct 2013 15:51:17 +0200 |
parents | 85c1ca43713f |
children | aa6f2ea19d8f 9c8289162268 |
files | src/share/vm/memory/metaspace.cpp src/share/vm/services/memoryService.hpp |
diffstat | 2 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/memory/metaspace.cpp Mon Oct 07 15:51:08 2013 +0200 +++ b/src/share/vm/memory/metaspace.cpp Mon Oct 07 15:51:17 2013 +0200 @@ -43,6 +43,7 @@ #include "runtime/mutex.hpp" #include "runtime/orderAccess.hpp" #include "services/memTracker.hpp" +#include "services/memoryService.hpp" #include "utilities/copy.hpp" #include "utilities/debug.hpp" @@ -735,6 +736,9 @@ // and allocates from that chunk. MetaWord* grow_and_allocate(size_t word_size); + // Notify memory usage to MemoryService. + void track_metaspace_memory_usage(); + // debugging support. void dump(outputStream* const out) const; @@ -2060,6 +2064,15 @@ return chunk_word_size; } +void SpaceManager::track_metaspace_memory_usage() { + if (is_init_completed()) { + if (is_class()) { + MemoryService::track_compressed_class_memory_usage(); + } + MemoryService::track_metaspace_memory_usage(); + } +} + MetaWord* SpaceManager::grow_and_allocate(size_t word_size) { assert(vs_list()->current_virtual_space() != NULL, "Should have been set"); @@ -2099,6 +2112,9 @@ mem = next->allocate(word_size); } + // Track metaspace memory usage statistic. + track_metaspace_memory_usage(); + return mem; }
--- a/src/share/vm/services/memoryService.hpp Mon Oct 07 15:51:08 2013 +0200 +++ b/src/share/vm/services/memoryService.hpp Mon Oct 07 15:51:17 2013 +0200 @@ -148,6 +148,12 @@ static void track_code_cache_memory_usage() { track_memory_pool_usage(_code_heap_pool); } + static void track_metaspace_memory_usage() { + track_memory_pool_usage(_metaspace_pool); + } + static void track_compressed_class_memory_usage() { + track_memory_pool_usage(_compressed_class_pool); + } static void track_memory_pool_usage(MemoryPool* pool); static void gc_begin(bool fullGC, bool recordGCBeginTime,