blktrace: Provide event for request merging
authorJan Kara <jack@suse.cz>
Wed, 17 Jun 2020 13:58:23 +0000 (15:58 +0200)
committerJens Axboe <axboe@kernel.dk>
Fri, 26 Jun 2020 03:06:11 +0000 (21:06 -0600)
commitf3bdc62fd82ed93dbe4d049eacba310de7eb2a6a
treeeefbacc996ba10e58a127a7a2df8924e4bbb0179
parent621c1f42945e76015c3a585e7a9fe6e71665eba0
blktrace: Provide event for request merging

Currently blk-mq does not report any event when two requests get merged
in the elevator. This then results in difficult to understand sequence
of events like:

...
  8,0   34     1579     0.608765271  2718  I  WS 215023504 + 40 [dbench]
  8,0   34     1584     0.609184613  2719  A  WS 215023544 + 56 <- (8,4) 2160568
  8,0   34     1585     0.609184850  2719  Q  WS 215023544 + 56 [dbench]
  8,0   34     1586     0.609188524  2719  G  WS 215023544 + 56 [dbench]
  8,0    3      602     0.609684162   773  D  WS 215023504 + 96 [kworker/3:1H]
  8,0   34     1591     0.609843593     0  C  WS 215023504 + 96 [0]

and you can only guess (after quite some headscratching since the above
excerpt is intermixed with a lot of other IO) that request 215023544+56
got merged to request 215023504+40. Provide proper event for request
merging like we used to do in the legacy block layer.

Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-merge.c
include/trace/events/block.h
kernel/trace/blktrace.c