All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 09/11] md: add atomic mode switching when removing disk
@ 2024-04-18  5:44 tada keisuke
  0 siblings, 0 replies; only message in thread
From: tada keisuke @ 2024-04-18  5:44 UTC (permalink / raw)
  To: song, yukuai3; +Cc: linux-raid, linux-kernel

This patch depends on patch 08.

To minimize the number of execution of atomic mode switching, not only adding atomic mode switching, but also remove judgment is divided into two stages.
Latency is minimized because only rdev to be removed is switched to atomic mode, not all rdevs.

Signed-off-by: Keisuke TADA <keisuke1.tada@kioxia.com>
Signed-off-by: Toshifumi OHTAKE <toshifumi.ootake@kioxia.com>
---
 drivers/md/md.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index 7e6966e65d0d..5f785353353d 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -9291,8 +9291,11 @@ static bool rdev_removeable(struct md_rdev *rdev)
 		return false;
 
 	/* Fautly rdev is not used, it's safe to remove it. */
-	if (test_bit(Faulty, &rdev->flags))
-		return true;
+	if (nr_pending_is_percpu_mode(rdev) && test_bit(Faulty, &rdev->flags)) {
+		percpu_ref_switch_to_atomic_sync(&rdev->nr_pending);
+		if (nr_pending_is_zero(rdev))
+			return true;
+	}
 
 	/* Journal disk can only be removed if it's faulty. */
 	if (test_bit(Journal, &rdev->flags))
@@ -9346,6 +9349,11 @@ static bool md_spares_need_change(struct mddev *mddev)
 {
 	struct md_rdev *rdev;
 
+	rdev_for_each_rcu(rdev, mddev) {
+		if (test_bit(Faulty, &rdev->flags))
+			percpu_ref_switch_to_atomic_sync(&rdev->nr_pending);
+	}
+
 	rcu_read_lock();
 	rdev_for_each_rcu(rdev, mddev) {
 		if (rdev_removeable(rdev) || rdev_addable(rdev)) {
-- 
2.34.1



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-04-18  5:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-18  5:44 [PATCH v2 09/11] md: add atomic mode switching when removing disk tada keisuke

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.