diff options
Diffstat (limited to 'tools/perf')
| -rw-r--r-- | tools/perf/builtin-annotate.c | 2 | ||||
| -rw-r--r-- | tools/perf/builtin-diff.c | 2 | ||||
| -rw-r--r-- | tools/perf/builtin-report.c | 2 | ||||
| -rw-r--r-- | tools/perf/builtin-top.c | 2 | ||||
| -rw-r--r-- | tools/perf/tests/hists_cumulate.c | 8 | ||||
| -rw-r--r-- | tools/perf/tests/hists_filter.c | 2 | ||||
| -rw-r--r-- | tools/perf/tests/hists_link.c | 2 | ||||
| -rw-r--r-- | tools/perf/tests/hists_output.c | 10 | ||||
| -rw-r--r-- | tools/perf/util/sort.c | 15 | ||||
| -rw-r--r-- | tools/perf/util/sort.h | 5 |
10 files changed, 27 insertions, 23 deletions
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c index b5b8db0b0338..cc5c1267c738 100644 --- a/tools/perf/builtin-annotate.c +++ b/tools/perf/builtin-annotate.c | |||
| @@ -370,7 +370,7 @@ int cmd_annotate(int argc, const char **argv, const char *prefix __maybe_unused) | |||
| 370 | if (ret < 0) | 370 | if (ret < 0) |
| 371 | goto out_delete; | 371 | goto out_delete; |
| 372 | 372 | ||
| 373 | if (setup_sorting() < 0) | 373 | if (setup_sorting(NULL) < 0) |
| 374 | usage_with_options(annotate_usage, options); | 374 | usage_with_options(annotate_usage, options); |
| 375 | 375 | ||
| 376 | if (annotate.use_stdio) | 376 | if (annotate.use_stdio) |
diff --git a/tools/perf/builtin-diff.c b/tools/perf/builtin-diff.c index 69f5b1feff39..87063835d741 100644 --- a/tools/perf/builtin-diff.c +++ b/tools/perf/builtin-diff.c | |||
| @@ -1279,7 +1279,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix __maybe_unused) | |||
| 1279 | 1279 | ||
| 1280 | sort__mode = SORT_MODE__DIFF; | 1280 | sort__mode = SORT_MODE__DIFF; |
| 1281 | 1281 | ||
| 1282 | if (setup_sorting() < 0) | 1282 | if (setup_sorting(NULL) < 0) |
| 1283 | usage_with_options(diff_usage, options); | 1283 | usage_with_options(diff_usage, options); |
| 1284 | 1284 | ||
| 1285 | setup_pager(); | 1285 | setup_pager(); |
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index 2a7330b99b82..ea53c816640a 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
| @@ -897,7 +897,7 @@ repeat: | |||
| 897 | symbol_conf.cumulate_callchain = false; | 897 | symbol_conf.cumulate_callchain = false; |
| 898 | } | 898 | } |
| 899 | 899 | ||
| 900 | if (setup_sorting() < 0) { | 900 | if (setup_sorting(session->evlist) < 0) { |
| 901 | if (sort_order) | 901 | if (sort_order) |
| 902 | parse_options_usage(report_usage, options, "s", 1); | 902 | parse_options_usage(report_usage, options, "s", 1); |
| 903 | if (field_order) | 903 | if (field_order) |
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 4e913d852518..005825942441 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c | |||
| @@ -1241,7 +1241,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __maybe_unused) | |||
| 1241 | /* display thread wants entries to be collapsed in a different tree */ | 1241 | /* display thread wants entries to be collapsed in a different tree */ |
| 1242 | sort__need_collapse = 1; | 1242 | sort__need_collapse = 1; |
| 1243 | 1243 | ||
| 1244 | if (setup_sorting() < 0) { | 1244 | if (setup_sorting(top.evlist) < 0) { |
| 1245 | if (sort_order) | 1245 | if (sort_order) |
| 1246 | parse_options_usage(top_usage, options, "s", 1); | 1246 | parse_options_usage(top_usage, options, "s", 1); |
| 1247 | if (field_order) | 1247 | if (field_order) |
diff --git a/tools/perf/tests/hists_cumulate.c b/tools/perf/tests/hists_cumulate.c index 8292948bc5f9..e36089212061 100644 --- a/tools/perf/tests/hists_cumulate.c +++ b/tools/perf/tests/hists_cumulate.c | |||
| @@ -281,7 +281,7 @@ static int test1(struct perf_evsel *evsel, struct machine *machine) | |||
| 281 | symbol_conf.cumulate_callchain = false; | 281 | symbol_conf.cumulate_callchain = false; |
| 282 | perf_evsel__reset_sample_bit(evsel, CALLCHAIN); | 282 | perf_evsel__reset_sample_bit(evsel, CALLCHAIN); |
| 283 | 283 | ||
| 284 | setup_sorting(); | 284 | setup_sorting(NULL); |
| 285 | callchain_register_param(&callchain_param); | 285 | callchain_register_param(&callchain_param); |
| 286 | 286 | ||
| 287 | err = add_hist_entries(hists, machine); | 287 | err = add_hist_entries(hists, machine); |
| @@ -428,7 +428,7 @@ static int test2(struct perf_evsel *evsel, struct machine *machine) | |||
| 428 | symbol_conf.cumulate_callchain = false; | 428 | symbol_conf.cumulate_callchain = false; |
| 429 | perf_evsel__set_sample_bit(evsel, CALLCHAIN); | 429 | perf_evsel__set_sample_bit(evsel, CALLCHAIN); |
| 430 | 430 | ||
| 431 | setup_sorting(); | 431 | setup_sorting(NULL); |
| 432 | callchain_register_param(&callchain_param); | 432 | callchain_register_param(&callchain_param); |
| 433 | 433 | ||
| 434 | err = add_hist_entries(hists, machine); | 434 | err = add_hist_entries(hists, machine); |
| @@ -486,7 +486,7 @@ static int test3(struct perf_evsel *evsel, struct machine *machine) | |||
| 486 | symbol_conf.cumulate_callchain = true; | 486 | symbol_conf.cumulate_callchain = true; |
| 487 | perf_evsel__reset_sample_bit(evsel, CALLCHAIN); | 487 | perf_evsel__reset_sample_bit(evsel, CALLCHAIN); |
| 488 | 488 | ||
| 489 | setup_sorting(); | 489 | setup_sorting(NULL); |
| 490 | callchain_register_param(&callchain_param); | 490 | callchain_register_param(&callchain_param); |
| 491 | 491 | ||
| 492 | err = add_hist_entries(hists, machine); | 492 | err = add_hist_entries(hists, machine); |
| @@ -670,7 +670,7 @@ static int test4(struct perf_evsel *evsel, struct machine *machine) | |||
| 670 | symbol_conf.cumulate_callchain = true; | 670 | symbol_conf.cumulate_callchain = true; |
| 671 | perf_evsel__set_sample_bit(evsel, CALLCHAIN); | 671 | perf_evsel__set_sample_bit(evsel, CALLCHAIN); |
| 672 | 672 | ||
| 673 | setup_sorting(); | 673 | setup_sorting(NULL); |
| 674 | callchain_register_param(&callchain_param); | 674 | callchain_register_param(&callchain_param); |
| 675 | 675 | ||
| 676 | err = add_hist_entries(hists, machine); | 676 | err = add_hist_entries(hists, machine); |
diff --git a/tools/perf/tests/hists_filter.c b/tools/perf/tests/hists_filter.c index ccb5b4921f25..2a784befd9ce 100644 --- a/tools/perf/tests/hists_filter.c +++ b/tools/perf/tests/hists_filter.c | |||
| @@ -122,7 +122,7 @@ int test__hists_filter(int subtest __maybe_unused) | |||
| 122 | goto out; | 122 | goto out; |
| 123 | 123 | ||
| 124 | /* default sort order (comm,dso,sym) will be used */ | 124 | /* default sort order (comm,dso,sym) will be used */ |
| 125 | if (setup_sorting() < 0) | 125 | if (setup_sorting(NULL) < 0) |
| 126 | goto out; | 126 | goto out; |
| 127 | 127 | ||
| 128 | machines__init(&machines); | 128 | machines__init(&machines); |
diff --git a/tools/perf/tests/hists_link.c b/tools/perf/tests/hists_link.c index 9eac98daecb8..c764d69ac6ef 100644 --- a/tools/perf/tests/hists_link.c +++ b/tools/perf/tests/hists_link.c | |||
| @@ -294,7 +294,7 @@ int test__hists_link(int subtest __maybe_unused) | |||
| 294 | goto out; | 294 | goto out; |
| 295 | 295 | ||
| 296 | /* default sort order (comm,dso,sym) will be used */ | 296 | /* default sort order (comm,dso,sym) will be used */ |
| 297 | if (setup_sorting() < 0) | 297 | if (setup_sorting(NULL) < 0) |
| 298 | goto out; | 298 | goto out; |
| 299 | 299 | ||
| 300 | machines__init(&machines); | 300 | machines__init(&machines); |
diff --git a/tools/perf/tests/hists_output.c b/tools/perf/tests/hists_output.c index 248beec1d917..ebe6cd485b5d 100644 --- a/tools/perf/tests/hists_output.c +++ b/tools/perf/tests/hists_output.c | |||
| @@ -134,7 +134,7 @@ static int test1(struct perf_evsel *evsel, struct machine *machine) | |||
| 134 | field_order = NULL; | 134 | field_order = NULL; |
| 135 | sort_order = NULL; /* equivalent to sort_order = "comm,dso,sym" */ | 135 | sort_order = NULL; /* equivalent to sort_order = "comm,dso,sym" */ |
| 136 | 136 | ||
| 137 | setup_sorting(); | 137 | setup_sorting(NULL); |
| 138 | 138 | ||
| 139 | /* | 139 | /* |
| 140 | * expected output: | 140 | * expected output: |
| @@ -236,7 +236,7 @@ static int test2(struct perf_evsel *evsel, struct machine *machine) | |||
| 236 | field_order = "overhead,cpu"; | 236 | field_order = "overhead,cpu"; |
| 237 | sort_order = "pid"; | 237 | sort_order = "pid"; |
| 238 | 238 | ||
| 239 | setup_sorting(); | 239 | setup_sorting(NULL); |
| 240 | 240 | ||
| 241 | /* | 241 | /* |
| 242 | * expected output: | 242 | * expected output: |
| @@ -292,7 +292,7 @@ static int test3(struct perf_evsel *evsel, struct machine *machine) | |||
| 292 | field_order = "comm,overhead,dso"; | 292 | field_order = "comm,overhead,dso"; |
| 293 | sort_order = NULL; | 293 | sort_order = NULL; |
| 294 | 294 | ||
| 295 | setup_sorting(); | 295 | setup_sorting(NULL); |
| 296 | 296 | ||
| 297 | /* | 297 | /* |
| 298 | * expected output: | 298 | * expected output: |
| @@ -366,7 +366,7 @@ static int test4(struct perf_evsel *evsel, struct machine *machine) | |||
| 366 | field_order = "dso,sym,comm,overhead,dso"; | 366 | field_order = "dso,sym,comm,overhead,dso"; |
| 367 | sort_order = "sym"; | 367 | sort_order = "sym"; |
| 368 | 368 | ||
| 369 | setup_sorting(); | 369 | setup_sorting(NULL); |
| 370 | 370 | ||
| 371 | /* | 371 | /* |
| 372 | * expected output: | 372 | * expected output: |
| @@ -468,7 +468,7 @@ static int test5(struct perf_evsel *evsel, struct machine *machine) | |||
| 468 | field_order = "cpu,pid,comm,dso,sym"; | 468 | field_order = "cpu,pid,comm,dso,sym"; |
| 469 | sort_order = "dso,pid"; | 469 | sort_order = "dso,pid"; |
| 470 | 470 | ||
| 471 | setup_sorting(); | 471 | setup_sorting(NULL); |
| 472 | 472 | ||
| 473 | /* | 473 | /* |
| 474 | * expected output: | 474 | * expected output: |
diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c index 2d8ccd4d9e1b..0c038a27fe5c 100644 --- a/tools/perf/util/sort.c +++ b/tools/perf/util/sort.c | |||
| @@ -4,6 +4,8 @@ | |||
| 4 | #include "comm.h" | 4 | #include "comm.h" |
| 5 | #include "symbol.h" | 5 | #include "symbol.h" |
| 6 | #include "evsel.h" | 6 | #include "evsel.h" |
| 7 | #include "evlist.h" | ||
| 8 | #include <traceevent/event-parse.h> | ||
| 7 | 9 | ||
| 8 | regex_t parent_regex; | 10 | regex_t parent_regex; |
| 9 | const char default_parent_pattern[] = "^sys_|^do_page_fault"; | 11 | const char default_parent_pattern[] = "^sys_|^do_page_fault"; |
| @@ -1583,7 +1585,8 @@ int hpp_dimension__add_output(unsigned col) | |||
| 1583 | return __hpp_dimension__add_output(&hpp_sort_dimensions[col]); | 1585 | return __hpp_dimension__add_output(&hpp_sort_dimensions[col]); |
| 1584 | } | 1586 | } |
| 1585 | 1587 | ||
| 1586 | int sort_dimension__add(const char *tok) | 1588 | static int sort_dimension__add(const char *tok, |
| 1589 | struct perf_evlist *evlist __maybe_unused) | ||
| 1587 | { | 1590 | { |
| 1588 | unsigned int i; | 1591 | unsigned int i; |
| 1589 | 1592 | ||
| @@ -1712,7 +1715,7 @@ static int setup_sort_order(void) | |||
| 1712 | return 0; | 1715 | return 0; |
| 1713 | } | 1716 | } |
| 1714 | 1717 | ||
| 1715 | static int __setup_sorting(void) | 1718 | static int __setup_sorting(struct perf_evlist *evlist) |
| 1716 | { | 1719 | { |
| 1717 | char *tmp, *tok, *str; | 1720 | char *tmp, *tok, *str; |
| 1718 | const char *sort_keys; | 1721 | const char *sort_keys; |
| @@ -1743,7 +1746,7 @@ static int __setup_sorting(void) | |||
| 1743 | 1746 | ||
| 1744 | for (tok = strtok_r(str, ", ", &tmp); | 1747 | for (tok = strtok_r(str, ", ", &tmp); |
| 1745 | tok; tok = strtok_r(NULL, ", ", &tmp)) { | 1748 | tok; tok = strtok_r(NULL, ", ", &tmp)) { |
| 1746 | ret = sort_dimension__add(tok); | 1749 | ret = sort_dimension__add(tok, evlist); |
| 1747 | if (ret == -EINVAL) { | 1750 | if (ret == -EINVAL) { |
| 1748 | error("Invalid --sort key: `%s'", tok); | 1751 | error("Invalid --sort key: `%s'", tok); |
| 1749 | break; | 1752 | break; |
| @@ -1954,16 +1957,16 @@ out: | |||
| 1954 | return ret; | 1957 | return ret; |
| 1955 | } | 1958 | } |
| 1956 | 1959 | ||
| 1957 | int setup_sorting(void) | 1960 | int setup_sorting(struct perf_evlist *evlist) |
| 1958 | { | 1961 | { |
| 1959 | int err; | 1962 | int err; |
| 1960 | 1963 | ||
| 1961 | err = __setup_sorting(); | 1964 | err = __setup_sorting(evlist); |
| 1962 | if (err < 0) | 1965 | if (err < 0) |
| 1963 | return err; | 1966 | return err; |
| 1964 | 1967 | ||
| 1965 | if (parent_pattern != default_parent_pattern) { | 1968 | if (parent_pattern != default_parent_pattern) { |
| 1966 | err = sort_dimension__add("parent"); | 1969 | err = sort_dimension__add("parent", evlist); |
| 1967 | if (err < 0) | 1970 | if (err < 0) |
| 1968 | return err; | 1971 | return err; |
| 1969 | } | 1972 | } |
diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h index d29898708dbd..1a00f1eb9d21 100644 --- a/tools/perf/util/sort.h +++ b/tools/perf/util/sort.h | |||
| @@ -226,10 +226,11 @@ struct sort_entry { | |||
| 226 | extern struct sort_entry sort_thread; | 226 | extern struct sort_entry sort_thread; |
| 227 | extern struct list_head hist_entry__sort_list; | 227 | extern struct list_head hist_entry__sort_list; |
| 228 | 228 | ||
| 229 | int setup_sorting(void); | 229 | struct perf_evlist; |
| 230 | struct pevent; | ||
| 231 | int setup_sorting(struct perf_evlist *evlist); | ||
| 230 | int setup_output_field(void); | 232 | int setup_output_field(void); |
| 231 | void reset_output_field(void); | 233 | void reset_output_field(void); |
| 232 | extern int sort_dimension__add(const char *); | ||
| 233 | void sort__setup_elide(FILE *fp); | 234 | void sort__setup_elide(FILE *fp); |
| 234 | void perf_hpp__set_elide(int idx, bool elide); | 235 | void perf_hpp__set_elide(int idx, bool elide); |
| 235 | 236 | ||
