summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/perf/util/hist.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
index ecf853cdc0b..e8daf5ca6fd 100644
--- a/tools/perf/util/hist.c
+++ b/tools/perf/util/hist.c
@@ -1,6 +1,7 @@
#include "hist.h"
#include "session.h"
#include "sort.h"
+#include <math.h>
struct callchain_param callchain_param = {
.mode = CHAIN_GRAPH_REL,
@@ -494,13 +495,13 @@ static size_t hist_entry__fprintf(struct hist_entry *self,
double old_percent = 0, new_percent = 0, diff;
if (total > 0)
- old_percent = (count * 100) / total;
+ old_percent = (count * 100.0) / total;
if (session->events_stats.total > 0)
- new_percent = (self->count * 100) / session->events_stats.total;
+ new_percent = (self->count * 100.0) / session->events_stats.total;
- diff = old_percent - new_percent;
+ diff = new_percent - old_percent;
- if ((u64)diff != 0)
+ if (fabs(diff) >= 0.01)
snprintf(bf, sizeof(bf), "%+4.2F%%", diff);
else
snprintf(bf, sizeof(bf), " ");