diff options
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/ui/stdio/hist.c | 21 | ||||
-rw-r--r-- | tools/perf/util/hist.h | 1 | ||||
-rw-r--r-- | tools/perf/util/sort.c | 12 |
3 files changed, 16 insertions, 18 deletions
diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c index e3fdf4e869fc..cfcd3f6fd1c5 100644 --- a/tools/perf/ui/stdio/hist.c +++ b/tools/perf/ui/stdio/hist.c | |||
@@ -369,12 +369,10 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, | |||
369 | int max_cols, float min_pcnt, FILE *fp) | 369 | int max_cols, float min_pcnt, FILE *fp) |
370 | { | 370 | { |
371 | struct perf_hpp_fmt *fmt; | 371 | struct perf_hpp_fmt *fmt; |
372 | struct sort_entry *se; | ||
373 | struct rb_node *nd; | 372 | struct rb_node *nd; |
374 | size_t ret = 0; | 373 | size_t ret = 0; |
375 | unsigned int width; | 374 | unsigned int width; |
376 | const char *sep = symbol_conf.field_sep; | 375 | const char *sep = symbol_conf.field_sep; |
377 | const char *col_width = symbol_conf.col_width_list_str; | ||
378 | int nr_rows = 0; | 376 | int nr_rows = 0; |
379 | char bf[96]; | 377 | char bf[96]; |
380 | struct perf_hpp dummy_hpp = { | 378 | struct perf_hpp dummy_hpp = { |
@@ -387,22 +385,9 @@ size_t hists__fprintf(struct hists *hists, bool show_header, int max_rows, | |||
387 | 385 | ||
388 | init_rem_hits(); | 386 | init_rem_hits(); |
389 | 387 | ||
390 | list_for_each_entry(se, &hist_entry__sort_list, list) { | 388 | |
391 | if (se->elide) | 389 | perf_hpp__for_each_format(fmt) |
392 | continue; | 390 | perf_hpp__reset_width(fmt, hists); |
393 | width = strlen(se->se_header); | ||
394 | if (symbol_conf.col_width_list_str) { | ||
395 | if (col_width) { | ||
396 | hists__set_col_len(hists, se->se_width_idx, | ||
397 | atoi(col_width)); | ||
398 | col_width = strchr(col_width, ','); | ||
399 | if (col_width) | ||
400 | ++col_width; | ||
401 | } | ||
402 | } | ||
403 | if (!hists__new_col_len(hists, se->se_width_idx, width)) | ||
404 | width = hists__col_len(hists, se->se_width_idx); | ||
405 | } | ||
406 | 391 | ||
407 | if (!show_header) | 392 | if (!show_header) |
408 | goto print_entries; | 393 | goto print_entries; |
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); | |||
202 | bool perf_hpp__is_sort_entry(struct perf_hpp_fmt *format); | 202 | bool perf_hpp__is_sort_entry(struct perf_hpp_fmt *format); |
203 | bool perf_hpp__same_sort_entry(struct perf_hpp_fmt *a, struct perf_hpp_fmt *b); | 203 | bool perf_hpp__same_sort_entry(struct perf_hpp_fmt *a, struct perf_hpp_fmt *b); |
204 | bool perf_hpp__should_skip(struct perf_hpp_fmt *format); | 204 | bool perf_hpp__should_skip(struct perf_hpp_fmt *format); |
205 | void perf_hpp__reset_width(struct perf_hpp_fmt *fmt, struct hists *hists); | ||
205 | 206 | ||
206 | typedef u64 (*hpp_field_fn)(struct hist_entry *he); | 207 | typedef u64 (*hpp_field_fn)(struct hist_entry *he); |
207 | typedef int (*hpp_callback_fn)(struct perf_hpp *hpp, bool front); | 208 | typedef 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 | ||
1092 | void 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 | |||
1092 | static int __sort__hpp_header(struct perf_hpp_fmt *fmt, struct perf_hpp *hpp, | 1104 | static 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 | { |