• Tom Zanussi's avatar
    perf trace/scripting: Add 'record' and 'report' options · 3875294f
    Tom Zanussi authored
    Allow scripts to be recorded/executed by simply specifying the
    script root name (the script name minus extension) along with
    'record' or 'report' to 'perf trace'.
    
    The script names shown by 'perf trace -l' can be directly used
    to run the command-line contained within the corresponding
    '-record' and '-report' versions of scripts in the scripts/*/bin
    directories.
    
    For example, to record the trace data needed to run the
    wakeup-latency.pl script, the user can easily find the name of
    the corresponding script from the script list and invoke it
    using 'perf trace record', without having to remember the
    details of how to do the same thing using the lower-level perf
    trace command-line options:
    
    root@tropicana:~# perf trace -l
    List of available trace scripts:
      workqueue-stats                      workqueue stats (ins/exe/create/destroy)
      wakeup-latency                       system-wide min/max/avg wakeup latency
      rw-by-file <comm>                    r/w activity for a program, by file
      check-perf-trace                     useless but exhaustive test script
      rw-by-pid                            system-wide r/w activity
    
    root@tropicana:~# perf trace record wakeup-latency
    ^C[ perf record: Woken up 1 times to write data ]
    [ perf record: Captured and wrote 0.296 MB perf.data (~12931
    samples) ]
    
    To run the wakeup-latency.pl script using the captured data,
    change 'record' to 'report' in the command-line:
    
    root@tropicana:~# perf trace report wakeup-latency
    
    wakeup_latency stats:
    
    total_wakeups: 65
    avg_wakeup_latency (ns): 22417
    min_wakeup_latency (ns): 3470
    max_wakeup_latency (ns): 223311
    
    perf trace Perl script stopped
    
    If the script takes options, thay can be simply added to the end
    of the 'report' invocation:
    
    root@tropicana:~# perf trace record rw-by-file
    ^C[ perf record: Woken up 2 times to write data ]
    [ perf record: Captured and wrote 0.782 MB perf.data (~34171
    samples) ]
    
    root@tropicana:~# perf trace report rw-by-file perf
    
    file read counts for perf:
    
        fd     # reads  bytes_requested
    ------  ----------  -----------
       122        1934     1980416
       120           1          32
    
    file write counts for perf:
    
        fd    # writes  bytes_written
    ------  ----------  -----------
         3        4006      280568
    
    perf trace Perl script stopped
    Signed-off-by: default avatarTom Zanussi <tzanussi@gmail.com>
    Cc: fweisbec@gmail.com
    Cc: rostedt@goodmis.org
    LKML-Reference: <1260867220-15699-6-git-send-email-tzanussi@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    3875294f
builtin-trace.c 13.3 KB