diff options
author | Alan D. Brunelle <alan.brunelle@hp.com> | 2009-04-30 13:10:31 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-05-11 08:43:08 +0200 |
commit | 580f7440b93c08266867716dc4b891845f7ad891 (patch) | |
tree | 097d72d159d9d338a23d6c8d01bf36da3039e1bc /blkparse_fmt.c | |
parent | af90543f47f93782df94a3a56d4f607f4dd6ad4c (diff) | |
download | blktrace-580f7440b93c08266867716dc4b891845f7ad891.tar.gz blktrace-580f7440b93c08266867716dc4b891845f7ad891.tar.bz2 |
Converted to using the correct remap entries
This follows the kernel changes to the blk_io_trace_remap structure to
better align the names of the structure elements with the real intent of
"from" and "to" (devices & sectors).
See the kernel patches @
http://lkml.org/lkml/2009/4/30/340
http://lkml.org/lkml/2009/4/30/341
(Note: since the ABI order didn't change, old user code will work with
the new kernel code & vice versa.)
Signed-off-by: Alan D. Brunelle <alan.brunelle@hp.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'blkparse_fmt.c')
-rw-r--r-- | blkparse_fmt.c | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/blkparse_fmt.c b/blkparse_fmt.c index 83a8504..ed6cd5c 100644 --- a/blkparse_fmt.c +++ b/blkparse_fmt.c @@ -152,11 +152,11 @@ static unsigned int get_pdu_int(struct blk_io_trace *t) static void get_pdu_remap(struct blk_io_trace *t, struct blk_io_trace_remap *r) { struct blk_io_trace_remap *__r = pdu_start(t); - __u64 sector = __r->sector; + __u64 sector_from = __r->sector_from; - r->device = be32_to_cpu(__r->device); r->device_from = be32_to_cpu(__r->device_from); - r->sector = be64_to_cpu(sector); + r->device_to = be32_to_cpu(__r->device_to); + r->sector_from = be64_to_cpu(sector_from); } static void print_field(char *act, struct per_cpu_info *pci, @@ -284,20 +284,24 @@ static void process_default(char *act, struct per_cpu_info *pci, struct blk_io_trace *t, unsigned long long elapsed, int pdu_len, unsigned char *pdu_buf) { - struct blk_io_trace_remap r = { .device = 0, }; + struct blk_io_trace_remap r = { .device_from = 0, }; char rwbs[6]; char *name; fill_rwbs(rwbs, t); + /* + * For remaps we have to modify the device using the remap structure + * passed up. + */ + if (act[0] == 'A') { + get_pdu_remap(t, &r); + t->device = r.device_to; + } + /* * The header is always the same */ - if (act[0] == 'A') { /* Remap */ - get_pdu_remap(t, &r); - t->device = r.device_from; - } - fprintf(ofp, "%3d,%-3d %2d %8d %5d.%09lu %5u %2s %3s ", MAJOR(t->device), MINOR(t->device), pci->cpu, t->sequence, (int) SECONDS(t->time), (unsigned long) NANO_SECONDS(t->time), @@ -388,10 +392,11 @@ static void process_default(char *act, struct per_cpu_info *pci, break; case 'A': /* remap */ + get_pdu_remap(t, &r); fprintf(ofp, "%llu + %u <- (%d,%d) %llu\n", (unsigned long long) t->sector, t_sec(t), - MAJOR(r.device), MINOR(r.device), - (unsigned long long) r.sector); + MAJOR(r.device_from), MINOR(r.device_from), + (unsigned long long) r.sector_from); break; case 'X': /* Split */ |