diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2009-07-02 14:14:34 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-07-02 15:38:37 -0400 |
commit | 1e11fd82d247e4e48a1d6c49402214434538d3fd (patch) | |
tree | 7ac435b0be559c113987a64126559ea9b41627dc /tools/perf/builtin-report.c | |
parent | c20ab37ef30f4a874cf27e84c12c73e584e6f5cc (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.c | 21 |
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) { |