4 Written by Jens Axboe <axboe@suse.de> (initial version and kernel support),
5 Alan D. Brunelle (threading and splitup into two seperate programs),
6 Nathan Scott <nathans@sgi.com> (bug fixes, process names, multiple devices)
12 You need to be running a 2.6.14-rc3 kernel or newer, with the blk-trace patch
13 included in this repository. If you forgot where you got it, the url is:
15 rsync://rsync.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git
17 If you don't have git, you can get hourly snapshots from:
19 http://www.kernel.org/pub/linux/kernel/people/axboe/blktrace/
21 The snapshots include the full git object database as well. kernel.org has
22 excessively long mirror times, so if you have git installed, you can pull
25 git://brick.kernel.dk/data/git/blktrace.git
27 For browsing the repo over http and viewing history etc, you can direct
30 http://brick.kernel.dk/git
36 $ blktrace -d <dev> [ -r relay_path ] [ -o output ] [ -k ] [ -w time ]
37 [ -a action ] [ -A action mask ]
39 -d Use specified device. May also be given last after options.
40 -r Path to mounted relayfs, defaults to /relay.
41 -o File(s) to send output to.
42 -D Directory to prepend to output file names.
43 -k Kill running trace.
44 -w Stop after defined time, in seconds.
45 -a Only trace specific actions (use more -a options to add actions).
46 Available actions are:
59 -A Give the trace mask directly as a number.
61 -b Sub buffer size in KiB.
62 -n Number of sub buffers.
63 -V Print program version info.
65 $ blkparse -i <input> [ -o <output> ] [ -b rb_batch ] [ -s ] [ -t ] [ -q ]
66 [ -w start:stop ] [ -f output format ] [ -F format spec ]
68 -i Input file containing trace data, or '-' for stdin.
69 -D Directory to prepend to input file names.
70 -o Output file. If not given, output is stdout.
71 -b stdin read batching.
72 -s Show per-program io statistics.
73 -h Hash processes by name, not pid.
74 -t Track individual ios. Will tell you the time a request took to
75 get queued, to get dispatched, and to get completed.
76 -q Quiet. Don't display any stats at the end of the trace.
77 -w Only parse data between the given time interval in seconds. If
78 'start' isn't given, blkparse defaults the start time to 0.
79 -f Output format. Customize the output format. The format field
84 %C - Task command name
91 %n - Number of sectors
96 %t - Time (wallclock - nanoseconds)
97 %T - Time (wallclock - seconds)
98 %u - Time (processing - microseconds)
101 -F Format specification. The individual specifiers are:
110 M - Both front and back merge
120 -v More verbose for marginal errors.
121 -V Print program version info.
123 $ verify_blkparse filename
125 Verifies an output file from blkparse. All it does is check if
126 the events in the file are correctly time ordered. If an entry
127 is found that isn't ordered, it's dumped to stdout.
130 If you want to do live tracing, you can pipe the data between blktrace
133 % blktrace -d <device> -o - | blkparse -i -
135 This has a small risk of displaying some traces a little out of sync, since
136 it will do batch sorts of input events. Similarly, you can do traces over
137 the network with eg netcat:
139 % blktrace -d /dev/sda -o - | netcat parsehost portno
140 % netcat -l -p portno tracehost | blkparse -i -
142 Which will send the traces from tracehost to parsehost over the network on
143 the defined port number.
149 A users guide is distributed with the source. It is in latex, a
150 'make docs' will build a PDF in doc/. You need tetex and latex installed
151 to build the document.
157 vger hosts a mailing list dedicated to btrace discussion and development.
158 The list is called linux-btrace@vger.kernel.org, subscribe by sending
159 a mail to majordomo@vger.kernel.org with 'subscribe linux-btrace' in
164 20051007, Jens Axboe <axboe@suse.de>