perf tools: Recalc total periods using top-level entries in hierarchy
authorNamhyung Kim <namhyung@kernel.org>
Wed, 9 Mar 2016 13:47:02 +0000 (22:47 +0900)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 10 Mar 2016 19:46:13 +0000 (16:46 -0300)
commitf7fb538afea55383a9383dac5c56887c601af5f4
treed4a8e90347ad9d9e2ee5d49b201357b46be47857
parent86e3ee5224c17b7967aac39aa15539393c144de7
perf tools: Recalc total periods using top-level entries in hierarchy

When hierarchy mode is enabled, each entry in a hierarchy level shares
the period.  IOW an upper level entry's period is the sum of lower level
entries.  Thus perf uses only one of them to calculate the total period
of hists.  It was lowest-level (leaf) entries but it has a problem when
it comes to filters.

If a filter is applied, entries in the same level will be filtered or
not.  But upper level entries still have period of their sum including
filtered one.  So total sum of upper level entries will not be same as
sum of lower level entries.

This resulted in entries having more than 100% of overhead and it can be
produced using perf top with filter(s).

Reported-and-Tested-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1457531222-18130-8-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/hist.c