On Mon, 7 May 2018 11:30:03 -0400 Steven Rostedt rostedt@goodmis.org wrote:
On Sun, 6 May 2018 00:51:43 +0900 Masami Hiramatsu mhiramat@kernel.org 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.
Good catch! Can't we check which file the user opened? If not, even though we can setup a filter in ops->open().
But I do like the idea of one file to rule them all, approach.
Thanks!
-- 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,