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

From: Masami Hiramatsu
Date: Thu Oct 15 2020 - 12:01:02 EST


On Thu, 15 Oct 2020 11:49:31 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Thu, 15 Oct 2020 23:54:58 +0900
> Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
>
> > 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.
> >
>
> Thanks Masami,
>
> I'm going to hold off on adding this for this merge window, and look at
> applying it for the next window.

Thank you very much!
I got it, anyway I can use kernelshark or perf script to decode raw event
data, or I will use kprobe event to fetch the real address :)

--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>