aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-core.c
diff options
context:
space:
mode:
authorRoman Pen <r.peniaev@gmail.com>2014-03-04 09:13:10 -0500
committerJens Axboe <axboe@fb.com>2014-03-05 18:11:21 -0500
commitaf5040da01ef980670b3741b3e10733ee3e33566 (patch)
tree213650b561bf15e6b1ae0706ebcca219febc6ab3 /block/blk-core.c
parentc46fff2a3b29794b35d717b5680a27f31a6a6bc0 (diff)
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>
Diffstat (limited to 'block/blk-core.c')
-rw-r--r--block/blk-core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/blk-core.c b/block/blk-core.c
index 853f92749202..99e20cca37e1 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -2354,7 +2354,7 @@ bool blk_update_request(struct request *req, int error, unsigned int nr_bytes)
2354 if (!req->bio) 2354 if (!req->bio)
2355 return false; 2355 return false;
2356 2356
2357 trace_block_rq_complete(req->q, req); 2357 trace_block_rq_complete(req->q, req, nr_bytes);
2358 2358
2359 /* 2359 /*
2360 * For fs requests, rq is just carrier of independent bio's 2360 * For fs requests, rq is just carrier of independent bio's