< prev index next >

src/hotspot/share/services/memTracker.cpp

Print this page
rev 59103 : imported patch hotspot


  24 #include "precompiled.hpp"
  25 #include "jvm.h"
  26 
  27 #include "runtime/atomic.hpp"
  28 #include "runtime/orderAccess.hpp"
  29 #include "runtime/vmThread.hpp"
  30 #include "runtime/vmOperations.hpp"
  31 #include "services/memBaseline.hpp"
  32 #include "services/memReporter.hpp"
  33 #include "services/mallocTracker.inline.hpp"
  34 #include "services/memTracker.hpp"
  35 #include "services/threadStackTracker.hpp"
  36 #include "utilities/debug.hpp"
  37 #include "utilities/defaultStream.hpp"
  38 #include "utilities/vmError.hpp"
  39 
  40 #ifdef _WINDOWS
  41 #include <windows.h>
  42 #endif
  43 
  44 #ifdef SOLARIS
  45   volatile bool NMT_stack_walkable = false;
  46 #else
  47   volatile bool NMT_stack_walkable = true;
  48 #endif
  49 
  50 volatile NMT_TrackingLevel MemTracker::_tracking_level = NMT_unknown;
  51 NMT_TrackingLevel MemTracker::_cmdline_tracking_level = NMT_unknown;
  52 
  53 MemBaseline MemTracker::_baseline;
  54 bool MemTracker::_is_nmt_env_valid = true;
  55 
  56 static const size_t buffer_size = 64;
  57 
  58 NMT_TrackingLevel MemTracker::init_tracking_level() {
  59   // Memory type is encoded into tracking header as a byte field,
  60   // make sure that we don't overflow it.
  61   STATIC_ASSERT(mt_number_of_types <= max_jubyte);
  62 
  63   char nmt_env_variable[buffer_size];
  64   jio_snprintf(nmt_env_variable, sizeof(nmt_env_variable), "NMT_LEVEL_%d", os::current_process_id());
  65   const char* nmt_env_value;
  66 #ifdef _WINDOWS
  67   // Read the NMT environment variable from the PEB instead of the CRT
  68   char value[buffer_size];
  69   nmt_env_value = GetEnvironmentVariable(nmt_env_variable, value, (DWORD)sizeof(value)) != 0 ? value : NULL;




  24 #include "precompiled.hpp"
  25 #include "jvm.h"
  26 
  27 #include "runtime/atomic.hpp"
  28 #include "runtime/orderAccess.hpp"
  29 #include "runtime/vmThread.hpp"
  30 #include "runtime/vmOperations.hpp"
  31 #include "services/memBaseline.hpp"
  32 #include "services/memReporter.hpp"
  33 #include "services/mallocTracker.inline.hpp"
  34 #include "services/memTracker.hpp"
  35 #include "services/threadStackTracker.hpp"
  36 #include "utilities/debug.hpp"
  37 #include "utilities/defaultStream.hpp"
  38 #include "utilities/vmError.hpp"
  39 
  40 #ifdef _WINDOWS
  41 #include <windows.h>
  42 #endif
  43 






  44 volatile NMT_TrackingLevel MemTracker::_tracking_level = NMT_unknown;
  45 NMT_TrackingLevel MemTracker::_cmdline_tracking_level = NMT_unknown;
  46 
  47 MemBaseline MemTracker::_baseline;
  48 bool MemTracker::_is_nmt_env_valid = true;
  49 
  50 static const size_t buffer_size = 64;
  51 
  52 NMT_TrackingLevel MemTracker::init_tracking_level() {
  53   // Memory type is encoded into tracking header as a byte field,
  54   // make sure that we don't overflow it.
  55   STATIC_ASSERT(mt_number_of_types <= max_jubyte);
  56 
  57   char nmt_env_variable[buffer_size];
  58   jio_snprintf(nmt_env_variable, sizeof(nmt_env_variable), "NMT_LEVEL_%d", os::current_process_id());
  59   const char* nmt_env_value;
  60 #ifdef _WINDOWS
  61   // Read the NMT environment variable from the PEB instead of the CRT
  62   char value[buffer_size];
  63   nmt_env_value = GetEnvironmentVariable(nmt_env_variable, value, (DWORD)sizeof(value)) != 0 ? value : NULL;


< prev index next >