On Thu, Jun 24, 2021 at 08:30:30PM +0800, edwardh wrote: > From: Edward Hsieh <edwardh@xxxxxxxxxxxx> > > For chained bio, trace_block_bio_complete in bio_endio is currently called > only by the parent bio once upon all chained bio completed. > However, the sector and size for the parent bio are modified in bio_split. > Therefore, the size and sector of the complete events might not match the > queue events in blktrace. > > The original fix of bio completion trace <fbbaf700e7b1> ("block: trace > completion of all bios.") wants multiple complete events to correspond > to one queue event but missed this. > > The issue can be reproduced by md/raid5 read with bio cross chunks. > > To fix, move trace completion into the loop for every chained bio to call. > > Fixes: fbbaf700e7b1 ("block: trace completion of all bios.") > Reviewed-by: Wade Liang <wadel@xxxxxxxxxxxx> > Reviewed-by: BingJing Chang <bingjingc@xxxxxxxxxxxx> > Signed-off-by: Edward Hsieh <edwardh@xxxxxxxxxxxx> Looks good, Reviewed-by: Christoph Hellwig <hch@xxxxxx>