111 int skipInner,
int isSync)
120 uint64_t incrMetric = metricIncr.
i;
122 bool doMetricIdleness =
false;
123 double incrMetricIdleness = 0.0;
128 if (lush_agents->LUSHI_do_metric[aid](metricIncr.
i,
129 &doMetric, &doMetricIdleness,
130 &incrMetric, &incrMetricIdleness)) {
135 if (isSync || metricId != lush_agents->
metric_time) {
168 TMSG(LUNW,
"Chord: aid:%d assoc:%d", aid, as);
174 uint pchord_len = 0, lchord_len = 0;
184 TMSG(LUNW,
"IP: lm-id = %d and lm-ip = %p", ip_norm.
lm_id,
202 TMSG(LUNW,
"LIP: %p", *((
void**)lip));
205 if (!lip_persistent) {
254 if (doMetricIdleness) {
277 uint chord_len =
MAX(pchord_len, lchord_len);
278 frame_t* chord_end = chord_beg + chord_len;
279 frame_t* pchord_end = chord_beg + pchord_len;
280 frame_t* lchord_end = chord_beg + lchord_len;
289 lip = chord_beg->
lip;
293 uint path_len = chord_len;
294 for (
frame_t* x = chord_beg; x < chord_end; ++x, --path_len) {
298 if (x >= pchord_end) {
300 x->ip_norm = ip_norm;
302 if (x >= lchord_end) {
lush_step_t lush_step_bichord(lush_cursor_t *cursor)
#define ip_normalized_NULL
static lush_lip_t * lush_cursor_get_lip(lush_cursor_t *cursor)
void hpcrun_ensure_btbuf_avail(void)
#define lush_assoc_info__set_path_len(x, new_len)
static void cct_metric_data_increment(int metric_id, cct_node_t *x, cct_metric_data_t incr)
void lush_init_unw(lush_cursor_t *cursor, lush_agent_pool_t *apool, ucontext_t *context)
#define doMetric(metricIdExpr, metricIncr, type)
#define lush_assoc_info__set_assoc(x, new_as)
cct_node_t * lush_backtrace2cct(cct_bundle_t *cct, ucontext_t *context, int metricId, hpcrun_metricVal_t metricIncr, int skipInner, int isSync)
static ip_normalized_t lush_cursor_get_ip_norm(lush_cursor_t *cursor)
lush_step_t lush_step_lnote(lush_cursor_t *cursor)
static frame_t * canonicalize_chord(frame_t *chord_beg, lush_assoc_t as, uint pchord_len, uint lchord_len)
enum lush_step lush_step_t
frame_t * hpcrun_skip_chords(frame_t *bt_outer, frame_t *bt_inner, int skip)
lush_step_t lush_step_pnote(lush_cursor_t *cursor)
enum lush_assoc lush_assoc_t
static bool lush_assoc_is_a_to_1(lush_assoc_t as)
static lush_assoc_t lush_cursor_get_assoc(lush_cursor_t *cursor)
static lush_agentid_t lush_cursor_get_aid(lush_cursor_t *cursor)
void hpcrun_drop_sample(void)
void hpcrun_bt_dump(frame_t *unwind, const char *tag)
cct_node_t * hpcrun_cct_insert_backtrace_w_metric(cct_bundle_t *cct, cct_node_t *treenode, int metric_id, frame_t *path_beg, frame_t *path_end, cct_metric_data_t datum, struct cct_custom_update_s *custom_update)
lush_agent_pool_t * lush_agents
static lush_lip_t * lush_lip_clone(lush_lip_t *x)
thread_data_t *(* hpcrun_get_thread_data)(void)