summaryrefslogtreecommitdiffstats
path: root/tools/perf/util/hist.c
diff options
context:
space:
mode:
authorNamhyung Kim2016-01-27 16:40:49 +0100
committerArnaldo Carvalho de Melo2016-02-01 20:45:44 +0100
commit0f58474ec835f6fc80af2cde2c7ed5495cd212ba (patch)
tree7bf1f34cc4cf11c3a5bafe5297d3398ff4234ce7 /tools/perf/util/hist.c
parentperf hists: Fix min callchain hits calculation (diff)
downloadkernel-qcow2-linux-0f58474ec835f6fc80af2cde2c7ed5495cd212ba.tar.gz
kernel-qcow2-linux-0f58474ec835f6fc80af2cde2c7ed5495cd212ba.tar.xz
kernel-qcow2-linux-0f58474ec835f6fc80af2cde2c7ed5495cd212ba.zip
perf hists: Update hists' total period when adding entries
Currently the hist entry addition path doesn't update total_period of hists and it's calculated during 'resort' path. But the resort path needs to know the total period before doing its job because it's used for calculating percent limit of callchains in hist entries. So this patch update the total period during the addition path. It makes the percent limit of callchains working (again). Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Andi Kleen <andi@firstfloor.org> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Wang Nan <wangnan0@huawei.com> Link: http://lkml.kernel.org/r/1453909257-26015-3-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/hist.c')
-rw-r--r--tools/perf/util/hist.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index b96194676c91..098310bc4489 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -432,8 +432,12 @@ static struct hist_entry *hists__findnew_entry(struct hists *hists,
cmp = hist_entry__cmp(he, entry);
if (!cmp) {
- if (sample_self)
+ if (sample_self) {
he_stat__add_period(&he->stat, period, weight);
+ hists->stats.total_period += period;
+ if (!he->filtered)
+ hists->stats.total_non_filtered_period += period;
+ }
if (symbol_conf.cumulate_callchain)
he_stat__add_period(he->stat_acc, period, weight);
@@ -466,7 +470,10 @@ static struct hist_entry *hists__findnew_entry(struct hists *hists,
if (!he)
return NULL;
- hists->nr_entries++;
+ if (sample_self)
+ hists__inc_stats(hists, he);
+ else
+ hists->nr_entries++;
rb_link_node(&he->rb_node_in, parent, p);
rb_insert_color(&he->rb_node_in, hists->entries_in);