From: Xiao Ni <xni@redhat.com>
To: Yu Kuai <yukuai1@huaweicloud.com>,
axboe@kernel.dk, song@kernel.org, yukuai3@huawei.com
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-raid@vger.kernel.org, yi.zhang@huawei.com,
yangerkun@huawei.com
Subject: Re: [PATCH 4/4] md: cleanup accounting for issued sync IO
Date: Wed, 16 Apr 2025 14:27:21 +0800 [thread overview]
Message-ID: <a2444c8a-7c76-44de-a8e8-4023dbdaeb4b@redhat.com> (raw)
In-Reply-To: <20250412073202.3085138-5-yukuai1@huaweicloud.com>
在 2025/4/12 下午3:32, Yu Kuai 写道:
> From: Yu Kuai <yukuai3@huawei.com>
>
> It's no longer used and can be removed, also remove the field
> 'gendisk->sync_io'.
>
> Signed-off-by: Yu Kuai <yukuai3@huawei.com>
> ---
> drivers/md/md.h | 11 -----------
> drivers/md/raid1.c | 3 ---
> drivers/md/raid10.c | 9 ---------
> drivers/md/raid5.c | 8 --------
> include/linux/blkdev.h | 1 -
> 5 files changed, 32 deletions(-)
>
> diff --git a/drivers/md/md.h b/drivers/md/md.h
> index 95cf11c4abc6..6233ec9f10a3 100644
> --- a/drivers/md/md.h
> +++ b/drivers/md/md.h
> @@ -716,17 +716,6 @@ static inline int mddev_trylock(struct mddev *mddev)
> }
> extern void mddev_unlock(struct mddev *mddev);
>
> -static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
> -{
> - if (blk_queue_io_stat(bdev->bd_disk->queue))
> - atomic_add(nr_sectors, &bdev->bd_disk->sync_io);
> -}
> -
> -static inline void md_sync_acct_bio(struct bio *bio, unsigned long nr_sectors)
> -{
> - md_sync_acct(bio->bi_bdev, nr_sectors);
> -}
> -
> struct md_personality
> {
> struct md_submodule_head head;
> diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
> index de9bccbe7337..657d481525be 100644
> --- a/drivers/md/raid1.c
> +++ b/drivers/md/raid1.c
> @@ -2382,7 +2382,6 @@ static void sync_request_write(struct mddev *mddev, struct r1bio *r1_bio)
>
> wbio->bi_end_io = end_sync_write;
> atomic_inc(&r1_bio->remaining);
> - md_sync_acct(conf->mirrors[i].rdev->bdev, bio_sectors(wbio));
>
> submit_bio_noacct(wbio);
> }
> @@ -3055,7 +3054,6 @@ static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr,
> bio = r1_bio->bios[i];
> if (bio->bi_end_io == end_sync_read) {
> read_targets--;
> - md_sync_acct_bio(bio, nr_sectors);
> if (read_targets == 1)
> bio->bi_opf &= ~MD_FAILFAST;
> submit_bio_noacct(bio);
> @@ -3064,7 +3062,6 @@ static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr,
> } else {
> atomic_set(&r1_bio->remaining, 1);
> bio = r1_bio->bios[r1_bio->read_disk];
> - md_sync_acct_bio(bio, nr_sectors);
> if (read_targets == 1)
> bio->bi_opf &= ~MD_FAILFAST;
> submit_bio_noacct(bio);
> diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
> index ba32bac975b8..dce06bf65016 100644
> --- a/drivers/md/raid10.c
> +++ b/drivers/md/raid10.c
> @@ -2426,7 +2426,6 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio)
>
> atomic_inc(&conf->mirrors[d].rdev->nr_pending);
> atomic_inc(&r10_bio->remaining);
> - md_sync_acct(conf->mirrors[d].rdev->bdev, bio_sectors(tbio));
>
> if (test_bit(FailFast, &conf->mirrors[d].rdev->flags))
> tbio->bi_opf |= MD_FAILFAST;
> @@ -2448,8 +2447,6 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio)
> bio_copy_data(tbio, fbio);
> d = r10_bio->devs[i].devnum;
> atomic_inc(&r10_bio->remaining);
> - md_sync_acct(conf->mirrors[d].replacement->bdev,
> - bio_sectors(tbio));
> submit_bio_noacct(tbio);
> }
>
> @@ -2583,13 +2580,10 @@ static void recovery_request_write(struct mddev *mddev, struct r10bio *r10_bio)
> d = r10_bio->devs[1].devnum;
> if (wbio->bi_end_io) {
> atomic_inc(&conf->mirrors[d].rdev->nr_pending);
> - md_sync_acct(conf->mirrors[d].rdev->bdev, bio_sectors(wbio));
> submit_bio_noacct(wbio);
> }
> if (wbio2) {
> atomic_inc(&conf->mirrors[d].replacement->nr_pending);
> - md_sync_acct(conf->mirrors[d].replacement->bdev,
> - bio_sectors(wbio2));
> submit_bio_noacct(wbio2);
> }
> }
> @@ -3757,7 +3751,6 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
> r10_bio->sectors = nr_sectors;
>
> if (bio->bi_end_io == end_sync_read) {
> - md_sync_acct_bio(bio, nr_sectors);
> bio->bi_status = 0;
> submit_bio_noacct(bio);
> }
> @@ -4880,7 +4873,6 @@ static sector_t reshape_request(struct mddev *mddev, sector_t sector_nr,
> r10_bio->sectors = nr_sectors;
>
> /* Now submit the read */
> - md_sync_acct_bio(read_bio, r10_bio->sectors);
> atomic_inc(&r10_bio->remaining);
> read_bio->bi_next = NULL;
> submit_bio_noacct(read_bio);
> @@ -4940,7 +4932,6 @@ static void reshape_request_write(struct mddev *mddev, struct r10bio *r10_bio)
> continue;
>
> atomic_inc(&rdev->nr_pending);
> - md_sync_acct_bio(b, r10_bio->sectors);
> atomic_inc(&r10_bio->remaining);
> b->bi_next = NULL;
> submit_bio_noacct(b);
> diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
> index 6389383166c0..ca5b0e8ba707 100644
> --- a/drivers/md/raid5.c
> +++ b/drivers/md/raid5.c
> @@ -1240,10 +1240,6 @@ static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s)
> }
>
> if (rdev) {
> - if (s->syncing || s->expanding || s->expanded
> - || s->replacing)
> - md_sync_acct(rdev->bdev, RAID5_STRIPE_SECTORS(conf));
> -
> set_bit(STRIPE_IO_STARTED, &sh->state);
>
> bio_init(bi, rdev->bdev, &dev->vec, 1, op | op_flags);
> @@ -1300,10 +1296,6 @@ static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s)
> submit_bio_noacct(bi);
> }
> if (rrdev) {
> - if (s->syncing || s->expanding || s->expanded
> - || s->replacing)
> - md_sync_acct(rrdev->bdev, RAID5_STRIPE_SECTORS(conf));
> -
> set_bit(STRIPE_IO_STARTED, &sh->state);
>
> bio_init(rbi, rrdev->bdev, &dev->rvec, 1, op | op_flags);
> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
> index e39c45bc0a97..f3a625b00734 100644
> --- a/include/linux/blkdev.h
> +++ b/include/linux/blkdev.h
> @@ -182,7 +182,6 @@ struct gendisk {
> struct list_head slave_bdevs;
> #endif
> struct timer_rand_state *random;
> - atomic_t sync_io; /* RAID */
> struct disk_events *ev;
>
> #ifdef CONFIG_BLK_DEV_ZONED
Looks good to me.
Acked-by: Xiao Ni <xni@redhat.com>
prev parent reply other threads:[~2025-04-16 6:27 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-12 7:31 [PATCH 0/4] md: fix is_mddev_idle() Yu Kuai
2025-04-12 7:31 ` [PATCH 1/4] block: export part_in_flight() Yu Kuai
2025-04-14 6:32 ` Christoph Hellwig
2025-04-14 6:48 ` Yu Kuai
2025-04-14 11:39 ` Christoph Hellwig
2025-04-12 7:32 ` [PATCH 2/4] md: add a new api sync_io_depth Yu Kuai
2025-04-16 5:32 ` Xiao Ni
2025-04-16 8:19 ` Yu Kuai
2025-04-12 7:32 ` [PATCH 3/4] md: fix is_mddev_idle() Yu Kuai
2025-04-16 6:20 ` Xiao Ni
2025-04-16 7:42 ` Yu Kuai
2025-04-16 9:28 ` Yu Kuai
2025-04-16 9:44 ` Xiao Ni
2025-04-17 1:47 ` Yu Kuai
2025-04-12 7:32 ` [PATCH 4/4] md: cleanup accounting for issued sync IO Yu Kuai
2025-04-16 6:27 ` Xiao Ni [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a2444c8a-7c76-44de-a8e8-4023dbdaeb4b@redhat.com \
--to=xni@redhat.com \
--cc=axboe@kernel.dk \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-raid@vger.kernel.org \
--cc=song@kernel.org \
--cc=yangerkun@huawei.com \
--cc=yi.zhang@huawei.com \
--cc=yukuai1@huaweicloud.com \
--cc=yukuai3@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox