From: Adrian Hunter <adrian.hunter@intel.com>
To: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>,
Ingo Molnar <mingo@redhat.com>,
linux-kernel@vger.kernel.org, David Ahern <dsahern@gmail.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Jiri Olsa <jolsa@redhat.com>, Mike Galbraith <efault@gmx.de>,
Namhyung Kim <namhyung@gmail.com>,
Paul Mackerras <paulus@samba.org>,
Stephane Eranian <eranian@google.com>
Subject: [PATCH 4/8] perf tools: Set up ref_reloc_sym in machine__create_kernel_maps()
Date: Fri, 24 Jan 2014 17:10:14 +0200 [thread overview]
Message-ID: <1390576218-1463-5-git-send-email-adrian.hunter@intel.com> (raw)
In-Reply-To: <1390576218-1463-1-git-send-email-adrian.hunter@intel.com>
The ref_reloc_sym is always needed for the
kernel map in order to check for relocation.
Consequently set it up when the kernel map is
created. Otherwise it was only beging set up
by 'perf record'.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
tools/perf/util/machine.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 290c2e6..58a4e92 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -835,6 +835,20 @@ static int machine__create_modules(struct machine *machine)
int machine__create_kernel_maps(struct machine *machine)
{
struct dso *kernel = machine__get_kernel(machine);
+ char filename[PATH_MAX];
+ const char *name;
+ u64 addr;
+
+ machine__get_kallsyms_filename(machine, filename, PATH_MAX);
+
+ name = "_text";
+ addr = kallsyms__get_function_start(filename, name);
+ if (!addr) {
+ name = "_stext";
+ addr = kallsyms__get_function_start("/proc/kallsyms", name);
+ if (!addr)
+ return -1;
+ }
if (kernel == NULL ||
__machine__create_kernel_maps(machine, kernel) < 0)
@@ -853,6 +867,13 @@ int machine__create_kernel_maps(struct machine *machine)
* Now that we have all the maps created, just set the ->end of them:
*/
map_groups__fixup_end(&machine->kmaps);
+
+ if (maps__set_kallsyms_ref_reloc_sym(machine->vmlinux_maps, name,
+ addr)) {
+ machine__destroy_kernel_maps(machine);
+ return -1;
+ }
+
return 0;
}
--
1.7.11.7
next prev parent reply other threads:[~2014-01-24 15:09 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-01-24 15:10 [PATCH 0/8] perf tools: kaslr fixes Adrian Hunter
2014-01-24 15:10 ` [PATCH 1/8] perf tools: Fix symbol annotation for relocated kernel Adrian Hunter
2014-01-24 15:10 ` [PATCH 2/8] perf tools: Add kallsyms__get_function_start() Adrian Hunter
2014-01-24 15:10 ` [PATCH 3/8] perf tools: Add machine__get_kallsyms_filename() Adrian Hunter
2014-01-24 15:10 ` Adrian Hunter [this message]
2014-01-24 15:10 ` [PATCH 5/8] perf report: Get ref_reloc_sym from kernel map Adrian Hunter
2014-01-24 15:10 ` [PATCH 6/8] perf tools: Prevent the use of kcore if the kernel has moved Adrian Hunter
2014-01-24 15:10 ` [PATCH 7/8] perf tools: test does not need to set up ref_reloc_sym Adrian Hunter
2014-01-24 15:10 ` [PATCH 8/8] perf tools: Adjust kallsyms for relocated kernel Adrian Hunter
2014-01-26 18:43 ` [PATCH 0/8] perf tools: kaslr fixes Jiri Olsa
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=1390576218-1463-5-git-send-email-adrian.hunter@intel.com \
--to=adrian.hunter@intel.com \
--cc=a.p.zijlstra@chello.nl \
--cc=acme@ghostprotocols.net \
--cc=dsahern@gmail.com \
--cc=efault@gmx.de \
--cc=eranian@google.com \
--cc=fweisbec@gmail.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@gmail.com \
--cc=paulus@samba.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome