Commit 75be6cf (perf symbols: Make symbol_conf global) does what it says
on the tin, but also initialises the member fields use_modules and
try_vmlinux_path to true rather than the 'false' value they would have
had when symbol_conf was static.
When there is no vmlinux on the system and modules loaded, perf top will
not show any kernel symbols and perf report will only list raw IP's
rather than symbol names. Unloading the modules will give normal output.
The patch below fixes the problem for my box with no vmlinux and still
works on my desktop with a vmlinux present but I don't understand the
symbol code in perf enough to be sure that this is 100% correct.
Jamie
[PATCH] perf symbols: don't use modules or try vmlinux unless needed
Commit 75be6cf (perf symbols: Make symbol_conf global) does what it says
on the tin, but also initialises the member fields use_modules and
try_vmlinux_path to true rather than the 'false' value they would have
had when symbol_conf was static.
Restore previous behaviour by initialising these fields to false.
Signed-off-by: Jamie Iles <[email protected]>
---
tools/perf/util/symbol.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index ab92763..be9f17b 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -39,8 +39,8 @@ static char **vmlinux_path;
struct symbol_conf symbol_conf = {
.exclude_other = true,
- .use_modules = true,
- .try_vmlinux_path = true,
+ .use_modules = false,
+ .try_vmlinux_path = false,
};
bool dso__loaded(const struct dso *self, enum map_type type)
--
1.6.5.2