|
@@ -1163,9 +1163,18 @@ static void __hists__insert_output_entry(struct rb_root *entries,
|
|
struct rb_node *parent = NULL;
|
|
struct rb_node *parent = NULL;
|
|
struct hist_entry *iter;
|
|
struct hist_entry *iter;
|
|
|
|
|
|
- if (use_callchain)
|
|
|
|
|
|
+ if (use_callchain) {
|
|
|
|
+ if (callchain_param.mode == CHAIN_GRAPH_REL) {
|
|
|
|
+ u64 total = he->stat.period;
|
|
|
|
+
|
|
|
|
+ if (symbol_conf.cumulate_callchain)
|
|
|
|
+ total = he->stat_acc->period;
|
|
|
|
+
|
|
|
|
+ min_callchain_hits = total * (callchain_param.min_percent / 100);
|
|
|
|
+ }
|
|
callchain_param.sort(&he->sorted_chain, he->callchain,
|
|
callchain_param.sort(&he->sorted_chain, he->callchain,
|
|
min_callchain_hits, &callchain_param);
|
|
min_callchain_hits, &callchain_param);
|
|
|
|
+ }
|
|
|
|
|
|
while (*p != NULL) {
|
|
while (*p != NULL) {
|
|
parent = *p;
|
|
parent = *p;
|
|
@@ -1195,7 +1204,7 @@ void hists__output_resort(struct hists *hists, struct ui_progress *prog)
|
|
else
|
|
else
|
|
use_callchain = symbol_conf.use_callchain;
|
|
use_callchain = symbol_conf.use_callchain;
|
|
|
|
|
|
- min_callchain_hits = hists->stats.total_period * (callchain_param.min_percent / 100);
|
|
|
|
|
|
+ min_callchain_hits = hists__total_period(hists) * (callchain_param.min_percent / 100);
|
|
|
|
|
|
if (sort__need_collapse)
|
|
if (sort__need_collapse)
|
|
root = &hists->entries_collapsed;
|
|
root = &hists->entries_collapsed;
|