Re: [PATCH -next v2 0/7] md: initialize 'active_io' while allocating mddev

From: Song Liu
Date: Fri Aug 25 2023 - 02:41:49 EST


On Thu, Aug 24, 2023 at 8:14 PM Yu Kuai <yukuai1@xxxxxxxxxxxxxxx> wrote:
>
> From: Yu Kuai <yukuai3@xxxxxxxxxx>
>
> Changes in v2:
> - rebase for md-next;
> - update commit message for patch 3;

Applied v2 to md-next. But this set won't go into 6.6.

Thanks,
Song

>
> This is the 4th patchset to do some preparatory work to synchronize
> io with array reconfiguration.
>
> 1) The first patchset refactor 'active_io', make sure that mddev_suspend()
> will wait for io to be done. [1]
>
> 2) The second patchset remove 'quiesce' callback from mddev_suspend(), so
> that mddev_suspend() doesn't rely on 'quiesce' callback is registered,
> and can be used for all personalites; [2]
>
> 3) Make array reconfiguration independent from daemon thread,
> and synchronize it with io will be much easier because io may rely on
> daemon thread to be done.
>
> 4) This patchset move initialization of 'active_io' from md_run() to
> md_alloc(), so that mddev_suspend() won't rely on holding 'reconfig_mutex'
> to check if 'mddev->pers' is set, and it can be called at any time after
> mddev is allocated.(Done by patch 1, and other patches are cleanup)
>
> Yu Kuai (7):
> md: initialize 'active_io' while allocating mddev
> md: initialize 'writes_pending' while allocating mddev
> md: don't rely on 'mddev->pers' to be set in mddev_suspend()
> md-bitmap: remove the checking of 'pers->quiesce' from
> location_store()
> md-bitmap: suspend array earlier in location_store()
> md: don't check 'mddev->pers' from suspend_hi_store()
> md: don't check 'mddev->pers' and 'pers->quiesce' from
> suspend_lo_store()
>
> [1] https://lore.kernel.org/all/20230621165110.1498313-1-yukuai1@xxxxxxxxxxxxxxx/
> [2] https://lore.kernel.org/all/20230628012931.88911-2-yukuai1@xxxxxxxxxxxxxxx/
>
> Yu Kuai (7):
> md: initialize 'active_io' while allocating mddev
> md: initialize 'writes_pending' while allocating mddev
> md: don't rely on 'mddev->pers' to be set in mddev_suspend()
> md-bitmap: remove the checking of 'pers->quiesce' from
> location_store()
> md-bitmap: suspend array earlier in location_store()
> md: don't check 'mddev->pers' from suspend_hi_store()
> md: don't check 'mddev->pers' and 'pers->quiesce' from
> suspend_lo_store()
>
> drivers/md/dm-raid.c | 7 ++-
> drivers/md/md-bitmap.c | 47 +++++++++----------
> drivers/md/md.c | 100 ++++++++++++++++++++---------------------
> drivers/md/md.h | 4 +-
> drivers/md/raid1.c | 3 +-
> drivers/md/raid10.c | 3 --
> drivers/md/raid5.c | 3 --
> 7 files changed, 78 insertions(+), 89 deletions(-)
>
> --
> 2.39.2
>