aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-report.c
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2009-07-02 14:14:34 -0400
committerIngo Molnar <mingo@elte.hu>2009-07-02 15:38:37 -0400
commit1e11fd82d247e4e48a1d6c49402214434538d3fd (patch)
tree7ac435b0be559c113987a64126559ea9b41627dc /tools/perf/builtin-report.c
parentc20ab37ef30f4a874cf27e84c12c73e584e6f5cc (diff)
perf_counter tools: Provide helper to print percents color
Among perf annotate, perf report and perf top, we can find the common colored printing of percents according to the following rules: High overhead = > 5%, colored in red Mid overhead = > 0.5%, colored in green Low overhead = < 0.5%, default color Factorize these multiple checks in a single function named percent_color_fprintf() and also provide a get_percent_color() for sites which print percentages and other things at the same time. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Anton Blanchard <anton@samba.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> LKML-Reference: <1246558475-10624-2-git-send-email-fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'tools/perf/builtin-report.c')
-rw-r--r--tools/perf/builtin-report.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index e8c98179fe45..c9dbe3315497 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -947,25 +947,10 @@ hist_entry__fprintf(FILE *fp, struct hist_entry *self, u64 total_samples)
947 if (exclude_other && !self->parent) 947 if (exclude_other && !self->parent)
948 return 0; 948 return 0;
949 949
950 if (total_samples) { 950 if (total_samples)
951 double percent = self->count * 100.0 / total_samples; 951 ret = percent_color_fprintf(fp, " %6.2f%%",
952 char *color = PERF_COLOR_NORMAL;
953
954 /*
955 * We color high-overhead entries in red, mid-overhead
956 * entries in green - and keep the low overhead places
957 * normal:
958 */
959 if (percent >= 5.0) {
960 color = PERF_COLOR_RED;
961 } else {
962 if (percent >= 0.5)
963 color = PERF_COLOR_GREEN;
964 }
965
966 ret = color_fprintf(fp, color, " %6.2f%%",
967 (self->count * 100.0) / total_samples); 952 (self->count * 100.0) / total_samples);
968 } else 953 else
969 ret = fprintf(fp, "%12Ld ", self->count); 954 ret = fprintf(fp, "%12Ld ", self->count);
970 955
971 list_for_each_entry(se, &hist_entry__sort_list, list) { 956 list_for_each_entry(se, &hist_entry__sort_list, list) {