aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/builtin-annotate.c2
-rw-r--r--tools/perf/builtin-diff.c2
-rw-r--r--tools/perf/builtin-report.c2
-rw-r--r--tools/perf/builtin-top.c2
-rw-r--r--tools/perf/tests/hists_cumulate.c8
-rw-r--r--tools/perf/tests/hists_filter.c2
-rw-r--r--tools/perf/tests/hists_link.c2
-rw-r--r--tools/perf/tests/hists_output.c10
-rw-r--r--tools/perf/util/sort.c15
-rw-r--r--tools/perf/util/sort.h5
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
8regex_t parent_regex; 10regex_t parent_regex;
9const char default_parent_pattern[] = "^sys_|^do_page_fault"; 11const 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
1586int sort_dimension__add(const char *tok) 1588static 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
1715static int __setup_sorting(void) 1718static 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
1957int setup_sorting(void) 1960int 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 {
226extern struct sort_entry sort_thread; 226extern struct sort_entry sort_thread;
227extern struct list_head hist_entry__sort_list; 227extern struct list_head hist_entry__sort_list;
228 228
229int setup_sorting(void); 229struct perf_evlist;
230struct pevent;
231int setup_sorting(struct perf_evlist *evlist);
230int setup_output_field(void); 232int setup_output_field(void);
231void reset_output_field(void); 233void reset_output_field(void);
232extern int sort_dimension__add(const char *);
233void sort__setup_elide(FILE *fp); 234void sort__setup_elide(FILE *fp);
234void perf_hpp__set_elide(int idx, bool elide); 235void perf_hpp__set_elide(int idx, bool elide);
235 236