[tip:perf/core] perf hists: Add missing period_* fields when collapsing a hist entry

From: tip-bot for Namhyung Kim
Date: Fri Sep 28 2012 - 12:37:38 EST


Commit-ID: 9ec60972a38011ad8a5676f4cd5e51ac508c36b6
Gitweb: http://git.kernel.org/tip/9ec60972a38011ad8a5676f4cd5e51ac508c36b6
Author: Namhyung Kim <namhyung.kim@xxxxxxx>
AuthorDate: Wed, 26 Sep 2012 16:47:28 +0900
Committer: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
CommitDate: Wed, 26 Sep 2012 20:44:11 -0300

perf hists: Add missing period_* fields when collapsing a hist entry

So that the perf report won't lost the cpu utilization information.

For example, if there're two process that have same name.

$ perf report --stdio --showcpuutilization -s pid
[SNIP]
# Overhead sys us Command: Pid
# ........ ........ ........ .............
#
55.12% 0.01% 55.10% noploop:28781
44.88% 0.06% 44.83% noploop:28782

Before:
$ perf report --stdio --showcpuutilization -s comm
[SNIP]
# Overhead sys us
# ........ ........ ........
#
100.00% 0.06% 44.83%

After:
$ perf report --stdio --showcpuutilization -s comm
[SNIP]
# Overhead sys us
# ........ ........ ........
#
100.00% 0.07% 99.93%

Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
Cc: Arun Sharma <asharma@xxxxxx>
Cc: David Ahern <dsahern@xxxxxxxxx>
Cc: Frederic Weisbecker <fweisbec@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Jiri Olsa <jolsa@xxxxxxxxxx>
Cc: Paul Mackerras <paulus@xxxxxxxxx>
Cc: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Stephane Eranian <eranian@xxxxxxxxxx>
Link: http://lkml.kernel.org/r/1348645663-25303-2-git-send-email-namhyung@xxxxxxxxxx
Signed-off-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>
---
tools/perf/util/hist.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 6ec5398..236bc9d 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -410,8 +410,13 @@ static bool hists__collapse_insert_entry(struct hists *hists __maybe_unused,
cmp = hist_entry__collapse(iter, he);

if (!cmp) {
- iter->period += he->period;
- iter->nr_events += he->nr_events;
+ iter->period += he->period;
+ iter->period_sys += he->period_sys;
+ iter->period_us += he->period_us;
+ iter->period_guest_sys += he->period_guest_sys;
+ iter->period_guest_us += he->period_guest_us;
+ iter->nr_events += he->nr_events;
+
if (symbol_conf.use_callchain) {
callchain_cursor_reset(&callchain_cursor);
callchain_merge(&callchain_cursor,
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/