Re: [PATCH] kretprobe: produce sane stack traces

From: Masami Hiramatsu
Date: Thu Nov 01 2018 - 11:02:03 EST


On Thu, 1 Nov 2018 21:49:48 +1100
Aleksa Sarai <cyphar@xxxxxxxxxx> wrote:

> On 2018-11-01, Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
> > > > > Anyway, until that merge happens, this patch looks good to avoid
> > > > > this issue for generic solution (e.g. for the arch which doesn't
> > > > > supports retstack).
> > > >
> > > > I think its time to come up with an algorithm that makes function graph
> > > > work with multiple users, and have kretprobes be able to hook into it
> > > > just like kprobes hooks into function tracer.
> > > >
> > > > I have some ideas on how to get this done, and will try to have an RFC
> > > > patch set ready by plumbers.
> > >
> > > Should I continue working on this patchset?
> >
> > Yes, until we finally introduce Steven's algorithm on all arch (yeah, we still
> > have some archs which don't support graph-tracer but supports kprobes),
> > I think your patch is the best fix for this issue.
>
> Thanks, I just sent a v3.
>
> Though, even with Steven's hooking of kprobes I think you'd still need
> to stash away the stack trace somewhere (or am I misunderstanding the
> proposal?).

Wait, I might miss something. kretprobe and func-graph tracer just swap the
return address on the stack but no change on other stuffs on the stack.
In that case, if we can restore the stack, isn't it enough?

And anyway, even if using func-graph tracer, stack unwinding works correctly.
I thought it means we don't need to backup whole the stack, doesn't it?

Thank you,

--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>