#include <errno.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <signal.h>
#include <sys/time.h>
#include <ucontext.h>
#include <time.h>
#include <unistd.h>
#include <include/hpctoolkit-config.h>
#include <monitor.h>
#include "sample_source_obj.h"
#include "common.h"
#include "ss-errno.h"
#include <hpcrun/hpcrun_options.h>
#include <hpcrun/hpcrun_stats.h>
#include <hpcrun/metrics.h>
#include <hpcrun/safe-sampling.h>
#include <hpcrun/sample_event.h>
#include <hpcrun/sample_sources_registered.h>
#include <hpcrun/thread_data.h>
#include <lush/lush-backtrace.h>
#include <messages/messages.h>
#include <utilities/tokenize.h>
#include <utilities/arch/context-pc.h>
#include <unwind/common/unwind.h>
#include <lib/support-lean/timer.h>
#include <sample-sources/blame-shift/blame-shift.h>
#include "ss_obj.h"
Go to the source code of this file.
◆ CPUTIME_CLOCK_TYPE
| #define CPUTIME_CLOCK_TYPE CLOCK_THREAD_CPUTIME_ID |
◆ CPUTIME_EVENT_NAME
| #define CPUTIME_EVENT_NAME "CPUTIME" |
◆ CPUTIME_METRIC_NAME
| #define CPUTIME_METRIC_NAME "CPUTIME (usec)" |
◆ DEFAULT_PERIOD
| #define DEFAULT_PERIOD 5000L |
◆ IDLE_METRIC_NAME
| #define IDLE_METRIC_NAME "idleness (usec)" |
◆ ITIMER_EVENT_NAME
| #define ITIMER_EVENT_NAME "ITIMER" |
◆ ITIMER_METRIC_NAME
| #define ITIMER_METRIC_NAME "ITIMER (usec)" |
◆ ITIMER_SIGNAL
| #define ITIMER_SIGNAL SIGPROF |
◆ ITIMER_TYPE
| #define ITIMER_TYPE ITIMER_PROF |
◆ REALTIME_CLOCK_TYPE
| #define REALTIME_CLOCK_TYPE CLOCK_REALTIME |
◆ REALTIME_EVENT_NAME
| #define REALTIME_EVENT_NAME "REALTIME" |
◆ REALTIME_METRIC_NAME
| #define REALTIME_METRIC_NAME "REALTIME (usec)" |
◆ REALTIME_NOTIFY_METHOD
| #define REALTIME_NOTIFY_METHOD SIGEV_THREAD_ID |
◆ REALTIME_SIGNAL
| #define REALTIME_SIGNAL (SIGRTMIN + 3) |
◆ sample_period
◆ sigev_notify_thread_id
| #define sigev_notify_thread_id _sigev_un._tid |
◆ ss_cls
◆ ss_name
◆ ss_sort_order
◆ USE_ELAPSED_TIME_FOR_WALLCLOCK
| #define USE_ELAPSED_TIME_FOR_WALLCLOCK |
◆ WALLCLOCK_EVENT_NAME
| #define WALLCLOCK_EVENT_NAME "WALLCLOCK" |
◆ WALLCLOCK_METRIC_NAME
| #define WALLCLOCK_METRIC_NAME "WALLCLOCK (usec)" |
◆ _local_const
| Enumerator |
|---|
| PROC_NAME_LEN | |
| ITIMER_EVENT | |
| _TST_EVENT | |
Definition at line 169 of file itimer.c.
◆ hpcrun_create_real_timer()
◆ hpcrun_delete_real_timer()
◆ hpcrun_itimer_wallclock_ok()
| void hpcrun_itimer_wallclock_ok |
( |
bool |
flag | ) |
|
◆ hpcrun_restart_timer()
◆ hpcrun_settime()
| static int hpcrun_settime |
( |
thread_data_t * |
td, |
|
|
struct itimerspec * |
spec |
|
) |
| |
|
static |
◆ hpcrun_start_timer()
◆ hpcrun_stop_timer()
◆ itimer_signal_handler()
| static int itimer_signal_handler |
( |
int |
sig, |
|
|
siginfo_t * |
siginfo, |
|
|
void * |
context |
|
) |
| |
|
static |
◆ METHOD_FN() [1/11]
| static void METHOD_FN |
( |
init |
| ) |
|
|
static |
◆ METHOD_FN() [2/11]
| static void METHOD_FN |
( |
thread_init |
| ) |
|
|
static |
◆ METHOD_FN() [3/11]
| static void METHOD_FN |
( |
thread_init_action |
| ) |
|
|
static |
◆ METHOD_FN() [4/11]
| static void METHOD_FN |
( |
start |
| ) |
|
|
static |
◆ METHOD_FN() [5/11]
| static void METHOD_FN |
( |
thread_fini_action |
| ) |
|
|
static |
◆ METHOD_FN() [6/11]
| static void METHOD_FN |
( |
stop |
| ) |
|
|
static |
◆ METHOD_FN() [7/11]
| static void METHOD_FN |
( |
shutdown |
| ) |
|
|
static |
◆ METHOD_FN() [8/11]
| static bool METHOD_FN |
( |
supports_event |
, |
|
|
const char * |
ev_str |
|
) |
| |
|
static |
◆ METHOD_FN() [9/11]
| static void METHOD_FN |
( |
process_event_list |
, |
|
|
int |
lush_metrics |
|
) |
| |
|
static |
◆ METHOD_FN() [10/11]
| static void METHOD_FN |
( |
gen_event_set |
, |
|
|
int |
lush_metrics |
|
) |
| |
|
static |
◆ METHOD_FN() [11/11]
| static void METHOD_FN |
( |
display_events |
| ) |
|
|
static |
◆ hpcrun_thread_suppress_sample
| __thread bool hpcrun_thread_suppress_sample |
◆ itspec_start
| struct itimerspec itspec_start |
|
static |
◆ itspec_stop
| struct itimerspec itspec_stop |
|
static |
◆ itval_start
| struct itimerval itval_start |
|
static |
◆ itval_stop
| struct itimerval itval_stop |
|
static |
◆ period
◆ the_event_name
| char* the_event_name = "unknown" |
|
static |
◆ the_metric_name
| char* the_metric_name = "unknown" |
|
static |
◆ the_signal_num
◆ timer_mask
◆ use_cputime
◆ use_itimer
◆ use_realtime
| bool use_realtime = false |
|
static |
◆ wallclock_ok
| __thread bool wallclock_ok = false |
|
static |