< prev index next >
src/hotspot/share/runtime/threadSMR.hpp
Print this page
rev 48227 : 8193135: get rid of redundant _smr_ prefix/infix in ThreadSMRSupport stuff
Reviewed-by:
*** 79,149 ****
// SMR Support for the Threads class.
//
class ThreadsSMRSupport : AllStatic {
// The coordination between ThreadsSMRSupport::release_stable_list() and
! // ThreadsSMRSupport::smr_delete() uses the smr_delete_lock in order to
// reduce the traffic on the Threads_lock.
! static Monitor* _smr_delete_lock;
// The '_cnt', '_max' and '_times" fields are enabled via
// -XX:+EnableThreadSMRStatistics (see thread.cpp for a
// description about each field):
! static uint _smr_delete_lock_wait_cnt;
! static uint _smr_delete_lock_wait_max;
! // The smr_delete_notify flag is used for proper double-check
! // locking in order to reduce the traffic on the smr_delete_lock.
! static volatile uint _smr_delete_notify;
! static volatile uint _smr_deleted_thread_cnt;
! static volatile uint _smr_deleted_thread_time_max;
! static volatile uint _smr_deleted_thread_times;
! static ThreadsList* volatile _smr_java_thread_list;
! static uint64_t _smr_java_thread_list_alloc_cnt;
! static uint64_t _smr_java_thread_list_free_cnt;
! static uint _smr_java_thread_list_max;
! static uint _smr_nested_thread_list_max;
! static volatile uint _smr_tlh_cnt;
! static volatile uint _smr_tlh_time_max;
! static volatile uint _smr_tlh_times;
! static ThreadsList* _smr_to_delete_list;
! static uint _smr_to_delete_list_cnt;
! static uint _smr_to_delete_list_max;
static ThreadsList *acquire_stable_list_fast_path(Thread *self);
static ThreadsList *acquire_stable_list_nested_path(Thread *self);
! static void add_smr_deleted_thread_times(uint add_value);
! static void add_smr_tlh_times(uint add_value);
! static void clear_smr_delete_notify();
! static void inc_smr_deleted_thread_cnt();
! static void inc_smr_java_thread_list_alloc_cnt();
! static void inc_smr_tlh_cnt();
static bool is_a_protected_JavaThread(JavaThread *thread);
static void release_stable_list_fast_path(Thread *self);
static void release_stable_list_nested_path(Thread *self);
static void release_stable_list_wake_up(char *log_str);
! static void set_smr_delete_notify();
! static Monitor* smr_delete_lock() { return _smr_delete_lock; }
! static bool smr_delete_notify();
! static void smr_free_list(ThreadsList* threads);
! static void update_smr_deleted_thread_time_max(uint new_value);
! static void update_smr_java_thread_list_max(uint new_value);
! static void update_smr_tlh_time_max(uint new_value);
! static ThreadsList* xchg_smr_java_thread_list(ThreadsList* new_list);
public:
static ThreadsList *acquire_stable_list(Thread *self, bool is_ThreadsListSetter);
static void add_thread(JavaThread *thread);
! static ThreadsList* get_smr_java_thread_list();
static bool is_a_protected_JavaThread_with_lock(JavaThread *thread);
static void release_stable_list(Thread *self);
static void remove_thread(JavaThread *thread);
static void smr_delete(JavaThread *thread);
! static void update_smr_tlh_stats(uint millis);
// Logging and printing support:
! static void log_smr_statistics();
! static void print_smr_info_elements_on(outputStream* st, ThreadsList* t_list);
! static void print_smr_info_on(outputStream* st);
};
// A fast list of JavaThreads.
//
class ThreadsList : public CHeapObj<mtThread> {
--- 79,150 ----
// SMR Support for the Threads class.
//
class ThreadsSMRSupport : AllStatic {
// The coordination between ThreadsSMRSupport::release_stable_list() and
! // ThreadsSMRSupport::smr_delete() uses the delete_lock in order to
// reduce the traffic on the Threads_lock.
! static Monitor* _delete_lock;
// The '_cnt', '_max' and '_times" fields are enabled via
// -XX:+EnableThreadSMRStatistics (see thread.cpp for a
// description about each field):
! static uint _delete_lock_wait_cnt;
! static uint _delete_lock_wait_max;
! // The delete_notify flag is used for proper double-check
! // locking in order to reduce the traffic on the system wide
! // Thread-SMR delete_lock.
! static volatile uint _delete_notify;
! static volatile uint _deleted_thread_cnt;
! static volatile uint _deleted_thread_time_max;
! static volatile uint _deleted_thread_times;
! static ThreadsList* volatile _java_thread_list;
! static uint64_t _java_thread_list_alloc_cnt;
! static uint64_t _java_thread_list_free_cnt;
! static uint _java_thread_list_max;
! static uint _nested_thread_list_max;
! static volatile uint _tlh_cnt;
! static volatile uint _tlh_time_max;
! static volatile uint _tlh_times;
! static ThreadsList* _to_delete_list;
! static uint _to_delete_list_cnt;
! static uint _to_delete_list_max;
static ThreadsList *acquire_stable_list_fast_path(Thread *self);
static ThreadsList *acquire_stable_list_nested_path(Thread *self);
! static void add_deleted_thread_times(uint add_value);
! static void add_tlh_times(uint add_value);
! static void clear_delete_notify();
! static Monitor* delete_lock() { return _delete_lock; }
! static bool delete_notify();
! static void free_list(ThreadsList* threads);
! static void inc_deleted_thread_cnt();
! static void inc_java_thread_list_alloc_cnt();
! static void inc_tlh_cnt();
static bool is_a_protected_JavaThread(JavaThread *thread);
static void release_stable_list_fast_path(Thread *self);
static void release_stable_list_nested_path(Thread *self);
static void release_stable_list_wake_up(char *log_str);
! static void set_delete_notify();
! static void update_deleted_thread_time_max(uint new_value);
! static void update_java_thread_list_max(uint new_value);
! static void update_tlh_time_max(uint new_value);
! static ThreadsList* xchg_java_thread_list(ThreadsList* new_list);
public:
static ThreadsList *acquire_stable_list(Thread *self, bool is_ThreadsListSetter);
static void add_thread(JavaThread *thread);
! static ThreadsList* get_java_thread_list();
static bool is_a_protected_JavaThread_with_lock(JavaThread *thread);
static void release_stable_list(Thread *self);
static void remove_thread(JavaThread *thread);
static void smr_delete(JavaThread *thread);
! static void update_tlh_stats(uint millis);
// Logging and printing support:
! static void log_statistics();
! static void print_info_elements_on(outputStream* st, ThreadsList* t_list);
! static void print_info_on(outputStream* st);
};
// A fast list of JavaThreads.
//
class ThreadsList : public CHeapObj<mtThread> {
< prev index next >