hprof_tls.c File Reference

#include "hprof.h"
Include dependency graph for hprof_tls.c:

Go to the source code of this file.

Data Structures

struct  StackElement
struct  TlsInfo
struct  SearchData
struct  IterateInfo
struct  ThreadList
struct  SampleData

Defines

#define INITIAL_THREAD_STACK_LIMIT   64

Functions

static SerialNumber get_key (TlsIndex index)
static TlsInfoget_info (TlsIndex index)
static void delete_globalref (JNIEnv *env, TlsInfo *info)
static void clean_info (TlsInfo *info)
static void cleanup_item (TableIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
static void delete_ref_item (TableIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
static void list_item (TableIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
static void search_item (TableIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
static TlsIndex search (JNIEnv *env, jthread thread)
static void garbage_collect_item (TableIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
void tls_garbage_collect (JNIEnv *env)
static void sum_sample_status_item (TableIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
static void setup_trace_buffers (TlsInfo *info, int max_depth)
static TraceIndex get_trace (jthread thread, SerialNumber thread_serial_num, int depth, jboolean skip_init, FrameIndex *frames_buffer, jvmtiFrameInfo *jframes_buffer)
static void sample_setter (TableIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
static void get_thread_list (TableIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
static void adjust_stats (jlong total_time, jlong self_time, TraceIndex trace_index, StackElement *parent)
static void push_method (Stack *stack, jlong method_start_time, jmethodID method)
static Stackinsure_method_on_stack (jthread thread, TlsInfo *info, jlong current_time, FrameIndex frame_index, jmethodID method)
static void pop_method (TlsIndex index, jlong current_time, jmethodID method, FrameIndex frame_index)
static void dump_thread_state (TlsIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
static SerialNumber get_serial_number (JNIEnv *env, jthread thread)
static void dump_monitor_state (TlsIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
static jlong monitor_time (void)
static jlong method_time (void)
TlsIndex tls_find_or_create (JNIEnv *env, jthread thread)
void tls_agent_thread (JNIEnv *env, jthread thread)
void tls_init (void)
void tls_list (void)
jint tls_sum_sample_status (void)
void tls_set_sample_status (ObjectIndex object_index, jint sample_status)
jint tls_get_tracker_status (JNIEnv *env, jthread thread, jboolean skip_init, jint **ppstatus, TlsIndex *pindex, SerialNumber *pthread_serial_num, TraceIndex *ptrace_index)
MonitorIndex tls_get_monitor (TlsIndex index)
void tls_set_thread_object_index (TlsIndex index, ObjectIndex thread_object_index)
SerialNumber tls_get_thread_serial_number (TlsIndex index)
void tls_set_monitor (TlsIndex index, MonitorIndex monitor_index)
void tls_cleanup (void)
void tls_delete_global_references (JNIEnv *env)
void tls_thread_ended (JNIEnv *env, TlsIndex index)
void tls_sample_all_threads (JNIEnv *env)
void tls_push_method (TlsIndex index, jmethodID method)
void tls_pop_exception_catch (TlsIndex index, jthread thread, jmethodID method)
void tls_pop_method (TlsIndex index, jthread thread, jmethodID method)
static void update_all_last_traces (JNIEnv *env)
void tls_dump_traces (JNIEnv *env)
void tls_dump_monitor_state (JNIEnv *env)
void tls_monitor_start_timer (TlsIndex index)
jlong tls_monitor_stop_timer (TlsIndex index)
TraceIndex tls_get_trace (TlsIndex index, JNIEnv *env, int depth, jboolean skip_init)
void tls_set_in_heap_dump (TlsIndex index, jint in_heap_dump)
jint tls_get_in_heap_dump (TlsIndex index)
static void clean_in_heap_dump (TableIndex index, void *key_ptr, int key_len, void *info_ptr, void *arg)
void tls_clear_in_heap_dump (void)
TlsIndex tls_find (SerialNumber thread_serial_num)

Define Documentation

#define INITIAL_THREAD_STACK_LIMIT   64

Definition at line 76 of file hprof_tls.c.


Function Documentation

static void adjust_stats ( jlong  total_time,
jlong  self_time,
TraceIndex  trace_index,
StackElement parent 
) [static]

Definition at line 394 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void clean_in_heap_dump ( TableIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 1160 of file hprof_tls.c.

Here is the caller graph for this function:

static void clean_info ( TlsInfo info  )  [static]

Definition at line 166 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void cleanup_item ( TableIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 184 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void delete_globalref ( JNIEnv *  env,
TlsInfo info 
) [static]

Definition at line 152 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void delete_ref_item ( TableIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 194 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void dump_monitor_state ( TlsIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 598 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void dump_thread_state ( TlsIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 551 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void garbage_collect_item ( TableIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 259 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static TlsInfo* get_info ( TlsIndex  index  )  [static]

Definition at line 146 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static SerialNumber get_key ( TlsIndex  index  )  [static]

Definition at line 129 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static SerialNumber get_serial_number ( JNIEnv *  env,
jthread  thread 
) [static]

Definition at line 585 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void get_thread_list ( TableIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 361 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static TraceIndex get_trace ( jthread  thread,
SerialNumber  thread_serial_num,
int  depth,
jboolean  skip_init,
FrameIndex frames_buffer,
jvmtiFrameInfo *  jframes_buffer 
) [static]

Definition at line 325 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static Stack* insure_method_on_stack ( jthread  thread,
TlsInfo info,
jlong  current_time,
FrameIndex  frame_index,
jmethodID  method 
) [static]

Definition at line 422 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void list_item ( TableIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 201 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static jlong method_time ( void   )  [static]

Definition at line 669 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static jlong monitor_time ( void   )  [static]

Definition at line 660 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void pop_method ( TlsIndex  index,
jlong  current_time,
jmethodID  method,
FrameIndex  frame_index 
) [static]

Definition at line 481 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void push_method ( Stack stack,
jlong  method_start_time,
jmethodID  method 
) [static]

Definition at line 404 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void sample_setter ( TableIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 342 of file hprof_tls.c.

Here is the caller graph for this function:

static TlsIndex search ( JNIEnv *  env,
jthread  thread 
) [static]

Definition at line 244 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void search_item ( TableIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 222 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void setup_trace_buffers ( TlsInfo info,
int  max_depth 
) [static]

Definition at line 302 of file hprof_tls.c.

Here is the caller graph for this function:

static void sum_sample_status_item ( TableIndex  index,
void *  key_ptr,
int  key_len,
void *  info_ptr,
void *  arg 
) [static]

Definition at line 290 of file hprof_tls.c.

Here is the caller graph for this function:

void tls_agent_thread ( JNIEnv *  env,
jthread  thread 
)

Definition at line 719 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_cleanup ( void   ) 

Definition at line 834 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_clear_in_heap_dump ( void   ) 

Definition at line 1170 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_delete_global_references ( JNIEnv *  env  ) 

Definition at line 841 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_dump_monitor_state ( JNIEnv *  env  ) 

Definition at line 1081 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_dump_traces ( JNIEnv *  env  ) 

Definition at line 1072 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

TlsIndex tls_find ( SerialNumber  thread_serial_num  ) 

Definition at line 1176 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

TlsIndex tls_find_or_create ( JNIEnv *  env,
jthread  thread 
)

Definition at line 680 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_garbage_collect ( JNIEnv *  env  ) 

Definition at line 281 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

jint tls_get_in_heap_dump ( TlsIndex  index  ) 

Definition at line 1151 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

MonitorIndex tls_get_monitor ( TlsIndex  index  ) 

Definition at line 801 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

SerialNumber tls_get_thread_serial_number ( TlsIndex  index  ) 

Definition at line 819 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

TraceIndex tls_get_trace ( TlsIndex  index,
JNIEnv *  env,
int  depth,
jboolean  skip_init 
)

Definition at line 1119 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

jint tls_get_tracker_status ( JNIEnv *  env,
jthread  thread,
jboolean  skip_init,
jint **  ppstatus,
TlsIndex pindex,
SerialNumber pthread_serial_num,
TraceIndex ptrace_index 
)

Definition at line 767 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_init ( void   ) 

Definition at line 730 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_list ( void   ) 

Definition at line 737 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_monitor_start_timer ( TlsIndex  index  ) 

Definition at line 1095 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

jlong tls_monitor_stop_timer ( TlsIndex  index  ) 

Definition at line 1106 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_pop_exception_catch ( TlsIndex  index,
jthread  thread,
jmethodID  method 
)

Definition at line 935 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_pop_method ( TlsIndex  index,
jthread  thread,
jmethodID  method 
)

Definition at line 976 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_push_method ( TlsIndex  index,
jmethodID  method 
)

Definition at line 921 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_sample_all_threads ( JNIEnv *  env  ) 

Definition at line 875 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_set_in_heap_dump ( TlsIndex  index,
jint  in_heap_dump 
)

Definition at line 1142 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_set_monitor ( TlsIndex  index,
MonitorIndex  monitor_index 
)

Definition at line 825 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_set_sample_status ( ObjectIndex  object_index,
jint  sample_status 
)

Definition at line 757 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_set_thread_object_index ( TlsIndex  index,
ObjectIndex  thread_object_index 
)

Definition at line 810 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

jint tls_sum_sample_status ( void   ) 

Definition at line 747 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void tls_thread_ended ( JNIEnv *  env,
TlsIndex  index 
)

Definition at line 847 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:

static void update_all_last_traces ( JNIEnv *  env  )  [static]

Definition at line 1011 of file hprof_tls.c.

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on 19 Nov 2012 for hprof by  doxygen 1.6.1