[PATCH v3 0/3] tracing: Show real address instead of hashed pointer

From: Masami Hiramatsu
Date: Thu Oct 15 2020 - 10:55:03 EST


Hi,

Here is the 3rd version of the series for real address printing in trace log.

Here is the previous version, I've fixed [1/3] to use krealloc(), fix memory
allocation error check and add __printf() attribute, according to Steve's
comment.

https://lore.kernel.org/lkml/160275239876.115066.10891356497426857018.stgit@devnote2/


Since trace_seq_printf() use in-kernel vsprintf() at last, the %p is always
converted to the hash value instead of real address.

For the dmesg it maybe secure, but for the ftrace, I think it is
meaningless because

- tracefs is used by root user, so no need to hide it.
- tracefs user can access percpu/cpu*/trace_pipe_raw which stores real
address on the trace buffer.
- external commands like perf doesn't convert to the hash value.

And when debugging kernel, we would like to know real address which tells
us the address is in which area in the kernel by comparing with kernel
memory mapping.

However, to compare the trace log with dmesg, we also need a bridging
information. So 3/3 gives the options/hash-ptr knob which switches
the output format.

Thank you,

---

Masami Hiramatsu (3):
tracing: Show real address for trace event arguments
tracing: Update the stage 3 of trace event macro comment
tracing: Add ptr-hash option to show the hashed pointer value


Documentation/trace/ftrace.rst | 6 +++
include/linux/trace_events.h | 4 ++
include/trace/trace_events.h | 31 +++++++++++------
kernel/trace/trace.c | 74 +++++++++++++++++++++++++++++++++++++++-
kernel/trace/trace.h | 3 ++
kernel/trace/trace_output.c | 12 ++++++
6 files changed, 118 insertions(+), 12 deletions(-)

--
Masami Hiramatsu (Linaro) <mhiramat@xxxxxxxxxx>