aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung@kernel.org>2014-03-19 22:18:54 -0400
committerJiri Olsa <jolsa@kernel.org>2014-05-21 05:45:36 -0400
commit678a500d076ec873b8809041c6b718653db2a75f (patch)
treed4a999436440d5edabc51fc1a7d7236e2d2d7ab6 /tools/perf/util
parente67d49a72df9aa50841ad400f7a99405e4980ee4 (diff)
perf hists: Reset width of output fields with header length
Some fields missed to set default column length so it broke align in --stdio output. Add perf_hpp__reset_width() to set it to a sane default value. Note that this change will ignore -w/--column-widths option for now. Before: $ perf report -F cpu,comm,overhead --stdio ... # CPU Command Overhead # ............... ........ # 0 firefox 2.65% 0 kworker/0:0 1.45% 0 swapper 5.52% 0 synergys 0.92% 1 firefox 4.54% After: # CPU Command Overhead # ... ............... ........ # 0 firefox 2.65% 0 kworker/0:0 1.45% 0 swapper 5.52% 0 synergys 0.92% 1 firefox 4.54% Signed-off-by: Namhyung Kim <namhyung@kernel.org> Link: http://lkml.kernel.org/r/1400480762-22852-17-git-send-email-namhyung@kernel.org Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Diffstat (limited to 'tools/perf/util')
-rw-r--r--tools/perf/util/hist.h1
-rw-r--r--tools/perf/util/sort.c12
2 files changed, 13 insertions, 0 deletions
diff --git a/tools/perf/util/hist.h b/tools/perf/util/hist.h
index f67feb432a44..034db761630e 100644
--- a/tools/perf/util/hist.h
+++ b/tools/perf/util/hist.h
@@ -202,6 +202,7 @@ void perf_hpp__append_sort_keys(void);
202bool perf_hpp__is_sort_entry(struct perf_hpp_fmt *format); 202bool perf_hpp__is_sort_entry(struct perf_hpp_fmt *format);
203bool perf_hpp__same_sort_entry(struct perf_hpp_fmt *a, struct perf_hpp_fmt *b); 203bool perf_hpp__same_sort_entry(struct perf_hpp_fmt *a, struct perf_hpp_fmt *b);
204bool perf_hpp__should_skip(struct perf_hpp_fmt *format); 204bool perf_hpp__should_skip(struct perf_hpp_fmt *format);
205void perf_hpp__reset_width(struct perf_hpp_fmt *fmt, struct hists *hists);
205 206
206typedef u64 (*hpp_field_fn)(struct hist_entry *he); 207typedef u64 (*hpp_field_fn)(struct hist_entry *he);
207typedef int (*hpp_callback_fn)(struct perf_hpp *hpp, bool front); 208typedef int (*hpp_callback_fn)(struct perf_hpp *hpp, bool front);
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
index 0fe7cbe47ea3..9bee7288465f 100644
--- a/tools/perf/util/sort.c
+++ b/tools/perf/util/sort.c
@@ -1089,6 +1089,18 @@ bool perf_hpp__same_sort_entry(struct perf_hpp_fmt *a, struct perf_hpp_fmt *b)
1089 return hse_a->se == hse_b->se; 1089 return hse_a->se == hse_b->se;
1090} 1090}
1091 1091
1092void perf_hpp__reset_width(struct perf_hpp_fmt *fmt, struct hists *hists)
1093{
1094 struct hpp_sort_entry *hse;
1095
1096 if (!perf_hpp__is_sort_entry(fmt))
1097 return;
1098
1099 hse = container_of(fmt, struct hpp_sort_entry, hpp);
1100 hists__new_col_len(hists, hse->se->se_width_idx,
1101 strlen(hse->se->se_header));
1102}
1103
1092static int __sort__hpp_header(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, 1104static int __sort__hpp_header(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp,
1093 struct perf_evsel *evsel) 1105 struct perf_evsel *evsel)
1094{ 1106{