comparison src/os/windows/vm/os_windows.hpp @ 3465: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 7432b9db36ff
children b9a9ed0f8eeb
comparison
equal deleted inserted replaced
8:4e353af3a1b1 9:28382d52f4f8
96 96
97 // filter function to ignore faults on serializations page 97 // filter function to ignore faults on serializations page
98 static LONG WINAPI serialize_fault_filter(struct _EXCEPTION_POINTERS* e); 98 static LONG WINAPI serialize_fault_filter(struct _EXCEPTION_POINTERS* e);
99 }; 99 };
100 100
101 class PlatformEvent : public CHeapObj { 101 class PlatformEvent : public CHeapObj<mtInternal> {
102 private: 102 private:
103 double CachePad [4] ; // increase odds that _Event is sole occupant of cache line 103 double CachePad [4] ; // increase odds that _Event is sole occupant of cache line
104 volatile int _Event ; 104 volatile int _Event ;
105 HANDLE _ParkHandle ; 105 HANDLE _ParkHandle ;
106 106
122 int park (jlong millis) ; 122 int park (jlong millis) ;
123 } ; 123 } ;
124 124
125 125
126 126
127 class PlatformParker : public CHeapObj { 127 class PlatformParker : public CHeapObj<mtInternal> {
128 protected: 128 protected:
129 HANDLE _ParkEvent ; 129 HANDLE _ParkEvent ;
130 130
131 public: 131 public:
132 ~PlatformParker () { guarantee (0, "invariant") ; } 132 ~PlatformParker () { guarantee (0, "invariant") ; }
180 static BOOL NumaCallsAvailable(); 180 static BOOL NumaCallsAvailable();
181 static LPVOID VirtualAllocExNuma(HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD); 181 static LPVOID VirtualAllocExNuma(HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD);
182 static BOOL GetNumaHighestNodeNumber(PULONG); 182 static BOOL GetNumaHighestNodeNumber(PULONG);
183 static BOOL GetNumaNodeProcessorMask(UCHAR, PULONGLONG); 183 static BOOL GetNumaNodeProcessorMask(UCHAR, PULONGLONG);
184 184
185 // Stack walking
186 static USHORT RtlCaptureStackBackTrace(ULONG, ULONG, PVOID*, PULONG);
187
185 private: 188 private:
186 // GetLargePageMinimum available on Windows Vista/Windows Server 2003 189 // GetLargePageMinimum available on Windows Vista/Windows Server 2003
187 // and later 190 // and later
188 // NUMA calls available Windows Vista/WS2008 and later 191 // NUMA calls available Windows Vista/WS2008 and later
189 192
190 static SIZE_T (WINAPI *_GetLargePageMinimum)(void); 193 static SIZE_T (WINAPI *_GetLargePageMinimum)(void);
191 static LPVOID (WINAPI *_VirtualAllocExNuma) (HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD); 194 static LPVOID (WINAPI *_VirtualAllocExNuma) (HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD);
192 static BOOL (WINAPI *_GetNumaHighestNodeNumber) (PULONG); 195 static BOOL (WINAPI *_GetNumaHighestNodeNumber) (PULONG);
193 static BOOL (WINAPI *_GetNumaNodeProcessorMask) (UCHAR, PULONGLONG); 196 static BOOL (WINAPI *_GetNumaNodeProcessorMask) (UCHAR, PULONGLONG);
197 static USHORT (WINAPI *_RtlCaptureStackBackTrace)(ULONG, ULONG, PVOID*, PULONG);
194 static BOOL initialized; 198 static BOOL initialized;
195 199
196 static void initialize(); 200 static void initialize();
197 static void initializeCommon(); 201 static void initializeCommon();
198 202