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>
This commit is contained in:
committed by
Ingo Molnar
parent
c20ab37ef3
commit
1e11fd82d2
@@ -25,10 +25,6 @@
|
||||
#define SHOW_USER 2
|
||||
#define SHOW_HV 4
|
||||
|
||||
#define MIN_GREEN 0.5
|
||||
#define MIN_RED 5.0
|
||||
|
||||
|
||||
static char const *input_name = "perf.data";
|
||||
static char *vmlinux = "vmlinux";
|
||||
|
||||
@@ -1047,24 +1043,6 @@ process_event(event_t *event, unsigned long offset, unsigned long head)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static char *get_color(double percent)
|
||||
{
|
||||
char *color = PERF_COLOR_NORMAL;
|
||||
|
||||
/*
|
||||
* We color high-overhead entries in red, mid-overhead
|
||||
* entries in green - and keep the low overhead places
|
||||
* normal:
|
||||
*/
|
||||
if (percent >= MIN_RED)
|
||||
color = PERF_COLOR_RED;
|
||||
else {
|
||||
if (percent > MIN_GREEN)
|
||||
color = PERF_COLOR_GREEN;
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
static int
|
||||
parse_line(FILE *file, struct symbol *sym, u64 start, u64 len)
|
||||
{
|
||||
@@ -1126,7 +1104,7 @@ parse_line(FILE *file, struct symbol *sym, u64 start, u64 len)
|
||||
} else if (sym->hist_sum)
|
||||
percent = 100.0 * hits / sym->hist_sum;
|
||||
|
||||
color = get_color(percent);
|
||||
color = get_percent_color(percent);
|
||||
|
||||
/*
|
||||
* Also color the filename and line if needed, with
|
||||
@@ -1262,7 +1240,7 @@ static void print_summary(char *filename)
|
||||
|
||||
sym_ext = rb_entry(node, struct sym_ext, node);
|
||||
percent = sym_ext->percent;
|
||||
color = get_color(percent);
|
||||
color = get_percent_color(percent);
|
||||
path = sym_ext->path;
|
||||
|
||||
color_fprintf(stdout, color, " %7.2f %s", percent, path);
|
||||
|
||||
Reference in New Issue
Block a user