Re: [PATCH v4] block: fix trace completion for chained bio
From: Christoph Hellwig <hch@infradead.org>
Date: 2021-06-24 12:41:08
Also in:
lkml
From: Christoph Hellwig <hch@infradead.org>
Date: 2021-06-24 12:41:08
Also in:
lkml
On Thu, Jun 24, 2021 at 08:30:30PM +0800, edwardh wrote:
From: Edward Hsieh <redacted>
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 <redacted>
Reviewed-by: BingJing Chang <redacted>
Signed-off-by: Edward Hsieh <redacted>Looks good, Reviewed-by: Christoph Hellwig <hch@lst.de>