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

From: Jiri Olsa
Date: Wed Jul 27 2011 - 08:17:57 EST


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:

"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/