blktrace: fix accounting of partially completed requests
authorRoman Pen <r.peniaev@gmail.com>
Tue, 4 Mar 2014 14:13:10 +0000 (23:13 +0900)
committerJens Axboe <axboe@fb.com>
Wed, 5 Mar 2014 23:11:21 +0000 (16:11 -0700)
commitaf5040da01ef980670b3741b3e10733ee3e33566
tree213650b561bf15e6b1ae0706ebcca219febc6ab3
parentc46fff2a3b29794b35d717b5680a27f31a6a6bc0
blktrace: fix accounting of partially completed requests

trace_block_rq_complete does not take into account that request can
be partially completed, so we can get the following incorrect output
of blkparser:

  C   R 232 + 240 [0]
  C   R 240 + 232 [0]
  C   R 248 + 224 [0]
  C   R 256 + 216 [0]

but should be:

  C   R 232 + 8 [0]
  C   R 240 + 8 [0]
  C   R 248 + 8 [0]
  C   R 256 + 8 [0]

Also, the whole output summary statistics of completed requests and
final throughput will be incorrect.

This patch takes into account real completion size of the request and
fixes wrong completion accounting.

Signed-off-by: Roman Pen <r.peniaev@gmail.com>
CC: Steven Rostedt <rostedt@goodmis.org>
CC: Frederic Weisbecker <fweisbec@gmail.com>
CC: Ingo Molnar <mingo@redhat.com>
CC: linux-kernel@vger.kernel.org
Cc: stable@kernel.org
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-core.c
block/blk-mq.c
include/trace/events/block.h
kernel/trace/blktrace.c