• Steven Rostedt's avatar
    tracing: Add binary '&' filter for events · 1a891cf1
    Steven Rostedt authored
    There are some cases when filtering on a set flag of a field of a tracepoint
    is useful. But currently the only filtering commands for numbered fields
    is ==, !=, <, <=, >, >=. This does not help when you just want to trace if
    a specific flag is set. For example:
    
     > # 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
     >
    
    When trying to trace brcmf_dbg when level has its 1 << 18 bit set, the
    filter fails to perform.
    
    By allowing a binary '&' operation, this gives the user the ability to
    test a bit.
    
    Note, a binary '|' is not added, as it doesn't make sense as fields must
    be compared to constants (for now), and ORing a constant will always return
    true.
    
    Link: http://lkml.kernel.org/r/1371057385.9844.261.camel@gandalf.local.homeSuggested-by: default avatarArend van Spriel <arend@broadcom.com>
    Tested-by: default avatarArend van Spriel <arend@broadcom.com>
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    1a891cf1
events.txt 8.99 KB