Messages in this thread | | | Date | Sat, 10 Jun 2023 16:42:02 +0800 | Subject | Re: [PATCH] md/raid10: Only check QUEUE_FLAG_IO_STAT when issuing io | From | Li Nan <> |
| |
在 2023/6/10 10:32, Yu Kuai 写道: > Hi, > > 在 2023/06/09 17:43, linan666@huaweicloud.com 写道: >> From: Li Nan <linan122@huawei.com> >> >> /sys/block/[device]/queue/iostats is used to control whether to count io >> stat. Write 0 to it will clear queue_flags QUEUE_FLAG_IO_STAT which means >> iostats is disabled. If we disable iostats and later endable it, the io >> issued during this period will be counted incorrectly, inflight will be >> decreased to -1. >> >> //T1 set iostats >> echo 0 > /sys/block/md0/queue/iostats >> clear QUEUE_FLAG_IO_STAT >> >> //T2 issue io >> if (QUEUE_FLAG_IO_STAT) -> false >> bio_start_io_acct >> inflight++ >> >> echo 1 > /sys/block/md0/queue/iostats >> set QUEUE_FLAG_IO_STAT >> >> //T3 io end >> if (QUEUE_FLAG_IO_STAT) -> true >> bio_end_io_acct >> inflight-- -> -1 >> >> Also, if iostats is enabled while issuing io but disabled while io end, >> inflight will never be decreased. >> >> Fix it by checking start_time when io end. Only check QUEUE_FLAG_IO_STAT >> while issuing io, just like request based devices. >> >> Fixes: 528bc2cf2fcc ("md/raid10: enable io accounting") >> Signed-off-by: Li Nan <linan122@huawei.com> >> --- >> drivers/md/raid10.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c >> index 381c21f7fb06..bf9dca5c25c3 100644 >> --- a/drivers/md/raid10.c >> +++ b/drivers/md/raid10.c >> @@ -325,7 +325,7 @@ static void raid_end_bio_io(struct r10bio *r10_bio) >> if (!test_bit(R10BIO_Uptodate, &r10_bio->state)) >> bio->bi_status = BLK_STS_IOERR; >> - if (blk_queue_io_stat(bio->bi_bdev->bd_disk->queue)) >> + if (r10_bio->start_time) >> bio_end_io_acct(bio, r10_bio->start_time); > > This patch LGTM, can you change this for raid1 as well? raid0 and > raid456 is using md_account_bio(), and they don't have such problem. >
OK, I will fix raid1 later. Thanks for suggestion.
> Thanks, > Kuai -- Thanks, Nan
| |