hotspot/src/share/vm/services/memoryPool.cpp
changeset 29690 02ce43f0f95a
parent 24831 e4df2f64bb2e
child 30247 9925b07bba5b
equal deleted inserted replaced
29689:dc72789f83ae 29690:02ce43f0f95a
    23  */
    23  */
    24 
    24 
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
    26 #include "classfile/systemDictionary.hpp"
    26 #include "classfile/systemDictionary.hpp"
    27 #include "classfile/vmSymbols.hpp"
    27 #include "classfile/vmSymbols.hpp"
       
    28 #include "memory/defNewGeneration.hpp"
    28 #include "memory/metaspace.hpp"
    29 #include "memory/metaspace.hpp"
       
    30 #include "memory/space.hpp"
    29 #include "oops/oop.inline.hpp"
    31 #include "oops/oop.inline.hpp"
    30 #include "runtime/handles.inline.hpp"
    32 #include "runtime/handles.inline.hpp"
    31 #include "runtime/javaCalls.hpp"
    33 #include "runtime/javaCalls.hpp"
    32 #include "runtime/orderAccess.inline.hpp"
    34 #include "runtime/orderAccess.inline.hpp"
    33 #include "services/lowMemoryDetector.hpp"
    35 #include "services/lowMemoryDetector.hpp"
    34 #include "services/management.hpp"
    36 #include "services/management.hpp"
    35 #include "services/memoryManager.hpp"
    37 #include "services/memoryManager.hpp"
    36 #include "services/memoryPool.hpp"
    38 #include "services/memoryPool.hpp"
       
    39 #include "utilities/globalDefinitions.hpp"
    37 #include "utilities/macros.hpp"
    40 #include "utilities/macros.hpp"
    38 #include "utilities/globalDefinitions.hpp"
    41 #if INCLUDE_ALL_GCS
       
    42 #include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
       
    43 #endif
    39 
    44 
    40 MemoryPool::MemoryPool(const char* name,
    45 MemoryPool::MemoryPool(const char* name,
    41                        PoolType type,
    46                        PoolType type,
    42                        size_t init_size,
    47                        size_t init_size,
    43                        size_t max_size,
    48                        size_t max_size,
   185                                          bool support_usage_threshold) :
   190                                          bool support_usage_threshold) :
   186   CollectedMemoryPool(name, type, space->capacity(), max_size,
   191   CollectedMemoryPool(name, type, space->capacity(), max_size,
   187                       support_usage_threshold), _space(space) {
   192                       support_usage_threshold), _space(space) {
   188 }
   193 }
   189 
   194 
       
   195 size_t ContiguousSpacePool::used_in_bytes() {
       
   196   return space()->used();
       
   197 }
       
   198 
   190 MemoryUsage ContiguousSpacePool::get_memory_usage() {
   199 MemoryUsage ContiguousSpacePool::get_memory_usage() {
   191   size_t maxSize   = (available_for_allocation() ? max_size() : 0);
   200   size_t maxSize   = (available_for_allocation() ? max_size() : 0);
   192   size_t used      = used_in_bytes();
   201   size_t used      = used_in_bytes();
   193   size_t committed = _space->capacity();
   202   size_t committed = _space->capacity();
   194 
   203 
   200                                                          PoolType type,
   209                                                          PoolType type,
   201                                                          size_t max_size,
   210                                                          size_t max_size,
   202                                                          bool support_usage_threshold) :
   211                                                          bool support_usage_threshold) :
   203   CollectedMemoryPool(name, type, gen->from()->capacity(), max_size,
   212   CollectedMemoryPool(name, type, gen->from()->capacity(), max_size,
   204                       support_usage_threshold), _gen(gen) {
   213                       support_usage_threshold), _gen(gen) {
       
   214 }
       
   215 
       
   216 size_t SurvivorContiguousSpacePool::used_in_bytes() {
       
   217   return _gen->from()->used();
       
   218 }
       
   219 
       
   220 size_t SurvivorContiguousSpacePool::committed_in_bytes() {
       
   221   return _gen->from()->capacity();
   205 }
   222 }
   206 
   223 
   207 MemoryUsage SurvivorContiguousSpacePool::get_memory_usage() {
   224 MemoryUsage SurvivorContiguousSpacePool::get_memory_usage() {
   208   size_t maxSize = (available_for_allocation() ? max_size() : 0);
   225   size_t maxSize = (available_for_allocation() ? max_size() : 0);
   209   size_t used    = used_in_bytes();
   226   size_t used    = used_in_bytes();
   220                                                            bool support_usage_threshold) :
   237                                                            bool support_usage_threshold) :
   221   CollectedMemoryPool(name, type, space->capacity(), max_size,
   238   CollectedMemoryPool(name, type, space->capacity(), max_size,
   222                       support_usage_threshold), _space(space) {
   239                       support_usage_threshold), _space(space) {
   223 }
   240 }
   224 
   241 
       
   242 size_t CompactibleFreeListSpacePool::used_in_bytes() {
       
   243   return _space->used();
       
   244 }
       
   245 
   225 MemoryUsage CompactibleFreeListSpacePool::get_memory_usage() {
   246 MemoryUsage CompactibleFreeListSpacePool::get_memory_usage() {
   226   size_t maxSize   = (available_for_allocation() ? max_size() : 0);
   247   size_t maxSize   = (available_for_allocation() ? max_size() : 0);
   227   size_t used      = used_in_bytes();
   248   size_t used      = used_in_bytes();
   228   size_t committed = _space->capacity();
   249   size_t committed = _space->capacity();
   229 
   250 
   237                                bool support_usage_threshold) :
   258                                bool support_usage_threshold) :
   238   CollectedMemoryPool(name, type, gen->capacity(), gen->max_capacity(),
   259   CollectedMemoryPool(name, type, gen->capacity(), gen->max_capacity(),
   239                       support_usage_threshold), _gen(gen) {
   260                       support_usage_threshold), _gen(gen) {
   240 }
   261 }
   241 
   262 
       
   263 size_t GenerationPool::used_in_bytes() {
       
   264   return _gen->used();
       
   265 }
       
   266 
   242 MemoryUsage GenerationPool::get_memory_usage() {
   267 MemoryUsage GenerationPool::get_memory_usage() {
   243   size_t used      = used_in_bytes();
   268   size_t used      = used_in_bytes();
   244   size_t committed = _gen->capacity();
   269   size_t committed = _gen->capacity();
   245   size_t maxSize   = (available_for_allocation() ? max_size() : 0);
   270   size_t maxSize   = (available_for_allocation() ? max_size() : 0);
   246 
   271