aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/ui
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@kernel.org>2014-03-02 20:14:02 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2014-03-14 17:08:37 -0400
commit9b0d2fb86d4737b2cda39bc9c9a8e368cec38960 (patch)
tree39cc9a8c5bb62be8740cd42c52b408d9fa2ac6f4 /tools/perf/ui
parentbfd66cc71a3f831ba7c2116d79416cfb8883f6cf (diff)
perf ui/stdio: Fix invalid output on event group report
When some of group member has 0 overhead, it printed previous percentage instead of 0.00%. It's because passing integer 0 as a percent rather than double 0.0 so the remaining bits came from garbage. The TUI and GTK don't have this problem since they pass 0.0. Before: # Samples: 845 of event 'anon group { cycles, cache-references, cache-misses }' # Event count (approx.): 174775051 # # Overhead Samples # ........................ .................................... # 20.32% 8.58% 73.51% 45 30 138 6.87% 6.87% 6.87% 21 0 0 5.29% 0.31% 0.31% 10 1 0 1.89% 1.89% 1.89% 6 0 0 1.76% 1.76% 1.76% 2 0 0 After: # Overhead Samples # ........................ .................................... # 20.32% 8.58% 73.51% 45 30 138 6.87% 0.00% 0.00% 21 0 0 5.29% 0.31% 0.00% 10 1 0 1.89% 0.00% 0.00% 6 0 0 1.76% 0.00% 0.00% 2 0 0 Signed-off-by: Namhyung Kim <namhyung@kernel.org> Cc: Andi Kleen <andi@firstfloor.org> Cc: David Ahern <dsahern@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung.kim@lge.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1393809254-4480-2-git-send-email-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/ui')
-rw-r--r--tools/perf/ui/hist.c20
1 files changed, 16 insertions, 4 deletions
diff --git a/tools/perf/ui/hist.c b/tools/perf/ui/hist.c
index 78f4c92e9b73..6094562c9523 100644
--- a/tools/perf/ui/hist.c
+++ b/tools/perf/ui/hist.c
@@ -52,8 +52,15 @@ static int __hpp__fmt(struct perf_hpp *hpp, struct hist_entry *he,
52 * zero-fill group members in the middle which 52 * zero-fill group members in the middle which
53 * have no sample 53 * have no sample
54 */ 54 */
55 ret += print_fn(hpp->buf + ret, hpp->size - ret, 55 if (fmt_percent) {
56 fmt, 0); 56 ret += print_fn(hpp->buf + ret,
57 hpp->size - ret,
58 fmt, 0.0);
59 } else {
60 ret += print_fn(hpp->buf + ret,
61 hpp->size - ret,
62 fmt, 0ULL);
63 }
57 } 64 }
58 65
59 if (fmt_percent) 66 if (fmt_percent)
@@ -72,8 +79,13 @@ static int __hpp__fmt(struct perf_hpp *hpp, struct hist_entry *he,
72 /* 79 /*
73 * zero-fill group members at last which have no sample 80 * zero-fill group members at last which have no sample
74 */ 81 */
75 ret += print_fn(hpp->buf + ret, hpp->size - ret, 82 if (fmt_percent) {
76 fmt, 0); 83 ret += print_fn(hpp->buf + ret, hpp->size - ret,
84 fmt, 0.0);
85 } else {
86 ret += print_fn(hpp->buf + ret, hpp->size - ret,
87 fmt, 0ULL);
88 }
77 } 89 }
78 } 90 }
79 return ret; 91 return ret;