perf: Fix callchain hit bad cast on ascii display [Linux 2.6.37]

This Linux kernel change "perf: Fix callchain hit bad cast on ascii display" is included in the Linux 2.6.37 release. This change is authored by Frederic Weisbecker <fweisbec [at]> on Mon Jan 3 16:13:11 2011 +0100. The commit for this change in Linux stable tree is d425de5 (patch).

perf: Fix callchain hit bad cast on ascii display

ipchain__fprintf_graph() casts the number of hits in a branch as an
int, which means we lose its highests bits.

This results in meaningless number of callchain hits in
that have a high number of hits recorded, typically those that have
callchain branches hits appearing more than INT_MAX. This happens
easily as those are pondered by the event period.

Reported-by: Nick Piggin <>
Signed-off-by: Frederic Weisbecker <>
Cc: Ingo Molnar <>
Cc: Peter Zijlstra <>
Cc: Arnaldo Carvalho de Melo <>
Cc: Paul Mackerras <>

There are 2 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 tools/perf/util/hist.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index 2022e87..76bcc35c 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -356,7 +356,7 @@ static size_t ipchain__fprintf_graph_line(FILE *fp, int depth, int depth_mask,

 static size_t ipchain__fprintf_graph(FILE *fp, struct callchain_list *chain,
                     int depth, int depth_mask, int period,
-                    u64 total_samples, int hits,
+                    u64 total_samples, u64 hits,
                     int left_margin)
    int i;

Leave a Reply

Your email address will not be published. Required fields are marked *