Re: [RFC 3/4] perf, ftrace: Add new perf ioctl for function tracefilter

From: Steven Rostedt
Date: Wed Aug 10 2011 - 16:25:47 EST


Again, sorry for the late reply.

On Wed, 2011-07-27 at 14:17 +0200, Jiri Olsa wrote:
> On Tue, Jul 26, 2011 at 03:43:44PM +0200, Frederic Weisbecker wrote:
>
> SNIP
>
> > Ideally, the filter engine should split expressions into a tree
> > of ops:
> >
> > ip == func1 + func2 + func3 || ip == func4
> >
> > should be parsed into:
> >
> > ||
> > /\
> > / \
> > / \
> > / \
> > == ==
> > / \ / \
> > / \ ip \
> > / \ func4
> > ip +
> > / \
> > / \
> > + \
> > / \ func3
> > / \
> > func1 func2
> >
> > And then pass that to ftrace that interprets that tree
> > by building set of functions on top of each node joined to
> > the other.
> >
> > But that can be complicated to do, and perhaps a bit of
> > an overkill even for daily use of it.
> >
> > Having a simple "ip == func + func2 + func3" expression support
>
> so the '+' is just shortcut for '||' ... like:

Please, lets use something other than '+', as it can also be construed
as addition, and will probably confuse things. Or we change the '==' to
'|=' or something, and then comma separate it?

ip |= func1, func2, func3

Where we can say the '|=' ',' pair is a short cut of multiple a == b
|| ..

-- Steve

>
> "ip == x1 || ip == x1" AND "ip == x1 + x2" mean the same thing
>
> if we omit the '+' and keep just the whitespace we could use the function
> name parser as used in set_ftrace_filter interface with no change ;)
> but adding new separator should not be that hard..
>
> > should be enough I think. And we can reject expressions that don't
> > fit that pattern. Then if it becomes necessary one day to support
> > real expressions there, we can still switch to a real tree.
> >
> > Does that look sane?
>
> I'l make the change and send new version
>
> thanks,
> jirka


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/