diff options
author | Edward Hsieh <[email protected]> | 2021-06-24 20:30:30 +0800 |
---|---|---|
committer | Jens Axboe <[email protected]> | 2021-06-24 09:53:50 -0600 |
commit | 60b6a7e6a0f4382cd689f9afdac816964fec2921 (patch) | |
tree | 7b5fd7251cbc4c3430b61ff3b641b651bc1f6da4 /scripts/gdb/linux/genpd.py | |
parent | ddcc5c544eb0991501761622b651cf43ce660a22 (diff) |
block: fix trace completion for chained bio
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 <[email protected]>
Reviewed-by: BingJing Chang <[email protected]>
Signed-off-by: Edward Hsieh <[email protected]>
Reviewed-by: Christoph Hellwig <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Jens Axboe <[email protected]>
Diffstat (limited to 'scripts/gdb/linux/genpd.py')
0 files changed, 0 insertions, 0 deletions