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

From: Steven Rostedt
Date: Tue Mar 13 2018 - 10:12:51 EST


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.

-- Steve