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 | { |
