aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README183
1 files changed, 183 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..f52f48d
--- /dev/null
+++ b/README
@@ -0,0 +1,183 @@
+Block IO Tracing
+----------------
+
+Written by Jens Axboe <axboe@kernel.dk> (initial version and kernel support),
+Alan D. Brunelle (threading and splitup into two seperate programs),
+Nathan Scott <nathans@sgi.com> (bug fixes, process names, multiple devices)
+Also thanks to Tom Zanussi <zanussi@us.ibm.com> for good input and
+patches.
+
+
+Requirements
+------------
+
+blktrace was integrated into the mainline kernel between 2.6.16 and 2.6.17-rc1.
+The target trace needs to run on a kernel at least that new.
+
+git://git.kernel.dk/blktrace.git
+
+If you don't have git, you can get hourly snapshots from:
+
+http://brick.kernel.dk/snaps/
+
+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://git.kernel.dk/blktrace.git
+
+For browsing the repo over http and viewing history etc, you can direct
+your browser to:
+
+http://git.kernel.dk/
+
+
+Usage
+-----
+
+$ blktrace -d <dev> [ -r debug_path ] [ -o output ] [ -k ] [ -w time ]
+ [ -a action ] [ -A action mask ]
+
+ -d Use specified device. May also be given last after options.
+ -r Path to mounted debugfs, defaults to /sys/kernel/debug.
+ -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).
+ Available actions are:
+
+ READ
+ WRITE
+ BARRIER
+ SYNC
+ QUEUE
+ REQUEUE
+ ISSUE
+ COMPLETE
+ FS
+ PC
+
+ -A Give the trace mask directly as a number.
+
+ -b Sub buffer size in KiB.
+ -n Number of sub buffers.
+ -l Run in network listen mode (blktrace server)
+ -h Run in network client mode, connecting to the given host
+ -p Network port to use (default 8462)
+ -s Disable network client use of sendfile() to transfer data
+ -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 ]
+ [ -d <binary> ]
+
+ -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.
+ -w Only parse data between the given time interval in seconds. If
+ 'start' isn't given, blkparse defaults the start time to 0.
+ -d Dump sorted data in binary format
+ -f Output format. Customize the output format. The format field
+ identifiers are:
+
+ %a - Action
+ %c - CPU ID
+ %C - Task command (process) name
+ %d - Direction (r/w)
+ %D - Device number
+ %e - Error number
+ %M - Major
+ %m - Minor
+ %N - Number of bytes
+ %n - Number of sectors
+ %p - PID
+ %P - PDU
+ %s - Sequence number
+ %S - Sector number
+ %t - Time (wallclock - nanoseconds)
+ %T - Time (wallclock - seconds)
+ %u - Time (processing - microseconds)
+ %U - Unplug depth
+
+ -F Format specification. The individual specifiers are:
+
+ A - Remap
+ B - Bounce
+ C - Complete
+ D - Issue
+ M - Back merge
+ F - Front merge
+ G - Get request
+ I - Insert
+ P - Plug
+ Q - Queue
+ R - Requeue
+ 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:
+
+% blktrace -d <device> -o - | blkparse -i -
+
+This has a small risk of displaying some traces a little out of sync, since
+it will do batch sorts of input events. Similarly, you can do traces over
+the network. The network 'server' must run:
+
+% blktrace -l
+
+to listen to incoming blktrace connections, while the client should use
+
+% blktrace -d /dev/sda -h <server hostname>
+
+to connect and transfer data over the network.
+
+
+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.
+
+
+
+2006-09-05, Jens Axboe <axboe@kernel.dk>
+