Requirements
------------
-You need to be running a 2.6.14-rc1 kernel or newer, with the blk-trace patch
+You need to be running a 2.6.14-rc3 kernel or newer, with the blk-trace patch
included in this repository. If you forgot where you got it, the url is:
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/axboe/blktrace.git
http://www.kernel.org/pub/linux/kernel/people/axboe/blktrace/
-The snapshots include the full git object database as well.
+The snapshots include the full git object database as well. kernel.org has
+excessively long mirror times, so if you have git installed, you can pull
+the master tree from:
+
+git://brick.kernel.dk/data/git/blktrace.git
+
+For browsing the repo over http and viewing history etc, you can direct
+your browser to:
+
+http://brick.kernel.dk/git
Usage
-d Use specified device. May also be given last after options.
-r Path to mounted relayfs, defaults to /relay.
-o File(s) to send output to.
+ -D Directory to prepend to output file names.
-k Kill running trace.
-w Stop after defined time, in seconds.
-a Only trace specific actions (use more -a options to add actions).
-A Give the trace mask directly as a number.
+ -b Sub buffer size in KiB.
+ -n Number of sub buffers.
+ -V Print program version info.
+
$ blkparse -i <input> [ -o <output> ] [ -b rb_batch ] [ -s ] [ -t ] [ -q ]
[ -w start:stop ] [ -f output format ] [ -F format spec ]
-i Input file containing trace data, or '-' for stdin.
+ -D Directory to prepend to input file names.
-o Output file. If not given, output is stdout.
-b stdin read batching.
-s Show per-program io statistics.
+ -h Hash processes by name, not pid.
-t Track individual ios. Will tell you the time a request took to
get queued, to get dispatched, and to get completed.
-q Quiet. Don't display any stats at the end of the trace.
%e - Error number
%M - Major
%m - Minor
- %n - Nblocks
+ %N - Number of bytes
+ %n - Number of sectors
%p - PID
%P - PDU
%s - Sequence number
-F Format specification. The individual specifiers are:
+ A - Remap
B - Back merge
C - Complete
D - Issue
S - Sleep requests
T - Unplug timer
U - Unplug IO
+ W - Bounce
+ X - Split
+
+ -v More verbose for marginal errors.
+ -V Print program version info.
+
+$ verify_blkparse filename
+
+ Verifies an output file from blkparse. All it does is check if
+ the events in the file are correctly time ordered. If an entry
+ is found that isn't ordered, it's dumped to stdout.
+
+$ blkrawverify <dev> [<dev>...]
+ The blkrawverify utility can be used to verify data retrieved
+ via blktrace. It will check for valid event formats, forward
+ progressing sequence numbers and time stamps, also does reasonable
+ checks for other potential issues within invidividual events.
+
+ Errors found will be tracked in <dev>.verify.out.
If you want to do live tracing, you can pipe the data between blktrace
and blkparse:
Which will send the traces from tracehost to parsehost over the network on
the defined port number.
+Documentation
+-------------
+
+A users guide is distributed with the source. It is in latex, a
+'make docs' will build a PDF in doc/. You need tetex and latex installed
+to build the document.
+
+
+Resources
+---------
+
+vger hosts a mailing list dedicated to btrace discussion and development.
+The list is called linux-btrace@vger.kernel.org, subscribe by sending
+a mail to majordomo@vger.kernel.org with 'subscribe linux-btrace' in
+the mail body.
+
+
-20050906, Jens Axboe <axboe@suse.de>
+20051007, Jens Axboe <axboe@suse.de>