Re: [PATCH] md: raid0: account for split bio in iostat accounting
From: Laurence Oberman <hidden>
Date: 2023-08-09 17:23:38
On Wed, 2023-08-09 at 13:16 -0400, David Jeffery wrote:
quoted hunk ↗ jump to hunk
When a bio is split by md raid0, the newly created bio will not be tracked by md for I/O accounting. Only the portion of I/O still assigned to the original bio which was reduced by the split will be accounted for. This results in md iostat data sometimes showing I/O values far below the actual amount of data being sent through md. md_account_bio() needs to be called for all bio generated by the bio split. Signed-off-by: David Jeffery <redacted> Tested-by: Laurence Oberman <redacted> --- drivers/md/raid0.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)diff --git a/drivers/md/raid0.c b/drivers/md/raid0.c index d1ac73fcd852..1fd559ac8c68 100644 --- a/drivers/md/raid0.c +++ b/drivers/md/raid0.c@@ -597,8 +597,7 @@ static bool raid0_make_request(struct mddev*mddev, struct bio *bio) bio = split; } - if (bio->bi_pool != &mddev->bio_set) - md_account_bio(mddev, &bio); + md_account_bio(mddev, &bio); orig_sector = sector; zone = find_zone(mddev->private, §or);
Works well, looks good. Reviewed-by: Laurence Oberman <redacted>