linux/tools/perf
Tom Zanussi 3875294f5c perf trace/scripting: Add 'record' and 'report' options
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: Tom 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: Ingo Molnar <mingo@elte.hu>
2009-12-15 10:31:33 +01:00
..
bench perf sched: Fix build failure on sparc 2009-12-14 08:59:12 +01:00
Documentation perf diff: Introduce tool to show performance difference 2009-12-15 08:50:29 +01:00
scripts/perl perf trace/scripting: List available scripts 2009-12-15 10:31:32 +01:00
util perf trace/scripting: Check return val of perl_run() 2009-12-15 10:31:32 +01:00
.gitignore perf tools: Add perf.data to .gitignore 2009-11-24 16:37:01 +01:00
builtin-annotate.c perf util: Remove setup_sorting dups 2009-12-15 08:50:28 +01:00
builtin-bench.c perf bench: Add "all" pseudo subsystem and "all" pseudo suite 2009-12-14 08:51:19 +01:00
builtin-buildid-list.c perf session: Move kmaps to perf_session 2009-12-14 16:57:17 +01:00
builtin-diff.c perf diff: Introduce tool to show performance difference 2009-12-15 08:50:29 +01:00
builtin-help.c perf tools: Introduce zalloc() for the common calloc(1, N) case 2009-11-24 16:37:02 +01:00
builtin-kmem.c perf session: Adopt the sample_type variable 2009-12-14 17:34:56 +01:00
builtin-list.c perf list: Fix large list output by using the pager 2009-08-13 09:05:48 +02:00
builtin-probe.c perf probe: Support --del option 2009-12-09 07:26:53 +01:00
builtin-record.c perf record: Rename perf.data to perf.data.old if --force/-f is used 2009-12-15 08:50:29 +01:00
builtin-report.c perf tools: Make symbol_conf static 2009-12-15 08:52:31 +01:00
builtin-sched.c perf session: Adopt the sample_type variable 2009-12-14 17:34:56 +01:00
builtin-stat.c perf stat: Do not print ratio when task-clock event is not counted 2009-11-15 15:25:50 +01:00
builtin-timechart.c perf session: Adopt the sample_type variable 2009-12-14 17:34:56 +01:00
builtin-top.c perf tools: Make symbol_conf static 2009-12-15 08:52:31 +01:00
builtin-trace.c perf trace/scripting: Add 'record' and 'report' options 2009-12-15 10:31:33 +01:00
builtin.h perf diff: Introduce tool to show performance difference 2009-12-15 08:50:29 +01:00
command-list.txt perf diff: Introduce tool to show performance difference 2009-12-15 08:50:29 +01:00
CREDITS perf_counter tools: Add CREDITS file for Git contributors 2009-06-24 19:54:29 +02:00
design.txt perf_event: Add alignment-faults and emulation-faults software events 2009-10-28 16:13:03 +11:00
Makefile perf trace/scripting: Don't install unneeded files 2009-12-15 10:31:31 +01:00
perf.c perf diff: Introduce tool to show performance difference 2009-12-15 08:50:29 +01:00
perf.h perf tools: Allow building for ARM 2009-12-11 13:50:21 +01:00