Re: [RFC][PATCH 00/14 v2] function_graph: Rewrite to allow multiple users

From: Masami Hiramatsu
Date: Wed May 29 2019 - 02:51:12 EST


On Wed, 22 May 2019 10:40:27 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> On Wed, 22 May 2019 23:19:55 +0900
> Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:
>
> > > void *fgraph_reserve_data(int size_in_bytes)
> > >
> > > Allows the entry function to reserve up to 4 words of data on
> > > the shadow stack. On success, a pointer to the contents is returned.
> > > This may be only called once per entry function.
> > >
> > > void *fgraph_retrieve_data(void)
> > >
> > > Allows the return function to retrieve the reserved data that was
> > > allocated by the entry function.
> >
> > Nice! this seems good for kretprobe too. I'll review and try to port
> > kretprobe on this framework.
>
> If you rather pull from my git repo and not download all the patches,
> they are currently available in my ftrace/fgraph-multi branch.

Hi Steve,

I found that these interfaces seem tightly coupled with fgraph_ops. But that
cause a problem when I'm using it from kretprobe.

kretprobe has 2 handlers, entry handler and return handler, and both need
pt_regs. But fgraph_ops's entryfunc and retfunc do not pass the pt_regs.
That is the biggest issue for me on these APIs.
Can we expand fgraph_ops with regs parameter?

Thank you,

--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>