Re: [PATCH] blktrace: Provide event for request merging

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

On Wed 17-06-20 17:41:36, Chaitanya Kulkarni wrote:
> On 6/17/20 7:03 AM, Jan Kara wrote:
> > 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@xxxxxxx>
> 
> The attempt_merge function is also responsible for the discard merging 
> which doesn't have any direction specified in ELEVATOR_XXX identifiers.
> In this patch we care unconditionally generating back merge event
> irrespective of the req_op.
> 
> Do we need to either generate event iff ELEVATOR_BACK_MERGE true case or
> add another trace point for discard ? given that it may lead to
> confusion since elevator flags for the discard doesn't specify the 
> direction.

attempt_merge() is always called so that 'req' is always the request with
the lower sector, 'next' is the request with a higher sector, and 'next' is
discarded and 'req' is updated. So attempt_merge() always performs only one
direction of a merge and I don't think it makes any sence to distinguish
back merges and forward merges in this case. So discards don't need any
special treatment either AFAICT.

								Honza

-- 
Jan Kara <jack@xxxxxxxx>
SUSE Labs, CR



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux