All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: Clark Williams <williams@redhat.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Arnaldo Carvalho de Melo <acme@redhat.com>,
	Adrian Hunter <adrian.hunter@intel.com>,
	David Ahern <dsahern@gmail.com>, Jiri Olsa <jolsa@kernel.org>,
	Namhyung Kim <namhyung@kernel.org>,
	Wang Nan <wangnan0@huawei.com>
Subject: [PATCH 25/46] perf annotate: Move objdump_path to struct annotation_options
Date: Tue,  5 Jun 2018 14:50:09 -0300	[thread overview]
Message-ID: <20180605175030.32549-26-acme@kernel.org> (raw)
In-Reply-To: <20180605175030.32549-1-acme@kernel.org>

From: Arnaldo Carvalho de Melo <acme@redhat.com>

One more step in grouping annotation options.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-sogzdhugoavm6fyw60jnb0vs@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/arch/common.c       | 4 ++--
 tools/perf/arch/common.h       | 4 +---
 tools/perf/builtin-annotate.c  | 7 ++++---
 tools/perf/builtin-report.c    | 2 +-
 tools/perf/builtin-top.c       | 7 ++++---
 tools/perf/ui/browsers/hists.c | 3 ++-
 tools/perf/util/annotate.c     | 3 +--
 tools/perf/util/annotate.h     | 1 +
 8 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/tools/perf/arch/common.c b/tools/perf/arch/common.c
index c6f373508a4f..82657c01a3b8 100644
--- a/tools/perf/arch/common.c
+++ b/tools/perf/arch/common.c
@@ -189,7 +189,7 @@ static int perf_env__lookup_binutils_path(struct perf_env *env,
 	return -1;
 }
 
-int perf_env__lookup_objdump(struct perf_env *env)
+int perf_env__lookup_objdump(struct perf_env *env, const char **path)
 {
 	/*
 	 * For live mode, env->arch will be NULL and we can use
@@ -198,5 +198,5 @@ int perf_env__lookup_objdump(struct perf_env *env)
 	if (env->arch == NULL)
 		return 0;
 
-	return perf_env__lookup_binutils_path(env, "objdump", &objdump_path);
+	return perf_env__lookup_binutils_path(env, "objdump", path);
 }
diff --git a/tools/perf/arch/common.h b/tools/perf/arch/common.h
index 2d875baa92e6..2167001b18c5 100644
--- a/tools/perf/arch/common.h
+++ b/tools/perf/arch/common.h
@@ -4,8 +4,6 @@
 
 #include "../util/env.h"
 
-extern const char *objdump_path;
-
-int perf_env__lookup_objdump(struct perf_env *env);
+int perf_env__lookup_objdump(struct perf_env *env, const char **path);
 
 #endif /* ARCH_PERF_COMMON_H */
diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 2339ae719e1d..5eb22cc56363 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -388,8 +388,9 @@ static int __cmd_annotate(struct perf_annotate *ann)
 			goto out;
 	}
 
-	if (!objdump_path) {
-		ret = perf_env__lookup_objdump(&session->header.env);
+	if (!ann->opts.objdump_path) {
+		ret = perf_env__lookup_objdump(&session->header.env,
+					       &ann->opts.objdump_path);
 		if (ret)
 			goto out;
 	}
@@ -521,7 +522,7 @@ int cmd_annotate(int argc, const char **argv)
 		    "Display raw encoding of assembly instructions (default)"),
 	OPT_STRING('M', "disassembler-style", &annotate.opts.disassembler_style, "disassembler style",
 		   "Specify disassembler style (e.g. -M intel for intel syntax)"),
-	OPT_STRING(0, "objdump", &objdump_path, "path",
+	OPT_STRING(0, "objdump", &annotate.opts.objdump_path, "path",
 		   "objdump binary to use for disassembly and annotations"),
 	OPT_BOOLEAN(0, "group", &symbol_conf.event_group,
 		    "Show event group information together"),
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c
index 14b516a3a0de..bc133e7a7ac2 100644
--- a/tools/perf/builtin-report.c
+++ b/tools/perf/builtin-report.c
@@ -1094,7 +1094,7 @@ int cmd_report(int argc, const char **argv)
 		    parse_branch_mode),
 	OPT_BOOLEAN(0, "branch-history", &branch_call_mode,
 		    "add last branch records to call history"),
