Re: [PATCH v7 00/16] tracing: probeevent: Improve fetcharg features

From: Steven Rostedt
Date: Mon May 07 2018 - 11:30:15 EST


On Sun, 6 May 2018 00:51:43 +0900
Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote:

> OK, now I think it is a time to introduce new unified interface for dynamic events,
> tracefs/dynamic_events and make uprobe_events and kprobe_events as symbolic-links
> to the new interface file.

So basically make one file that does all the work?

I'm not sure we can keep the other files as symbolic links. Because we
don't want the kprobe_events showing up in the uprobe_events file, and
vice versa. We need to keep all this backward compatible.

But I do like the idea of one file to rule them all, approach.

-- Steve


>
> Actually, there is no reason we split those 2 interfaces, since
> both have similar, but very clear syntax differences.
>
> o Uprobe event definition
> p[:[GRP/]EVENT] PATH:OFFSET [FETCHARGS] : Set a uprobe
> r[:[GRP/]EVENT] PATH:OFFSET [FETCHARGS] : Set a return uprobe (uretprobe)
> -:[GRP/]EVENT : Clear uprobe or uretprobe event
>
> o Kprobe event definition
> p[:[GRP/]EVENT] [MOD:]SYM[+offs]|MEMADDR [FETCHARGS] : Set a probe
> r[MAXACTIVE][:[GRP/]EVENT] [MOD:]SYM[+0] [FETCHARGS] : Set a return probe
> -:[GRP/]EVENT : Clear a probe
>
> At first, it is clear that those can share the parser. 2nd, it is easy to
> distinguish those, because Uprobe event must require the PATH which starts
> with '/', on the other hand, Kprobe event must NOT start with '/'.
> (both SYM and MOD will start with alphabet or '_', of course MEMADDR
> will start with digits)
>
> If we can merge those to unified dynamic_events interface, I think
> 'f[:[GRP/]EVENT] SYM(CAST)' is also acceptable, since it is no more
> only for kprobe/uprobe. We can directly add some other dynamic
> events via dynamic_events interface. ;)
>
> Thank you,
>