equal
deleted
inserted
replaced
89 static bool print_memory_usage(BaselineOutputer& out, size_t unit, |
89 static bool print_memory_usage(BaselineOutputer& out, size_t unit, |
90 bool summary_only = true) { } |
90 bool summary_only = true) { } |
91 static bool compare_memory_usage(BaselineOutputer& out, size_t unit, |
91 static bool compare_memory_usage(BaselineOutputer& out, size_t unit, |
92 bool summary_only = true) { } |
92 bool summary_only = true) { } |
93 |
93 |
|
94 static bool wbtest_wait_for_data_merge() { } |
|
95 |
94 static inline void sync() { } |
96 static inline void sync() { } |
95 static inline void thread_exiting(JavaThread* thread) { } |
97 static inline void thread_exiting(JavaThread* thread) { } |
96 |
|
97 }; |
98 }; |
98 |
99 |
99 |
100 |
100 #else // !INCLUDE_NMT |
101 #else // !INCLUDE_NMT |
101 |
102 |
108 #include "services/memRecorder.hpp" |
109 #include "services/memRecorder.hpp" |
109 #include "services/memSnapshot.hpp" |
110 #include "services/memSnapshot.hpp" |
110 #include "services/memTrackWorker.hpp" |
111 #include "services/memTrackWorker.hpp" |
111 |
112 |
112 extern bool NMT_track_callsite; |
113 extern bool NMT_track_callsite; |
|
114 |
|
115 #ifndef MAX_UNSIGNED_LONG |
|
116 #define MAX_UNSIGNED_LONG (unsigned long)(-1) |
|
117 #endif |
113 |
118 |
114 #ifdef ASSERT |
119 #ifdef ASSERT |
115 #define DEBUG_CALLER_PC (NMT_track_callsite ? os::get_caller_pc(2) : 0) |
120 #define DEBUG_CALLER_PC (NMT_track_callsite ? os::get_caller_pc(2) : 0) |
116 #else |
121 #else |
117 #define DEBUG_CALLER_PC 0 |
122 #define DEBUG_CALLER_PC 0 |
378 bool summary_only = true); |
383 bool summary_only = true); |
379 // compare memory usage between current snapshot and baseline |
384 // compare memory usage between current snapshot and baseline |
380 static bool compare_memory_usage(BaselineOutputer& out, size_t unit, |
385 static bool compare_memory_usage(BaselineOutputer& out, size_t unit, |
381 bool summary_only = true); |
386 bool summary_only = true); |
382 |
387 |
|
388 // the version for whitebox testing support, it ensures that all memory |
|
389 // activities before this method call, are reflected in the snapshot |
|
390 // database. |
|
391 static bool wbtest_wait_for_data_merge(); |
|
392 |
383 // sync is called within global safepoint to synchronize nmt data |
393 // sync is called within global safepoint to synchronize nmt data |
384 static void sync(); |
394 static void sync(); |
385 |
395 |
386 // called when a thread is about to exit |
396 // called when a thread is about to exit |
387 static void thread_exiting(JavaThread* thread); |
397 static void thread_exiting(JavaThread* thread); |
430 static void create_memory_record(address addr, MEMFLAGS type, |
440 static void create_memory_record(address addr, MEMFLAGS type, |
431 size_t size, address pc, Thread* thread); |
441 size_t size, address pc, Thread* thread); |
432 static void create_record_in_recorder(address addr, MEMFLAGS type, |
442 static void create_record_in_recorder(address addr, MEMFLAGS type, |
433 size_t size, address pc, JavaThread* thread); |
443 size_t size, address pc, JavaThread* thread); |
434 |
444 |
|
445 static void set_current_processing_generation(unsigned long generation) { |
|
446 _worker_thread_idle = false; |
|
447 _processing_generation = generation; |
|
448 } |
|
449 |
|
450 static void report_worker_idle() { |
|
451 _worker_thread_idle = true; |
|
452 } |
|
453 |
435 private: |
454 private: |
436 // global memory snapshot |
455 // global memory snapshot |
437 static MemSnapshot* _snapshot; |
456 static MemSnapshot* _snapshot; |
438 |
457 |
439 // a memory baseline of snapshot |
458 // a memory baseline of snapshot |
481 |
500 |
482 // current nmt state |
501 // current nmt state |
483 static volatile enum NMTStates _state; |
502 static volatile enum NMTStates _state; |
484 // the reason for shutting down nmt |
503 // the reason for shutting down nmt |
485 static enum ShutdownReason _reason; |
504 static enum ShutdownReason _reason; |
|
505 // the generation that NMT is processing |
|
506 static volatile unsigned long _processing_generation; |
|
507 // although NMT is still procesing current generation, but |
|
508 // there is not more recorder to process, set idle state |
|
509 static volatile bool _worker_thread_idle; |
486 }; |
510 }; |
487 |
511 |
488 #endif // !INCLUDE_NMT |
512 #endif // !INCLUDE_NMT |
489 |
513 |
490 #endif // SHARE_VM_SERVICES_MEM_TRACKER_HPP |
514 #endif // SHARE_VM_SERVICES_MEM_TRACKER_HPP |