-	OPT_STRING(0, "objdump", &objdump_path, "path",
+	OPT_STRING(0, "objdump", &report.annotation_opts.objdump_path, "path",
 		   "objdump binary to use for disassembly and annotations"),
 	OPT_BOOLEAN(0, "demangle", &symbol_conf.demangle,
 		    "Disable symbol demangling"),
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index bd60a631a481..ffdc2769ff9f 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -1077,8 +1077,9 @@ static int __cmd_top(struct perf_top *top)
 	if (top->session == NULL)
 		return -1;
 
-	if (!objdump_path) {
-		ret = perf_env__lookup_objdump(&top->session->header.env);
+	if (!top->annotation_opts.objdump_path) {
+		ret = perf_env__lookup_objdump(&top->session->header.env,
+					       &top->annotation_opts.objdump_path);
 		if (ret)
 			goto out_delete;
 	}
@@ -1347,7 +1348,7 @@ int cmd_top(int argc, const char **argv)
 		    "Display raw encoding of assembly instructions (default)"),
 	OPT_BOOLEAN(0, "demangle-kernel", &symbol_conf.demangle_kernel,
 		    "Enable kernel symbol demangling"),
-	OPT_STRING(0, "objdump", &objdump_path, "path",
+	OPT_STRING(0, "objdump", &top.annotation_opts.objdump_path, "path",
 		    "objdump binary to use for disassembly and annotations"),
 	OPT_STRING('M', "disassembler-style", &top.annotation_opts.disassembler_style, "disassembler style",
 		   "Specify disassembler style (e.g. -M intel for intel syntax)"),
diff --git a/tools/perf/ui/browsers/hists.c b/tools/perf/ui/browsers/hists.c
index 3af1b74608ab..22054107f1af 100644
--- a/tools/perf/ui/browsers/hists.c
+++ b/tools/perf/ui/browsers/hists.c
@@ -2338,7 +2338,8 @@ do_annotate(struct hist_browser *browser, struct popup_action *act)
 	struct hist_entry *he;
 	int err;
 
-	if (!objdump_path && perf_env__lookup_objdump(browser->env))
+	if (!browser->annotation_opts->objdump_path &&
+	    perf_env__lookup_objdump(browser->env, &browser->annotation_opts->objdump_path))
 		return 0;
 
 	notes = symbol__annotation(act->ms.sym);
diff --git a/tools/perf/util/annotate.c b/tools/perf/util/annotate.c
index a90777717b60..2baa22933b0e 100644
--- a/tools/perf/util/annotate.c
+++ b/tools/perf/util/annotate.c
@@ -51,7 +51,6 @@ struct annotation_options annotation__default_options = {
 	.offset_level	= ANNOTATION__OFFSET_JUMP_TARGETS,
 };
 
-const char	*objdump_path;
 static regex_t	 file_lineno;
 
 static struct ins_ops *ins__find(struct arch *arch, const char *name);
@@ -1657,7 +1656,7 @@ static int symbol__disassemble(struct symbol *sym, struct annotate_args *args)
 		 "%s %s%s --start-address=0x%016" PRIx64
 		 " --stop-address=0x%016" PRIx64
 		 " -l -d %s %s -C \"%s\" 2>/dev/null|grep -v \"%s:\"|expand",
-		 objdump_path ? objdump_path : "objdump",
+		 opts->objdump_path ?: "objdump",
 		 opts->disassembler_style ? "-M " : "",
 		 opts->disassembler_style ?: "",
 		 map__rip_2objdump(map, sym->start),
diff --git a/tools/perf/util/annotate.h b/tools/perf/util/annotate.h
index 6e6e2a571928..a4c0d91907e6 100644
--- a/tools/perf/util/annotate.h
+++ b/tools/perf/util/annotate.h
@@ -80,6 +80,7 @@ struct annotation_options {
 	int  min_pcnt;
 	int  max_lines;
 	int  context;
+	const char *objdump_path;
 	const char *disassembler_style;
 };
 
-- 
2.14.3

  parent reply	other threads:[~2018-06-05 17:50 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-05 17:49 [GIT PULL 00/46] perf/core fixes and improvements Arnaldo Carvalho de Melo
2018-06-05 17:49 ` Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 01/46] perf tools: Remove dead quote.[ch] code Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 02/46] perf probe: Use return of map__get() to make code more compact Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 03/46] perf cgroup: Make evlist__find_cgroup() " Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 04/46] perf tools: No need to check if the argument to __get() function is NULL Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 05/46] perf annotate: Pass perf_evsel instead of just evsel->idx Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 06/46] perf annotate: __symbol__acount_cycles doesn't need notes Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 07/46] perf annotate: Split allocation of annotated_source struct Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 08/46] perf annotate: Introduce constructor/destructor for annotated_source Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 09/46] perf annotate: Introduce annotated_source__alloc_histograms Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 10/46] perf annotate: __symbol__inc_addr_samples() needs just annotated_source Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 11/46] perf annotate: Introduce symbol__hists() Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 12/46] perf annotate: Introduce symbol__cycle_hists() Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 13/46] perf annotate: Stop using symbol_conf.nr_events global in symbol__hists() Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 14/46] perf annotate: Replace symbol__alloc_hists() with symbol__hists() Arnaldo Carvalho de Melo
2018-06-05 17:49 ` [PATCH 15/46] perf tools: Ditch the symbol_conf.nr_events global Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 16/46] perf annotate: Add comment about annotated_src->nr_histograms Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 17/46] perf annotate stdio: Use annotation_options consistently Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 18/46] perf srcline: Introduce map__srcline() to make code more compact Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 19/46] perf sort: Introduce addr_map_symbol__srcline() " Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 20/46] perf srcline: Make hist_entry srcline helper consistent with map's Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 21/46] perf annotate: Pass annotation_options to symbol__annotate() Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 22/46] perf annotate: Adopt anotation options from symbol_conf Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 23/46] perf annotate: Move disassembler_style global to annotation_options Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 24/46] perf hists browser: Pass annotation_options from tool to browser Arnaldo Carvalho de Melo
2018-06-05 17:50 ` Arnaldo Carvalho de Melo [this message]
2018-06-05 17:50 ` [PATCH 26/46] perf test: Use header file util/debug.h Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 27/46] perf report: No need to have report_callchain_help as a global Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 28/46] perf evsel: Add has_callchain() helper to make code more compact/clear Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 29/46] perf script: Check if evsel has callchains before trying to use it Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 30/46] perf sched: Use sched->show_callchain where appropriate Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 31/46] perf hists: Do not allocate space for callchains for evsels without them Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 32/46] perf hists: Introduce hist_entry__has_callchain() method Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 33/46] perf hists: Check if a hist_entry has callchains before using them Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 34/46] perf tests kmod-path: Add tests for vdso32 and vdsox32 Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 35/46] perf tools: Fix symbol and object code resolution " Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 36/46] perf record: Enable arbitrary event names thru name= modifier Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 37/46] perf stat: Display user and system time Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 38/46] perf tools: Fix pmu events parsing rule Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 39/46] perf test code-reading: Fix perf_env setup for PTI entry trampolines Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 40/46] perf map: Consider PTI entry trampolines in rip_2objdump() Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 41/46] perf test record+probe_libc_inet_pton: Ask 'nm' for dynamic symbols Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 42/46] perf script powerpc: Python script for hypervisor call statistics Arnaldo Carvalho de Melo
2018-06-06 14:53   ` Paul Clarke
2018-06-07  5:34     ` Ravi Bangoria
2018-06-07 13:41       ` Paul Clarke
2018-06-07 13:45         ` Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 43/46] perf intel-pt: Fix sync_switch INTEL_PT_SS_NOT_TRACING Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 44/46] perf intel-pt: Fix decoding to accept CBR between FUP and corresponding TIP Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 45/46] perf intel-pt: Fix MTC timing after overflow Arnaldo Carvalho de Melo
2018-06-05 17:50 ` [PATCH 46/46] perf intel-pt: Fix "Unexpected indirect branch" error Arnaldo Carvalho de Melo
2018-06-07  5:22 ` [GIT PULL 00/46] perf/core fixes and improvements Ingo Molnar
2018-06-07  5:22   ` Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180605175030.32549-26-acme@kernel.org \
    --to=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=adrian.hunter@intel.com \
    --cc=dsahern@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=wangnan0@huawei.com \
    --cc=williams@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.