struct callchain_node *child;
node->rb_root = RB_ROOT;
- node->cumul_hit = node->hit;
chain_for_each_child(child, node) {
__sort_chain_graph(child, min_hit);
if (child->cumul_hit >= min_hit)
rb_insert_callchain(&node->rb_root, child, GRAPH);
- node->cumul_hit += child->cumul_hit;
}
}
new = create_child(parent, false);
fill_node(new, chain, start, syms);
- new->hit = 1;
+ new->cumul_hit = new->hit = 1;
}
/*
/* split the hits */
new->hit = parent->hit;
+ new->cumul_hit = parent->cumul_hit;
new->val_nr = parent->val_nr - idx_local;
parent->val_nr = idx_local;
unsigned int ret = __append_chain(rnode, chain, start, syms);
if (!ret)
- return;
+ goto cumul;
}
/* nothing in children, add to the current node */
add_child(root, chain, start, syms);
+
+cumul:
+ root->cumul_hit++;
}
static int
/* we match 100% of the path, increment the hit */
if (i - start == root->val_nr && i == chain->nr) {
root->hit++;
+ root->cumul_hit++;
+
return 0;
}