Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit de7e6a7c authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo
Browse files

perf hists: Move sort__has_parent into struct perf_hpp_list



Now we have sort dimensions private for struct hists, we need to make
dimension booleans hists specific as well.

Moving sort__has_parent into struct perf_hpp_list.

Signed-off-by: default avatarJiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1462276488-26683-3-git-send-email-jolsa@kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 52225036
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -234,7 +234,7 @@ static int report__setup_sample_type(struct report *rep)
		sample_type |= PERF_SAMPLE_BRANCH_STACK;
		sample_type |= PERF_SAMPLE_BRANCH_STACK;


	if (!is_pipe && !(sample_type & PERF_SAMPLE_CALLCHAIN)) {
	if (!is_pipe && !(sample_type & PERF_SAMPLE_CALLCHAIN)) {
		if (sort__has_parent) {
		if (perf_hpp_list.parent) {
			ui__error("Selected --sort parent, but no "
			ui__error("Selected --sort parent, but no "
				    "callchain data. Did you call "
				    "callchain data. Did you call "
				    "'perf record' without -g?\n");
				    "'perf record' without -g?\n");
+1 −1
Original line number Original line Diff line number Diff line
@@ -799,7 +799,7 @@ int sample__resolve_callchain(struct perf_sample *sample,
		return 0;
		return 0;


	if (symbol_conf.use_callchain || symbol_conf.cumulate_callchain ||
	if (symbol_conf.use_callchain || symbol_conf.cumulate_callchain ||
	    sort__has_parent) {
	    perf_hpp_list.parent) {
		return thread__resolve_callchain(al->thread, cursor, evsel, sample,
		return thread__resolve_callchain(al->thread, cursor, evsel, sample,
						 parent, al, max_stack);
						 parent, al, max_stack);
	}
	}
+1 −0
Original line number Original line Diff line number Diff line
@@ -242,6 +242,7 @@ struct perf_hpp_list {
	struct list_head sorts;
	struct list_head sorts;


	int need_collapse;
	int need_collapse;
	int parent;
};
};


extern struct perf_hpp_list perf_hpp_list;
extern struct perf_hpp_list perf_hpp_list;
+1 −1
Original line number Original line Diff line number Diff line
@@ -1652,7 +1652,7 @@ static int add_callchain_ip(struct thread *thread,
	}
	}


	if (al.sym != NULL) {
	if (al.sym != NULL) {
		if (sort__has_parent && !*parent &&
		if (perf_hpp_list.parent && !*parent &&
		    symbol__match_regex(al.sym, &parent_regex))
		    symbol__match_regex(al.sym, &parent_regex))
			*parent = al.sym;
			*parent = al.sym;
		else if (have_ignore_callees && root_al &&
		else if (have_ignore_callees && root_al &&
+2 −3
Original line number Original line Diff line number Diff line
@@ -21,7 +21,6 @@ const char *sort_order;
const char	*field_order;
const char	*field_order;
regex_t		ignore_callees_regex;
regex_t		ignore_callees_regex;
int		have_ignore_callees = 0;
int		have_ignore_callees = 0;
int		sort__has_parent = 0;
int		sort__has_sym = 0;
int		sort__has_sym = 0;
int		sort__has_dso = 0;
int		sort__has_dso = 0;
int		sort__has_socket = 0;
int		sort__has_socket = 0;
@@ -2244,7 +2243,7 @@ static int sort_dimension__add(struct perf_hpp_list *list, const char *tok,
				pr_err("Invalid regex: %s\n%s", parent_pattern, err);
				pr_err("Invalid regex: %s\n%s", parent_pattern, err);
				return -EINVAL;
				return -EINVAL;
			}
			}
			sort__has_parent = 1;
			list->parent = 1;
		} else if (sd->entry == &sort_sym) {
		} else if (sd->entry == &sort_sym) {
			sort__has_sym = 1;
			sort__has_sym = 1;
			/*
			/*
@@ -2746,7 +2745,7 @@ int setup_sorting(struct perf_evlist *evlist)
void reset_output_field(void)
void reset_output_field(void)
{
{
	perf_hpp_list.need_collapse = 0;
	perf_hpp_list.need_collapse = 0;
	sort__has_parent = 0;
	perf_hpp_list.parent = 0;
	sort__has_sym = 0;
	sort__has_sym = 0;
	sort__has_dso = 0;
	sort__has_dso = 0;


Loading