diff options
author | Roman Pen <r.peniaev@gmail.com> | 2014-03-04 23:13:10 +0900 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-05-30 21:52:11 -0700 |
commit | e9d933941569c107e0083c3c115467c699a57db2 (patch) | |
tree | 38e63e8407808fcdae7e54c019fe1169a363766d /block | |
parent | 8d6b283d97db2d4d8fb6d1b8cfc630906f883f2f (diff) | |
download | linux-3.10-e9d933941569c107e0083c3c115467c699a57db2.tar.gz linux-3.10-e9d933941569c107e0083c3c115467c699a57db2.tar.bz2 linux-3.10-e9d933941569c107e0083c3c115467c699a57db2.zip |
blktrace: fix accounting of partially completed requests
commit af5040da01ef980670b3741b3e10733ee3e33566 upstream.
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
Signed-off-by: Jens Axboe <axboe@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index 2c66daba44d..5a750b18172 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -2299,7 +2299,7 @@ bool blk_update_request(struct request *req, int error, unsigned int nr_bytes) if (!req->bio) return false; - trace_block_rq_complete(req->q, req); + trace_block_rq_complete(req->q, req, nr_bytes); /* * For fs requests, rq is just carrier of independent bio's |