[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1390576218-1463-5-git-send-email-adrian.hunter@intel.com>
Date: Fri, 24 Jan 2014 17:10:14 +0200
From: Adrian Hunter <adrian.hunter@...el.com>
To: Arnaldo Carvalho de Melo <acme@...stprotocols.net>
Cc: Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Ingo Molnar <mingo@...hat.com>, linux-kernel@...r.kernel.org,
David Ahern <dsahern@...il.com>,
Frederic Weisbecker <fweisbec@...il.com>,
Jiri Olsa <jolsa@...hat.com>, Mike Galbraith <efault@....de>,
Namhyung Kim <namhyung@...il.com>,
Paul Mackerras <paulus@...ba.org>,
Stephane Eranian <eranian@...gle.com>
Subject: [PATCH 4/8] perf tools: Set up ref_reloc_sym in machine__create_kernel_maps()
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@...el.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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists