aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2015-07-31 16:04:54 +0200
committerSteven Rostedt <rostedt@goodmis.org>2015-09-17 14:10:20 -0400
commitce1cbc51c83d2235aca67f570ab34e547d94560b (patch)
tree6df3f5614688859903e3dde0b118eda74ac78aa4
parent4c87d638c69eb258cd7ce2d87a86af0c2b6a8122 (diff)
downloadtrace-cmd-ce1cbc51c83d2235aca67f570ab34e547d94560b.tar.gz
trace-cmd: Leave out absolute addresses to fix bogus symbol resolutions
On x86, page_fault_* tracepoints report userspace address via kernel symbols because all the per-cpu variable offsets are in kallsyms, occupying the lower address space. Fix this by skipping over absolute addresses while processing kallsyms. Link: http://lkml.kernel.org/r/55BB8086.9080602@siemens.com Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--trace-util.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/trace-util.c b/trace-util.c
index 8a81dd0e..da20e4ca 100644
--- a/trace-util.c
+++ b/trace-util.c
@@ -434,8 +434,12 @@ void parse_proc_kallsyms(struct pevent *pevent,
if (mod)
mod[strlen(mod) - 1] = 0;
- /* Hack for arm arch that adds a lot of bogus '$a' functions */
- if (func[0] != '$')
+ /*
+ * Hacks for
+ * - arm arch that adds a lot of bogus '$a' functions
+ * - x86-64 that reports per-cpu variable offsets as absolute
+ */
+ if (func[0] != '$' && ch != 'A')
pevent_register_function(pevent, func, addr, mod);
free(func);
free(mod);