* event filtering with trace-cmd
@ 2013-06-12 10:13 Arend van Spriel
2013-06-12 16:22 ` Steven Rostedt
0 siblings, 1 reply; 5+ messages in thread
From: Arend van Spriel @ 2013-06-12 10:13 UTC (permalink / raw)
To: Steven Rostedt; +Cc: linux-kernel
Hi Steven
I wanted to filter my debug events getting only one specific level. So I
followed the instruction found online, but I get a parse error.
Running on 3.10-rc1 using trace-cmd 1.0.3. Should I upgrade?
Regards,
Arend
----8<-----------------------------------------------------------------
events/brcmfmac/brcmf_dbg# cat format
name: brcmf_dbg
ID: 1133
format:
field:unsigned short common_type; offset:0; size:2;
signed:0;
field:unsigned char common_flags; offset:2; size:1;
signed:0;
field:unsigned char common_preempt_count; offset:3;
size:1; signed:0;
field:int common_pid; offset:4; size:4; signed:1;
field:u32 level; offset:8; size:4; signed:0;
field:__data_loc char[] func; offset:12; size:4; signed:1;
field:__data_loc char[] msg; offset:16; size:4; signed:1;
print fmt: "%s: %s", __get_str(func), __get_str(msg)
# sudo trace-cmd record -e brcmfmac:brcmf_dbg -f 'level & 0x40000'
disable all
enable brcmfmac:brcmf_dbg
path = /sys/kernel/debug/tracing/events/brcmfmac/brcmf_dbg/enable
(level & 0x40000)
^
parse_error: Invalid operator
trace-cmd: Invalid argument
Failed filter of
/sys/kernel/debug/tracing/events/brcmfmac/brcmf_dbg/filter
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: event filtering with trace-cmd
2013-06-12 10:13 event filtering with trace-cmd Arend van Spriel
@ 2013-06-12 16:22 ` Steven Rostedt
2013-06-12 17:16 ` Steven Rostedt
0 siblings, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2013-06-12 16:22 UTC (permalink / raw)
To: Arend van Spriel; +Cc: linux-kernel
On Wed, 2013-06-12 at 12:13 +0200, Arend van Spriel wrote:
> Hi Steven
>
> I wanted to filter my debug events getting only one specific level. So I
> followed the instruction found online, but I get a parse error.
>
> Running on 3.10-rc1 using trace-cmd 1.0.3. Should I upgrade?
I would recommend upgrading regardless, but that's not an issue here.
>
> Regards,
> Arend
> ----8<-----------------------------------------------------------------
> events/brcmfmac/brcmf_dbg# cat format
> name: brcmf_dbg
> ID: 1133
> format:
>
> field:unsigned short common_type; offset:0; size:2;
> signed:0;
> field:unsigned char common_flags; offset:2; size:1;
> signed:0;
> field:unsigned char common_preempt_count; offset:3;
> size:1; signed:0;
> field:int common_pid; offset:4; size:4; signed:1;
>
> field:u32 level; offset:8; size:4; signed:0;
> field:__data_loc char[] func; offset:12; size:4; signed:1;
> field:__data_loc char[] msg; offset:16; size:4; signed:1;
>
>
> print fmt: "%s: %s", __get_str(func), __get_str(msg)
>
> # sudo trace-cmd record -e brcmfmac:brcmf_dbg -f 'level & 0x40000'
> disable all
> enable brcmfmac:brcmf_dbg
> path = /sys/kernel/debug/tracing/events/brcmfmac/brcmf_dbg/enable
> (level & 0x40000)
> ^
> parse_error: Invalid operator
>
The record -f command passes the filter into the kernel
file /sys/kerne/debug/tracing/events/brcmfmac/brcmf_dbg/filter, and the
error is actually coming from the kernel itself. Looking at the code, we
do not currently accept binary operations. Although, it shouldn't be too
hard to add. I may go and implement it for 3.11.
Thanks!
-- Steve
> trace-cmd: Invalid argument
> Failed filter of
> /sys/kernel/debug/tracing/events/brcmfmac/brcmf_dbg/filter
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: event filtering with trace-cmd
2013-06-12 16:22 ` Steven Rostedt
@ 2013-06-12 17:16 ` Steven Rostedt
2013-06-12 19:46 ` Arend van Spriel
2013-06-14 8:22 ` Arend van Spriel
0 siblings, 2 replies; 5+ messages in thread
From: Steven Rostedt @ 2013-06-12 17:16 UTC (permalink / raw)
To: Arend van Spriel; +Cc: linux-kernel, Tom Zanussi, Masami Hiramatsu
On Wed, 2013-06-12 at 12:22 -0400, Steven Rostedt wrote:
> > # sudo trace-cmd record -e brcmfmac:brcmf_dbg -f 'level & 0x40000'
> > disable all
> > enable brcmfmac:brcmf_dbg
> > path = /sys/kernel/debug/tracing/events/brcmfmac/brcmf_dbg/enable
> > (level & 0x40000)
> > ^
> > parse_error: Invalid operator
> >
>
> The record -f command passes the filter into the kernel
> file /sys/kerne/debug/tracing/events/brcmfmac/brcmf_dbg/filter, and the
> error is actually coming from the kernel itself. Looking at the code, we
> do not currently accept binary operations. Although, it shouldn't be too
> hard to add. I may go and implement it for 3.11.
>
Here, can you apply this patch and see if it does what you expect?
Thanks,
-- Steve
diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
index e1b653f..111eddf 100644
--- a/kernel/trace/trace_events_filter.c
+++ b/kernel/trace/trace_events_filter.c
@@ -35,6 +35,7 @@
enum filter_op_ids
{
+ OP_BAND,
OP_OR,
OP_AND,
OP_GLOB,
@@ -64,6 +65,7 @@ static struct filter_op filter_ops[] = {
{ OP_LE, "<=", 5 },
{ OP_GT, ">", 5 },
{ OP_GE, ">=", 5 },
+ { OP_BAND, "&", 6 },
{ OP_NONE, "OP_NONE", 0 },
{ OP_OPEN_PAREN, "(", 0 },
};
@@ -156,6 +158,9 @@ static int filter_pred_##type(struct filter_pred *pred, void *event) \
case OP_GE: \
match = (*addr >= val); \
break; \
+ case OP_BAND: \
+ match = (*addr & val); \
+ break; \
default: \
break; \
} \
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: event filtering with trace-cmd
2013-06-12 17:16 ` Steven Rostedt
@ 2013-06-12 19:46 ` Arend van Spriel
2013-06-14 8:22 ` Arend van Spriel
1 sibling, 0 replies; 5+ messages in thread
From: Arend van Spriel @ 2013-06-12 19:46 UTC (permalink / raw)
To: Steven Rostedt; +Cc: linux-kernel, Tom Zanussi, Masami Hiramatsu
On 06/12/2013 07:16 PM, Steven Rostedt wrote:
> On Wed, 2013-06-12 at 12:22 -0400, Steven Rostedt wrote:
>
>>> # sudo trace-cmd record -e brcmfmac:brcmf_dbg -f 'level & 0x40000'
>>> disable all
>>> enable brcmfmac:brcmf_dbg
>>> path = /sys/kernel/debug/tracing/events/brcmfmac/brcmf_dbg/enable
>>> (level & 0x40000)
>>> ^
>>> parse_error: Invalid operator
>>>
>>
>> The record -f command passes the filter into the kernel
>> file /sys/kerne/debug/tracing/events/brcmfmac/brcmf_dbg/filter, and the
>> error is actually coming from the kernel itself. Looking at the code, we
>> do not currently accept binary operations. Although, it shouldn't be too
>> hard to add. I may go and implement it for 3.11.
>>
>
> Here, can you apply this patch and see if it does what you expect?
Not right now, but you can bet I will first thing tomorrow :-)
Thanks,
Arend
> Thanks,
>
> -- Steve
>
> diff --git a/kernel/trace/trace_events_filter.c b/kernel/trace/trace_events_filter.c
> index e1b653f..111eddf 100644
> --- a/kernel/trace/trace_events_filter.c
> +++ b/kernel/trace/trace_events_filter.c
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: event filtering with trace-cmd
2013-06-12 17:16 ` Steven Rostedt
2013-06-12 19:46 ` Arend van Spriel
@ 2013-06-14 8:22 ` Arend van Spriel
1 sibling, 0 replies; 5+ messages in thread
From: Arend van Spriel @ 2013-06-14 8:22 UTC (permalink / raw)
To: Steven Rostedt; +Cc: linux-kernel, Tom Zanussi, Masami Hiramatsu
On 06/12/2013 07:16 PM, Steven Rostedt wrote:
> On Wed, 2013-06-12 at 12:22 -0400, Steven Rostedt wrote:
>
>>> # sudo trace-cmd record -e brcmfmac:brcmf_dbg -f 'level & 0x40000'
>>> disable all
>>> enable brcmfmac:brcmf_dbg
>>> path = /sys/kernel/debug/tracing/events/brcmfmac/brcmf_dbg/enable
>>> (level & 0x40000)
>>> ^
>>> parse_error: Invalid operator
>>>
>>
>> The record -f command passes the filter into the kernel
>> file /sys/kerne/debug/tracing/events/brcmfmac/brcmf_dbg/filter, and the
>> error is actually coming from the kernel itself. Looking at the code, we
>> do not currently accept binary operations. Although, it shouldn't be too
>> hard to add. I may go and implement it for 3.11.
>>
>
> Here, can you apply this patch and see if it does what you expect?
Hi Steven,
That patch does exactly what I expect. Thanks.
Regards,
Arend
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-06-14 8:22 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-12 10:13 event filtering with trace-cmd Arend van Spriel
2013-06-12 16:22 ` Steven Rostedt
2013-06-12 17:16 ` Steven Rostedt
2013-06-12 19:46 ` Arend van Spriel
2013-06-14 8:22 ` Arend van Spriel
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.