diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-10-18 12:37:34 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-10-18 15:03:08 -0400 |
commit | f1cf602c16e9a93fd16705621f3430ec7ffe2c44 (patch) | |
tree | 3f31d1a6fdca87b11375245efcb79c139f0c4733 /tools/perf/util/hist.c | |
parent | c172f7422c03463a7177e268ffe625c41c42c179 (diff) |
perf hists: Don't format the percentage on hist_entry__snprintf
We can't have color correctly set there because in libslang (and in a future
GUI) the colors must be set on a separate function call, so move that part to a
separate function and make the stdio fprintf function call it.
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-jpgy42438ce9tgbqppm397lq@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/hist.c')
-rw-r--r-- | tools/perf/util/hist.c | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c index 48da373afa3d..8d15e9f72f00 100644 --- a/tools/perf/util/hist.c +++ b/tools/perf/util/hist.c | |||
@@ -707,12 +707,11 @@ void hists__output_recalc_col_len(struct hists *hists, int max_rows) | |||
707 | } | 707 | } |
708 | } | 708 | } |
709 | 709 | ||
710 | int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size, | 710 | static int hist_entry__pcnt_snprintf(struct hist_entry *self, char *s, |
711 | struct hists *hists, struct hists *pair_hists, | 711 | size_t size, struct hists *pair_hists, |
712 | bool show_displacement, long displacement, | 712 | bool show_displacement, long displacement, |
713 | bool color, u64 session_total) | 713 | bool color, u64 session_total) |
714 | { | 714 | { |
715 | struct sort_entry *se; | ||
716 | u64 period, total, period_sys, period_us, period_guest_sys, period_guest_us; | 715 | u64 period, total, period_sys, period_us, period_guest_sys, period_guest_us; |
717 | u64 nr_events; | 716 | u64 nr_events; |
718 | const char *sep = symbol_conf.field_sep; | 717 | const char *sep = symbol_conf.field_sep; |
@@ -818,12 +817,22 @@ int hist_entry__snprintf(struct hist_entry *self, char *s, size_t size, | |||
818 | } | 817 | } |
819 | } | 818 | } |
820 | 819 | ||
820 | return ret; | ||
821 | } | ||
822 | |||
823 | int hist_entry__snprintf(struct hist_entry *he, char *s, size_t size, | ||
824 | struct hists *hists) | ||
825 | { | ||
826 | const char *sep = symbol_conf.field_sep; | ||
827 | struct sort_entry *se; | ||
828 | int ret = 0; | ||
829 | |||
821 | list_for_each_entry(se, &hist_entry__sort_list, list) { | 830 | list_for_each_entry(se, &hist_entry__sort_list, list) { |
822 | if (se->elide) | 831 | if (se->elide) |
823 | continue; | 832 | continue; |
824 | 833 | ||
825 | ret += snprintf(s + ret, size - ret, "%s", sep ?: " "); | 834 | ret += snprintf(s + ret, size - ret, "%s", sep ?: " "); |
826 | ret += se->se_snprintf(self, s + ret, size - ret, | 835 | ret += se->se_snprintf(he, s + ret, size - ret, |
827 | hists__col_len(hists, se->se_width_idx)); | 836 | hists__col_len(hists, se->se_width_idx)); |
828 | } | 837 | } |
829 | 838 | ||
@@ -835,13 +844,15 @@ int hist_entry__fprintf(struct hist_entry *he, size_t size, struct hists *hists, | |||
835 | long displacement, FILE *fp, u64 session_total) | 844 | long displacement, FILE *fp, u64 session_total) |
836 | { | 845 | { |
837 | char bf[512]; | 846 | char bf[512]; |
847 | int ret; | ||
838 | 848 | ||
839 | if (size == 0 || size > sizeof(bf)) | 849 | if (size == 0 || size > sizeof(bf)) |
840 | size = sizeof(bf); | 850 | size = sizeof(bf); |
841 | 851 | ||
842 | hist_entry__snprintf(he, bf, size, hists, pair_hists, | 852 | ret = hist_entry__pcnt_snprintf(he, bf, size, pair_hists, |
843 | show_displacement, displacement, | 853 | show_displacement, displacement, |
844 | true, session_total); | 854 | true, session_total); |
855 | hist_entry__snprintf(he, bf + ret, size - ret, hists); | ||
845 | return fprintf(fp, "%s\n", bf); | 856 | return fprintf(fp, "%s\n", bf); |
846 | } | 857 | } |
847 | 858 | ||