diff -r 29eaf3feab30 -r f939a67fea30 src/hotspot/share/runtime/safepoint.hpp --- a/src/hotspot/share/runtime/safepoint.hpp Wed Jul 11 13:28:07 2018 -0400 +++ b/src/hotspot/share/runtime/safepoint.hpp Wed Jul 11 14:44:05 2018 -0400 @@ -89,20 +89,6 @@ SAFEPOINT_CLEANUP_NUM_TASKS }; - typedef struct { - float _time_stamp; // record when the current safepoint occurs in seconds - int _vmop_type; // type of VM operation triggers the safepoint - int _nof_total_threads; // total number of Java threads - int _nof_initial_running_threads; // total number of initially seen running threads - int _nof_threads_wait_to_block; // total number of threads waiting for to block - int _nof_threads_hit_page_trap; // total number of threads hitting the page trap - jlong _time_to_spin; // total time in millis spent in spinning - jlong _time_to_wait_to_block; // total time in millis spent in waiting for to block - jlong _time_to_do_cleanups; // total time in millis spent in performing cleanups - jlong _time_to_sync; // total time in millis spent in getting to _synchronized - jlong _time_to_exec_vmop; // total time in millis spent in vm operation itself - } SafepointStats; - private: static volatile SynchronizeState _state; // Threads might read this flag directly, without acquiring the Threads_lock static volatile int _waiting_to_block; // number of threads we are waiting for to block @@ -118,27 +104,16 @@ public: static volatile int _safepoint_counter; private: - static long _end_of_last_safepoint; // Time of last safepoint in milliseconds + static long _end_of_last_safepoint; // Time of last safepoint in milliseconds + static julong _coalesced_vmop_count; // coalesced vmop count // Statistics - static jlong _safepoint_begin_time; // time when safepoint begins - static SafepointStats* _safepoint_stats; // array of SafepointStats struct - static int _cur_stat_index; // current index to the above array - static julong _safepoint_reasons[]; // safepoint count for each VM op - static julong _coalesced_vmop_count; // coalesced vmop count - static jlong _max_sync_time; // maximum sync time in nanos - static jlong _max_vmop_time; // maximum vm operation time in nanos - static float _ts_of_current_safepoint; // time stamp of current safepoint in seconds - static void begin_statistics(int nof_threads, int nof_running); static void update_statistics_on_spin_end(); static void update_statistics_on_sync_end(jlong end_time); static void update_statistics_on_cleanup_end(jlong end_time); static void end_statistics(jlong end_time); static void print_statistics(); - inline static void inc_page_trap_count() { - Atomic::inc(&_safepoint_stats[_cur_stat_index]._nof_threads_hit_page_trap); - } // For debug long safepoint static void print_safepoint_timeout(SafepointTimeoutReason timeout_reason); @@ -192,7 +167,6 @@ static bool is_cleanup_needed(); static void do_cleanup_tasks(); - static void deferred_initialize_stat(); static void print_stat_on_exit(); inline static void inc_vmop_coalesced_count() { _coalesced_vmop_count++; }