Home | History | Annotate | only in /external/blktrace
Up to higher level directory
NameDateSize
act_mask.c05-Oct-20171.1K
Android.mk05-Oct-20171.6K
barrier.h05-Oct-20171.3K
blkiomon.c05-Oct-201716.8K
blkiomon.h05-Oct-20173.5K
blkparse.c05-Oct-201761.5K
blkparse_fmt.c05-Oct-20179.8K
blkrawverify.c05-Oct-20178K
blktrace.c05-Oct-201755.1K
blktrace.h05-Oct-20173.7K
blktrace_api.h05-Oct-20174.3K
btrace05-Oct-2017891
btrace.spec05-Oct-20171.2K
btreplay/05-Oct-2017
btt/05-Oct-2017
CleanSpec.mk05-Oct-20172.2K
COPYING05-Oct-201717.6K
doc/05-Oct-2017
jhash.h05-Oct-20174K
LICENSE05-Oct-201717.6K
Makefile05-Oct-20171.9K
MODULE_LICENSE_GPL05-Oct-20170
NOTICE05-Oct-201718.1K
rbtree.c05-Oct-20178.4K
rbtree.h05-Oct-20174.8K
README05-Oct-20174.9K
stats.h05-Oct-20173.6K
strverscmp.c05-Oct-20175.3K
verify_blkparse.c05-Oct-20171.2K

