Re: [PATCHvFIXED 7/7] ftrace, perf: Add filter support for functiontrace event

From: Frederic Weisbecker
Date: Fri Dec 23 2011 - 21:35:32 EST


On Thu, Dec 22, 2011 at 04:26:09PM +0100, Jiri Olsa wrote:
> On Thu, Dec 22, 2011 at 01:55:58PM +0100, Jiri Olsa wrote:
> > On Wed, Dec 21, 2011 at 11:07:58PM +0100, Frederic Weisbecker wrote:
> > > On Wed, Dec 21, 2011 at 07:56:31PM +0100, Jiri Olsa wrote:
> > > > Adding support to filter function trace event via perf
> > > > interface. It is now possible to use filter interface
> > > > in the perf tool like:
> > > >
> > > > perf record -e ftrace:function --filter="(ip == mm_*)" ls
> > > >
> > > > The filter syntax is restricted to the the 'ip' field only,
> > > > and following operators are accepted '==' '!=' '||', ending
> > > > up with the filter strings like:
> > > >
> > > > "ip == f1 f2 ..." || "ip != f3 f4 ..." ...
> > >
> > > Having the functions seperated like this sort of violates the
> > > grammar of the filtering interface.
> > >
> > > The typical way to do this would have been to stringify the
> > > functions: ip == "f1 f2"
> > >
> > > I feel a bit uncomfortable with "ip == f1 f2" scheme but perhaps
> > > we can live with that. Especially as otherwise that would
> > > require us to type "ip == \"f1 f2\"" for the whole filtering expression.
> >
> > ugh, just realized there's a problem with this in the patch actually,
> > and it's not working as expected. I'll send out new version soon..
> >
> > thanks,
> > jirka
> >
> > >
> > > Thoughts?
>
> how about this one.. ;)
>
> for some reason I presumed ftrace_set_filter would deal with ' '
> as a filter separator.. but it needs to be done before we use
> this function... (ftrace_set_notrace respectively)
>
> so now you could use one of following:
>
> perf record -e ftrace:function --filter '(ip == do_execve,sys_*,ext*)' ls
> perf record -e ftrace:function --filter '(ip == "do_execve,sys_*,ext*")' ls
> perf record -e ftrace:function --filter '(ip == "do_execve sys_* ext*")' ls

Nice! ;)

Thanks!
--
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/