aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung.kim@lge.com>2012-10-04 08:49:43 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2012-10-04 12:36:18 -0400
commit139c0815903de1a7865fe1d6beac5e995fefdf46 (patch)
tree7bfba0d05cd7ec188883cbe9b41db794e642fa44
parentc4b35351ef3145c9abad64999d1de0de1b8361ab (diff)
perf hists: Add more helpers for hist entry stat
Add and use he_stat__add_{period,stat} for calculating hist entry's stat. It will be used for accumulated stats later as well. Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Arun Sharma <asharma@fb.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1349354994-17853-10-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/util/hist.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 02476cb3167d..277947a669b2 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -151,6 +151,22 @@ static void hist_entry__add_cpumode_period(struct hist_entry *he,
151 } 151 }
152} 152}
153 153
154static void he_stat__add_period(struct he_stat *he_stat, u64 period)
155{
156 he_stat->period += period;
157 he_stat->nr_events += 1;
158}
159
160static void he_stat__add_stat(struct he_stat *dest, struct he_stat *src)
161{
162 dest->period += src->period;
163 dest->period_sys += src->period_sys;
164 dest->period_us += src->period_us;
165 dest->period_guest_sys += src->period_guest_sys;
166 dest->period_guest_us += src->period_guest_us;
167 dest->nr_events += src->nr_events;
168}
169
154static void hist_entry__decay(struct hist_entry *he) 170static void hist_entry__decay(struct hist_entry *he)
155{ 171{
156 he->stat.period = (he->stat.period * 7) / 8; 172 he->stat.period = (he->stat.period * 7) / 8;
@@ -270,8 +286,7 @@ static struct hist_entry *add_hist_entry(struct hists *hists,
270 cmp = hist_entry__cmp(entry, he); 286 cmp = hist_entry__cmp(entry, he);
271 287
272 if (!cmp) { 288 if (!cmp) {
273 he->stat.period += period; 289 he_stat__add_period(&he->stat, period);
274 ++he->stat.nr_events;
275 290
276 /* If the map of an existing hist_entry has 291 /* If the map of an existing hist_entry has
277 * become out-of-date due to an exec() or 292 * become out-of-date due to an exec() or
@@ -418,12 +433,7 @@ static bool hists__collapse_insert_entry(struct hists *hists __maybe_unused,
418 cmp = hist_entry__collapse(iter, he); 433 cmp = hist_entry__collapse(iter, he);
419 434
420 if (!cmp) { 435 if (!cmp) {
421 iter->stat.period += he->stat.period; 436 he_stat__add_stat(&iter->stat, &he->stat);
422 iter->stat.period_sys += he->stat.period_sys;
423 iter->stat.period_us += he->stat.period_us;
424 iter->stat.period_guest_sys += he->stat.period_guest_sys;
425 iter->stat.period_guest_us += he->stat.period_guest_us;
426 iter->stat.nr_events += he->stat.nr_events;
427 437
428 if (symbol_conf.use_callchain) { 438 if (symbol_conf.use_callchain) {
429 callchain_cursor_reset(&callchain_cursor); 439 callchain_cursor_reset(&callchain_cursor);