README

      1 Block IO Tracing
      2 ----------------
      3 
      4 Written by Jens Axboe <axboe (a] kernel.dk> (initial version and kernel support),
      5 Alan D. Brunelle (threading and splitup into two seperate programs),
      6 Nathan Scott <nathans (a] sgi.com> (bug fixes, process names, multiple devices)
      7 Also thanks to Tom Zanussi <zanussi (a] us.ibm.com> for good input and
      8 patches.
      9 
     10 
     11 Requirements
     12 ------------
     13 
     14 blktrace was integrated into the mainline kernel between 2.6.16 and 2.6.17-rc1.
     15 The target trace needs to run on a kernel at least that new.
     16 
     17 git://git.kernel.dk/blktrace.git
     18 
     19 If you don't have git, you can get hourly snapshots from:
     20 
     21 http://brick.kernel.dk/snaps/
     22 
     23 The snapshots include the full git object database as well. kernel.org has
     24 excessively long mirror times, so if you have git installed, you can pull
     25 the master tree from:
     26 
     27 git://git.kernel.dk/blktrace.git
     28 
     29 For browsing the repo over http and viewing history etc, you can direct
     30 your browser to:
     31 
     32 http://git.kernel.dk/
     33 
     34 
     35 Usage
     36 -----
     37 
     38 $ blktrace -d <dev> [ -r debug_path ] [ -o output ] [ -k ] [ -w time ]
     39 		    [ -a action ] [ -A action mask ]
     40 
     41 	-d Use specified device. May also be given last after options.
     42 	-r Path to mounted debugfs, defaults to /sys/kernel/debug.
     43 	-o File(s) to send output to.
     44 	-D Directory to prepend to output file names.
     45 	-k Kill running trace.
     46 	-w Stop after defined time, in seconds.
     47 	-a Only trace specific actions (use more -a options to add actions).
     48 	   Available actions are:
     49 
     50 		READ
     51 		WRITE
     52 		BARRIER
     53 		SYNC
     54 		QUEUE
     55 		REQUEUE
     56 		ISSUE
     57 		COMPLETE
     58 		FS
     59 		PC
     60 
     61 	-A Give the trace mask directly as a number.
     62 
     63 	-b Sub buffer size in KiB.
     64 	-n Number of sub buffers.
     65 	-l Run in network listen mode (blktrace server)
     66 	-h Run in network client mode, connecting to the given host
     67 	-p Network port to use (default 8462)
     68 	-s Disable network client use of sendfile() to transfer data
     69 	-V Print program version info.
     70 
     71 $ blkparse -i <input> [ -o <output> ] [ -b rb_batch ] [ -s ] [ -t ] [ -q ]
     72 		      [ -w start:stop ] [ -f output format ] [ -F format spec ]
     73 		      [ -d <binary> ]
     74 
     75 	-i Input file containing trace data, or '-' for stdin.
     76 	-D Directory to prepend to input file names.
     77 	-o Output file. If not given, output is stdout.
     78 	-b stdin read batching.
     79 	-s Show per-program io statistics.
     80 	-h Hash processes by name, not pid.
     81 	-t Track individual ios. Will tell you the time a request took to
     82 	   get queued, to get dispatched, and to get completed.
     83 	-q Quiet. Don't display any stats at the end of the trace.
     84 	-w Only parse data between the given time interval in seconds. If
     85 	   'start' isn't given, blkparse defaults the start time to 0.
     86 	-d Dump sorted data in binary format
     87 	-f Output format. Customize the output format. The format field
     88 	   identifiers are:
     89 
     90 		%a	- Action
     91 		%c	- CPU ID
     92 		%C	- Task command (process) name
     93 		%d	- Direction (r/w)
     94 		%D	- Device number
     95 		%e	- Error number
     96 		%M	- Major
     97 		%m	- Minor
     98 		%N	- Number of bytes
     99 		%n	- Number of sectors
    100 		%p	- PID
    101 		%P	- PDU
    102 		%s	- Sequence number
    103 		%S	- Sector number
    104 		%t	- Time (wallclock - nanoseconds)
    105 		%T	- Time (wallclock - seconds)
    106 		%u	- Time (processing - microseconds)
    107 		%U	- Unplug depth
    108 
    109 	-F Format specification. The individual specifiers are:
    110 
    111 		A	- Remap
    112 		B	- Bounce
    113 		C	- Complete
    114 		D	- Issue
    115 		M	- Back merge
    116 		F	- Front merge
    117 		G	- Get request
    118 		I	- Insert
    119 		P	- Plug
    120 		Q	- Queue
    121 		R	- Requeue
    122 		S	- Sleep requests
    123 		T	- Unplug timer
    124 		U	- Unplug IO
    125 		W	- Bounce
    126 		X	- Split
    127 
    128 	-v More verbose for marginal errors.
    129 	-V Print program version info.
    130 
    131 $ verify_blkparse filename
    132 
    133 	Verifies an output file from blkparse. All it does is check if
    134 	the events in the file are correctly time ordered. If an entry
    135 	is found that isn't ordered, it's dumped to stdout.
    136 
    137 $ blkrawverify <dev> [<dev>...]
    138 
    139 	The blkrawverify utility can be used to verify data retrieved
    140 	via blktrace. It will check for valid event formats, forward
    141 	progressing sequence numbers and time stamps, also does reasonable
    142 	checks for other potential issues within invidividual events.
    143 
    144 	Errors found will be tracked in <dev>.verify.out.
    145 
    146 If you want to do live tracing, you can pipe the data between blktrace
    147 and blkparse:
    148 
    149 % blktrace -d <device> -o - | blkparse -i -
    150 
    151 This has a small risk of displaying some traces a little out of sync, since
    152 it will do batch sorts of input events. Similarly, you can do traces over
    153 the network. The network 'server' must run:
    154 
    155 % blktrace -l
    156 
    157 to listen to incoming blktrace connections, while the client should use
    158 
    159 % blktrace -d /dev/sda -h <server hostname>
    160 
    161 to connect and transfer data over the network.
    162 
    163 
    164 Documentation
    165 -------------
    166 
    167 A users guide is distributed with the source. It is in latex, a
    168 'make docs' will build a PDF in doc/. You need tetex and latex installed
    169 to build the document.
    170 
    171 
    172 Resources
    173 ---------
    174 
    175 vger hosts a mailing list dedicated to btrace discussion and development.
    176 The list is called linux-btrace (a] vger.kernel.org, subscribe by sending
    177 a mail to majordomo (a] vger.kernel.org with 'subscribe linux-btrace' in
    178 the mail body.
    179 
    180 
    181 
    182 2006-09-05, Jens Axboe <axboe (a] kernel.dk>
    183 
    184