Re: [PATCH] md/raid10: fix missing discard IO accounting
From: Coly Li
Date: Tue Mar 25 2025 - 07:47:18 EST
On Tue, Mar 25, 2025 at 09:57:46AM +0800, Yu Kuai wrote:
> From: Yu Kuai <yukuai3@xxxxxxxxxx>
>
> md_account_bio() is not called from raid10_handle_discard(), now that we
> handle bitmap inside md_account_bio(), also fix missing
> bitmap_startwrite for discard.
>
> Test whole disk discard for 20G raid10:
>
> Before:
> Device d/s dMB/s drqm/s %drqm d_await dareq-sz
> md0 48.00 16.00 0.00 0.00 5.42 341.33
>
> After:
> Device d/s dMB/s drqm/s %drqm d_await dareq-sz
> md0 68.00 20462.00 0.00 0.00 2.65 308133.65
>
> Fixes: 528bc2cf2fcc ("md/raid10: enable io accounting")
> Signed-off-by: Yu Kuai <yukuai3@xxxxxxxxxx>
Acked-by: Coly Li <colyli@xxxxxxxxxx>
Thanks.
> ---
> drivers/md/raid10.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
> index 9d8516acf2fd..6ef65b4d1093 100644
> --- a/drivers/md/raid10.c
> +++ b/drivers/md/raid10.c
> @@ -1735,6 +1735,7 @@ static int raid10_handle_discard(struct mddev *mddev, struct bio *bio)
> * The discard bio returns only first r10bio finishes
> */
> if (first_copy) {
> + md_account_bio(mddev, &bio);
> r10_bio->master_bio = bio;
> set_bit(R10BIO_Discard, &r10_bio->state);
> first_copy = false;
> --
> 2.39.2
>
>
--
Coly Li