Re: [PATCH 3/3] tracing: Rewrite filter logic to be simpler and faster

From: Jiri Olsa
Date: Tue Mar 13 2018 - 10:27:56 EST


On Tue, Mar 13, 2018 at 10:12:44AM -0400, Steven Rostedt wrote:
> On Tue, 13 Mar 2018 11:14:01 +0100
> Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
>
> > > Jiri, If you apply the below, does it fix it for you?
> >
> > yes, the crash is gone and I can set filter ftrace/function,
>
> Great!
>
> > but I'm still having some issues put that filter through perf
> >
> > # perf record -e ftrace:function --filter "ip == 0xffffffffa41e8490" ls
> >
> > but I might be just missing something.. it's been a while ;-) I'm looking to that
>
> I have to ask. Did that work with the old code? The ftrace filter was
> special in the old code and I tried to simulate it in the new code.
> I'm not sure I checked if ip can take an address, but from what the code
> looked like, it wouldn't. It looked like it required a name of a
> function. Something that gets passed into "set_ftrace_filter" which is
> not an address.
>
> So instead of doing something like:
>
> perf record -e ftrace:function --filter "ip == 0xffffffff810ccfa0" ls
>
> You would need to do
>
> perf record -e ftrace:function --filter "ip == schedule_tail" ls
>
> because perf doesn't use the filter for the function, it uses the
> ftrace_ops->hash tables. If it would simply take the address, we could
> just use the trace_events_filter logic, and not make it a special case.

ok, that's what I've been missing.. for some reason I thought
we need to pass the address.. everything checks out then

I checked few filters and it seems to work properly to me

thanks,
jirka