From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@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>,
Masami Hiramatsu <mhiramat@kernel.org>,
Namhyung Kim <namhyung@kernel.org>,
Wang Nan <wangnan0@huawei.com>
Subject: [PATCH 03/13] perf machine: Add a kallsyms loading constructor
Date: Wed, 11 Jan 2017 17:22:01 -0300 [thread overview]
Message-ID: <20170111202211.32137-4-acme@kernel.org> (raw)
In-Reply-To: <20170111202211.32137-1-acme@kernel.org>
From: Arnaldo Carvalho de Melo <acme@redhat.com>
To reduce the boilerplate for searching for functions in the running
kernel and modules.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-93iqzayafpaxaguoiwjqezgz@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/machine.c | 19 +++++++++++++++++++
tools/perf/util/machine.h | 1 +
2 files changed, 20 insertions(+)
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 9b33bef54581..747a034d1ff3 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -87,6 +87,25 @@ struct machine *machine__new_host(void)
return NULL;
}
+struct machine *machine__new_kallsyms(void)
+{
+ struct machine *machine = machine__new_host();
+ /*
+ * FIXME:
+ * 1) MAP__FUNCTION will go away when we stop loading separate maps for
+ * functions and data objects.
+ * 2) We should switch to machine__load_kallsyms(), i.e. not explicitely
+ * ask for not using the kcore parsing code, once this one is fixed
+ * to create a map per module.
+ */
+ if (machine && __machine__load_kallsyms(machine, "/proc/kallsyms", MAP__FUNCTION, true) <= 0) {
+ machine__delete(machine);
+ machine = NULL;
+ }
+
+ return machine;
+}
+
static void dsos__purge(struct dsos *dsos)
{
struct dso *pos, *n;
diff --git a/tools/perf/util/machine.h b/tools/perf/util/machine.h
index 354de6e56109..a28305029711 100644
--- a/tools/perf/util/machine.h
+++ b/tools/perf/util/machine.h
@@ -129,6 +129,7 @@ char *machine__mmap_name(struct machine *machine, char *bf, size_t size);
void machines__set_comm_exec(struct machines *machines, bool comm_exec);
struct machine *machine__new_host(void);
+struct machine *machine__new_kallsyms(void);
int machine__init(struct machine *machine, const char *root_dir, pid_t pid);
void machine__exit(struct machine *machine);
void machine__delete_threads(struct machine *machine);
--
2.9.3
next prev parent reply other threads:[~2017-01-11 20:23 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-11 20:21 [GIT PULL 00/13] perf/core improvements and fixes Arnaldo Carvalho de Melo
2017-01-11 20:21 ` [PATCH 01/13] perf jvmti: Create libdir directory before installing libperf-jvmti.so Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 02/13] tools lib subcmd: Add missing linux/kernel.h include to subcmd.h Arnaldo Carvalho de Melo
2017-01-11 20:22 ` Arnaldo Carvalho de Melo [this message]
2017-01-11 20:22 ` [PATCH 04/13] perf kallsyms: Introduce tool to look for extended symbol information on the running kernel Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 05/13] perf trace: Allow specifying list of syscalls and events in -e/--expr/--event Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 06/13] perf evlist: Fix typo in perf_evlist__start_workload() Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 07/13] perf tools: Add unit_number__scnprintf function Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 08/13] perf record: Add struct switch_output Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 09/13] perf record: Change switch-output option to take optional argument Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 10/13] perf record: Add switch-output size option argument Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 11/13] perf record: Add switch-output size warning Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 12/13] perf record: Add switch-output time option argument Arnaldo Carvalho de Melo
2017-01-11 20:22 ` [PATCH 13/13] tools: Sync x86's vmx.h with the kernel Arnaldo Carvalho de Melo
2017-01-12 8:25 ` [GIT PULL 00/13] perf/core improvements and fixes 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=20170111202211.32137-4-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=mhiramat@kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=wangnan0@huawei.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.