Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 155203
b: refs/heads/master
c: 1e11fd8
h: refs/heads/master
i:
  155201: 47563bb
  155199: 6fb4d90
v: v3
  • Loading branch information
Frederic Weisbecker authored and Ingo Molnar committed Jul 2, 2009
1 parent 329e2a0 commit ffdb9d8
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 57 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c20ab37ef30f4a874cf27e84c12c73e584e6f5cc
refs/heads/master: 1e11fd82d247e4e48a1d6c49402214434538d3fd
26 changes: 2 additions & 24 deletions trunk/tools/perf/builtin-annotate.c
Original file line number Diff line number Diff line change
Expand Up @@ -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";

Expand Down Expand Up @@ -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)
{
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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);
Expand Down
21 changes: 3 additions & 18 deletions trunk/tools/perf/builtin-report.c
Original file line number Diff line number Diff line change
Expand Up @@ -947,25 +947,10 @@ hist_entry__fprintf(FILE *fp, struct hist_entry *self, u64 total_samples)
if (exclude_other && !self->parent)
return 0;

if (total_samples) {
double percent = self->count * 100.0 / total_samples;
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 >= 5.0) {
color = PERF_COLOR_RED;
} else {
if (percent >= 0.5)
color = PERF_COLOR_GREEN;
}

ret = color_fprintf(fp, color, " %6.2f%%",
if (total_samples)
ret = percent_color_fprintf(fp, " %6.2f%%",
(self->count * 100.0) / total_samples);
} else
else
ret = fprintf(fp, "%12Ld ", self->count);

list_for_each_entry(se, &hist_entry__sort_list, list) {
Expand Down
15 changes: 1 addition & 14 deletions trunk/tools/perf/builtin-top.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,6 @@ static void print_sym_table(void)
for (nd = rb_first(&tmp); nd; nd = rb_next(nd)) {
struct sym_entry *syme = rb_entry(nd, struct sym_entry, rb_node);
struct symbol *sym = (struct symbol *)(syme + 1);
char *color = PERF_COLOR_NORMAL;
double pcnt;

if (++printed > print_entries || syme->snap_count < count_filter)
Expand All @@ -248,24 +247,12 @@ static void print_sym_table(void)
pcnt = 100.0 - (100.0 * ((sum_ksamples - syme->snap_count) /
sum_ksamples));

/*
* We color high-overhead entries in red, mid-overhead
* entries in green - and keep the low overhead places
* normal:
*/
if (pcnt >= 5.0) {
color = PERF_COLOR_RED;
} else {
if (pcnt >= 0.5)
color = PERF_COLOR_GREEN;
}

if (nr_counters == 1)
printf("%20.2f - ", syme->weight);
else
printf("%9.1f %10ld - ", syme->weight, syme->snap_count);

color_fprintf(stdout, color, "%4.1f%%", pcnt);
percent_color_fprintf(stdout, "%4.1f%%", pcnt);
printf(" - %016llx : %s", sym->start, sym->name);
if (sym->module)
printf("\t[%s]", sym->module->name);
Expand Down
27 changes: 27 additions & 0 deletions trunk/tools/perf/util/color.c
Original file line number Diff line number Diff line change
Expand Up @@ -242,4 +242,31 @@ int color_fwrite_lines(FILE *fp, const char *color,
return 0;
}

char *get_percent_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;
}

int percent_color_fprintf(FILE *fp, const char *fmt, double percent)
{
int r;
char *color;

color = get_percent_color(percent);
r = color_fprintf(fp, color, fmt, percent);

return r;
}
5 changes: 5 additions & 0 deletions trunk/tools/perf/util/color.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
#define PERF_COLOR_CYAN "\033[36m"
#define PERF_COLOR_BG_RED "\033[41m"

#define MIN_GREEN 0.5
#define MIN_RED 5.0

/*
* This variable stores the value of color.ui
*/
Expand All @@ -32,5 +35,7 @@ void color_parse_mem(const char *value, int len, const char *var, char *dst);
int color_fprintf(FILE *fp, const char *color, const char *fmt, ...);
int color_fprintf_ln(FILE *fp, const char *color, const char *fmt, ...);
int color_fwrite_lines(FILE *fp, const char *color, size_t count, const char *buf);
int percent_color_fprintf(FILE *fp, const char *fmt, double percent);
char *get_percent_color(double percent);

#endif /* COLOR_H */

0 comments on commit ffdb9d8

Please sign in to comment.