path: root/blktrace.h
AgeCommit message (Collapse)Author
2012-02-27Too small arrays for file namesVasily Tarasov
In our experiments blktrace/blkparse file names encode a lot of infomation about the particular experiment. We noticed that for long enough file names blkparse does not work. The reason is that per_cpu_info->fname[] is of 128 bytes. As a result, in setup_file() function only part of the file name gets to ->fname[]. Then stat() fails and we exit the function. Notice, that no error is printed in this case. In the following patch ->fname[] size is increased to POSIX defined PATH_MAX. Signed-off-by: Vasily Tarasov < Signed-off-by: Jens Axboe <>
2011-05-26blktrace: Use be32_to_cpu for blk_io_trace->cpu.Tao Ma
blk_io_trace->cpu is u32, so use be32_to_cpu instead. Cc: Jens Axboe <> Signed-off-by: Tao Ma <> Signed-off-by: Jens Axboe <>
2008-04-02blkparse: Introduce optional accounting of PC requestsChristof Schmitt
The current blkparse lists only PC requests, but does not account for number of PC requests and the size of the attached data. This patch introduces optional accounting for PC requests. If any PC event was encountered, the summary output will also include data from PC requests. For PC completion events the amount of transferred data is not available, since the kernel uses the data_len field as residual bytes count on event completion. Signed-off-by: Christof Schmitt <> Signed-off-by: Jens Axboe <>
2007-05-21Account size of mergesJens Axboe
Just like we do for queues/dispatches/completions etc. Signed-off-by: Jens Axboe <>
2006-12-01[PATCH] Add timestamp supportOlaf Kirch
Signed-off-by: Jens Axboe <>
2006-03-28[PATCH] blktrace: fix sendfile problem with > buf_size xmitsTom Zanussi
Basically, it add buf_size, buf_nr and page_size to the net header and this info is put into each tip, for easy access in mmap_subbuf(). The global buf_size, etc is still used by clients, since the global value is all they need (for clients, the tip is filled in with the global values anyway, so that mmap_subbuf() can use them, maybe the tip->buf_size should be used everywhere instead for consistency and only use the global values for initial args. Also, each tip doesn't really need to have these values, they could be stored in tip->device but I thought it would be easier and quicker to access tip->buf_size rather than tip->device->buf_size). Actually, this data only needs to be sent once per trace, but since there's no header covering the entire trace, sends it each time. Could be an optimization to make later... I've tested it using sendfile over the network with different buffer sizes, and with normal non-sendfile network and non-network tracing straight to disk, and haven't seen any problems. Each test generated a little over 1Gb of trace data in a little under 2 minutes, just under 23 million events after parsing, so it looks to me like it's doing the job at this point...
2006-02-14[PATCH] check_data_endianess left in half-done stateJens Axboe
2006-02-09[PATCH] Shrink the trace by 1/3 by removing ->comm[16]Jens Axboe
We now send notify messages out when we see a new process, so we don't need to repeatedly send the same 16 bytes of name info everytime.
2006-02-06[PATCH] Remove native/non-native printJens Axboe
2006-02-06[PATCH] Allow trace data to stay CPU endiannessJens Axboe
Basically just check whether we need to convert the trace or not in blkparse, then we can get rid of the endianness conversion in the hot path (blktrace:write_tip_events()).
2006-02-02[PATCH] blkparse: make skip detection per-CPU as wellJens Axboe
2006-02-02[PATCH] Make the sequence per-CPU so the kernel side can be locklessJens Axboe
2006-01-31[PATCH] blkparse: cut down on excessive number of fcntl() callsJens Axboe
Cache the blocking state locally and only issue it if changed.
2006-01-13[PATCH] blkparse: dump requeue info as wellJens Axboe
2005-10-06[PATCH] blkparse: fix remap sectors dump, it was in kbJens Axboe
Add t_kb(t) and t_sec(t) macros to help with this.
2005-10-05[PATCH] Typo: __BIT_ENDIAN -> __BIG_ENDIANJens Axboe
2005-10-05[PATCH] Better endianness checkJens Axboe
2005-10-05[PATCH] blkparse: Add -a/-A options to blkparse as wellAlan D. Brunelle
This moves the mask stuff into a seperate file, act_mask.c
2005-09-29[PATCH] Assorted compiler warningsJens Axboe
2005-09-26[PATCH] blkparse: Add option to hash process by nameJens Axboe
For some traces, you really don't want to see thousands of cc1 processes in the stats, you want to collect the stats by name instead. This adds the -n option to blkparse, enabling that. Switched to Jenkins hash at the same time, as it allows for easy hash-by-u32 or hash-by-name as we see fit.
2005-09-25[PATCH] blkparse: split format parsing into seperate fileJens Axboe
2005-09-12[PATCH] Add support for tracing multiple devicesNathan Scott
This bumps the protocol number to 0x05, as device info was added to the trace structure.
2005-09-06[PATCH] Missed the ->device in endianness conversionsJens Axboe
2005-09-06[PATCH] Bump ->cpu to 32-bits for alignment and add process nameNathan Scott
2005-09-06[PATCH] Missing ->cpu endianness conversionNathan Scott
2005-09-05[PATCH] Support for live tracingJens Axboe
This patch adds support for doing live traces again, by allowing pipe of data from blktrace to blkparse. A structural change was needed in blk_io_trace to pass the CPU number info directly instead of inferring it from the filename. To parse realtime: $ blktrace -d /dev/xxx -o - | blkparse -i -
2005-08-29[PATCH] Always store trace data in big endian formatJens Axboe
2005-08-26Initial commitJens Axboe