Mercurial > hg > graal-jvmci-8
comparison src/os/windows/vm/os_windows.hpp @ 6197: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
6174:74533f63b116 | 6197:d2a62e0f25eb |
---|---|
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 |