[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <tip-5654997838c2ac9b1950d633fc97f354cc4180e7@git.kernel.org>
Date: Wed, 16 May 2018 11:04:56 -0700
From: tip-bot for Adrian Hunter <tipbot@...or.com>
To: linux-tip-commits@...r.kernel.org
Cc: jolsa@...hat.com, dave.hansen@...ux.intel.com, ak@...ux.intel.com,
hpa@...or.com, mingo@...nel.org, linux-kernel@...r.kernel.org,
peterz@...radead.org, tglx@...utronix.de,
alexander.shishkin@...ux.intel.com, adrian.hunter@...el.com,
joro@...tes.org, acme@...hat.com, luto@...nel.org
Subject: [tip:perf/core] perf tools: Use the "_stest" symbol to identify the
kernel map when loading kcore
Commit-ID: 5654997838c2ac9b1950d633fc97f354cc4180e7
Gitweb: https://git.kernel.org/tip/5654997838c2ac9b1950d633fc97f354cc4180e7
Author: Adrian Hunter <adrian.hunter@...el.com>
AuthorDate: Wed, 9 May 2018 14:43:34 +0300
Committer: Arnaldo Carvalho de Melo <acme@...hat.com>
CommitDate: Tue, 15 May 2018 14:31:25 -0300
perf tools: Use the "_stest" symbol to identify the kernel map when loading kcore
The first symbol is not necessarily in the kernel text. Instead of
using the first symbol, use the _stest symbol to identify the kernel map
when loading kcore.
This allows for the introduction of symbols to identify the x86_64 PTI
entry trampolines.
Signed-off-by: Adrian Hunter <adrian.hunter@...el.com>
Cc: Alexander Shishkin <alexander.shishkin@...ux.intel.com>
Cc: Andi Kleen <ak@...ux.intel.com>
Cc: Andy Lutomirski <luto@...nel.org>
Cc: Dave Hansen <dave.hansen@...ux.intel.com>
Cc: H. Peter Anvin <hpa@...or.com>
Cc: Jiri Olsa <jolsa@...hat.com>
Cc: Joerg Roedel <joro@...tes.org>
Cc: Peter Zijlstra <peterz@...radead.org>
Cc: Thomas Gleixner <tglx@...utronix.de>
Cc: x86@...nel.org
Link: http://lkml.kernel.org/r/1525866228-30321-6-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@...hat.com>
---
tools/perf/util/symbol.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index f48dc157c2bd..4a39f4d0a174 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1149,7 +1149,7 @@ static int dso__load_kcore(struct dso *dso, struct map *map,
bool is_64_bit;
int err, fd;
char kcore_filename[PATH_MAX];
- struct symbol *sym;
+ u64 stext;
if (!kmaps)
return -EINVAL;
@@ -1198,13 +1198,13 @@ static int dso__load_kcore(struct dso *dso, struct map *map,
old_map = next;
}
- /* Find the kernel map using the first symbol */
- sym = dso__first_symbol(dso);
- list_for_each_entry(new_map, &md.maps, node) {
- if (sym && sym->start >= new_map->start &&
- sym->start < new_map->end) {
- replacement_map = new_map;
- break;
+ /* Find the kernel map using the '_stext' symbol */
+ if (!kallsyms__get_function_start(kallsyms_filename, "_stext", &stext)) {
+ list_for_each_entry(new_map, &md.maps, node) {
+ if (stext >= new_map->start && stext < new_map->end) {
+ replacement_map = new_map;
+ break;
+ }
}
}
Powered by blists - more mailing lists