From: David Ahern Date: Wed, 20 Nov 2013 04:07:37 +0000 (-0700) Subject: perf script: Print callchains and symbols if they exist X-Git-Tag: upstream/snapshot3+hdmi~3649^2~19^2~7 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=80b8b496ec6edaff01f9ab74dbe8a517cd718de8;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git perf script: Print callchains and symbols if they exist The intent of perf-script is to dump the events and information in the file. H/W, S/W and raw events all dump callchains if they are present; might as well make that the default for tracepoints too. v2: Only add options for sym, dso and ip if callchains are present Signed-off-by: David Ahern Cc: Frederic Weisbecker Link: http://lkml.kernel.org/r/1384920457-5986-1-git-send-email-dsahern@gmail.com Signed-off-by: Arnaldo Carvalho de Melo --- diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c index b392770..9f3ba44 100644 --- a/tools/perf/builtin-script.c +++ b/tools/perf/builtin-script.c @@ -280,6 +280,30 @@ static int perf_session__check_output_opt(struct perf_session *session) set_print_ip_opts(&evsel->attr); } + /* + * set default for tracepoints to print symbols only + * if callchains are present + */ + if (symbol_conf.use_callchain && + !output[PERF_TYPE_TRACEPOINT].user_set) { + struct perf_event_attr *attr; + + j = PERF_TYPE_TRACEPOINT; + evsel = perf_session__find_first_evtype(session, j); + if (evsel == NULL) + goto out; + + attr = &evsel->attr; + + if (attr->sample_type & PERF_SAMPLE_CALLCHAIN) { + output[j].fields |= PERF_OUTPUT_IP; + output[j].fields |= PERF_OUTPUT_SYM; + output[j].fields |= PERF_OUTPUT_DSO; + set_print_ip_opts(attr); + } + } + +out: return 0; }