Messages in this thread |  | | Date | Tue, 19 Jul 2011 11:57:27 +0200 | | From | Jiri Olsa <> | | Subject | Re: [RFC 3/4] perf, ftrace: Add new perf ioctl for function trace filter |
| |
On Mon, Jul 18, 2011 at 05:12:33PM +0200, Frederic Weisbecker wrote: > On Mon, Jul 11, 2011 at 03:22:55PM +0200, Jiri Olsa wrote: > > As the amount of kernel functions obtained by the ftrace:function tracepoint > > is quite big, it's desirable to be able to set the filter on the ftrace > > level. > > > > Added PERF_EVENT_IOC_SET_FTRACE ioctl to be able to specify function filter > > for perf event. The interface is the same as for the set_ftrace_filter file. > > > > Also the same string parser is used as for the set_ftrace_filter file. > > I'm not sure I understand why an ioctl is needed for that. > Why not using the ftrace filter? > > The first idea was to do something like this: > > ip == func1 || ip == func2 || ....
The part where I got stuck is when you start to combine the fields in the filter like:
ip == func1 || ip_parent != func2 ip == func1 || (ip == func2 && ip_parent != func3)
Which is ok when all functions are enabled and ip/parent_ip fields are treated as values. But I'd need enable proper set of functions based on above filter parsing.. which might not be that easy :)
So I thought it'd be easier to have the filter as above, plus you could specify the amount of traced functions with ioctl command.
> > But that makes a too long expression. So I thought we > could bring support for the "+" operator and have expressions > like: > > ip == func1 + func2 + func3 + .... > > ip == !func1
So would you like to have just simple filter for function event? (embedded into the current event filter..) like:
ip == func1 + func2 + func3 +
Support just one 'ip' field and whatever we got in the parameter we put into the ftrace filter.. ?
thanks, jirka
|  |