• Ingo Molnar's avatar
    events: Harmonize event field names and print output names · 434a83c3
    Ingo Molnar authored
    Now that we can filter based on fields via perf record, people
    will start using filter expressions and will expect them to
    be obvious.
    
    The primary way to see which fields are available is by looking
    at the trace output, such as:
    
      gcc-18676 [000]   343.011728: irq_handler_entry: irq=0 handler=timer
      cc1-18677 [000]   343.012727: irq_handler_entry: irq=0 handler=timer
      cc1-18677 [000]   343.032692: irq_handler_entry: irq=0 handler=timer
      cc1-18677 [000]   343.033690: irq_handler_entry: irq=0 handler=timer
      cc1-18677 [000]   343.034687: irq_handler_entry: irq=0 handler=timer
      cc1-18677 [000]   343.035686: irq_handler_entry: irq=0 handler=timer
      cc1-18677 [000]   343.036684: irq_handler_entry: irq=0 handler=timer
    
    While 'irq==0' filters work, the 'handler==<x>' filter expression
    does not work:
    
      $ perf record -R -f -a -e irq:irq_handler_entry --filter handler=timer sleep 1
       Error: failed to set filter with 22 (Invalid argument)
    
    The problem is that while an 'irq' field exists and is recognized
    as a filter field - 'handler' does not exist - its name is 'name'
    in the output.
    
    To solve this, we need to synchronize the printout and the field
    names, wherever possible.
    
    In cases where the printout prints a non-field, we enclose
    that information in square brackets, such as:
    
      perf-1380  [013]   724.903505: softirq_exit: vec=9 [action=RCU]
      perf-1380  [013]   724.904482: softirq_exit: vec=1 [action=TIMER]
    
    This way users can use filter expressions more intuitively: all
    fields that show up as 'primary' (non-bracketed) information is
    filterable.
    
    This patch harmonizes the field names for all irq, bkl, power,
    sched and timer events.
    
    We might in fact think about dropping the print format bit of
    generic tracepoints altogether, and just print the fields that
    are being recorded.
    
    Cc: Li Zefan <lizf@cn.fujitsu.com>
    Cc: Tom Zanussi <tzanussi@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    LKML-Reference: <new-submission>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    434a83c3
timer.h 7.38 KB