perf tools: Consolidate management of default sort orders

The perf uses different default sort orders for different use-cases,
and this was scattered throughout the code.  Add get_default_sort_
order() function to handle this and change initial value of sort_order
to NULL to distinguish it from user-given one.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1400480762-22852-10-git-send-email-namhyung@kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
This commit is contained in:
Namhyung Kim 2014-03-18 11:31:39 +09:00 committed by Jiri Olsa
parent a2ce067e55
commit 512ae1bd6a
5 changed files with 31 additions and 24 deletions

View file

@ -8,7 +8,11 @@ regex_t parent_regex;
const char default_parent_pattern[] = "^sys_|^do_page_fault";
const char *parent_pattern = default_parent_pattern;
const char default_sort_order[] = "comm,dso,symbol";
const char *sort_order = default_sort_order;
const char default_branch_sort_order[] = "comm,dso_from,symbol_from,dso_to,symbol_to";
const char default_mem_sort_order[] = "local_weight,mem,sym,dso,symbol_daddr,dso_daddr,snoop,tlb,locked";
const char default_top_sort_order[] = "dso,symbol";
const char default_diff_sort_order[] = "dso,symbol";
const char *sort_order;
regex_t ignore_callees_regex;
int have_ignore_callees = 0;
int sort__need_collapse = 0;
@ -1218,11 +1222,31 @@ int sort_dimension__add(const char *tok)
return -ESRCH;
}
static const char *get_default_sort_order(void)
{
const char *default_sort_orders[] = {
default_sort_order,
default_branch_sort_order,
default_mem_sort_order,
default_top_sort_order,
default_diff_sort_order,
};
BUG_ON(sort__mode >= ARRAY_SIZE(default_sort_orders));
return default_sort_orders[sort__mode];
}
int setup_sorting(void)
{
char *tmp, *tok, *str = strdup(sort_order);
char *tmp, *tok, *str;
const char *sort_keys = sort_order;
int ret = 0;
if (sort_keys == NULL)
sort_keys = get_default_sort_order();
str = strdup(sort_keys);
if (str == NULL) {
error("Not enough memory to setup sort keys");
return -ENOMEM;