From: NeilBrown <neilb@suse.de>
To: Jan Ceuleers <jan.ceuleers@computer.org>
Cc: Linux RAID <linux-raid@vger.kernel.org>
Subject: Re: dmesg deluge: RAID1 conf printout
Date: Mon, 23 Apr 2012 09:48:53 +1000 [thread overview]
Message-ID: <20120423094853.15683cd6@notabene.brown> (raw)
In-Reply-To: <4F943E07.8040206@computer.org>
[-- Attachment #1: Type: text/plain, Size: 3267 bytes --]
On Sun, 22 Apr 2012 19:21:11 +0200 Jan Ceuleers <jan.ceuleers@computer.org>
wrote:
> NeilBrown wrote:
> > Looks like:
> >
> > commit 7bfec5f35c68121e7b1849f3f4166dd96c8da5b3
> >
> > is at fault. It causes md to attempt to add spares into the array more often.
> > Would I be right in guessing that you have one spare in this array?
> > If you remove the spare, the messages should stop.
>
> Hmmm. The commit message is as follows:
>
> commit 7bfec5f35c68121e7b1849f3f4166dd96c8da5b3
> Author: NeilBrown <neilb@suse.de>
> Date: Fri Dec 23 10:17:53 2011 +1100
>
> md/raid5: If there is a spare and a want_replacement device, start
> replaceme
>
> When attempting to add a spare to a RAID[456] array, also consider
> adding it as a replacement for a want_replacement device.
>
> This requires that common md code attempt hot_add even when the array
> is not formally degraded.
>
> Reviewed-by: Dan Williams <dan.j.williams@intel.com>
> Signed-off-by: NeilBrown <neilb@suse.de>
>
>
> Does this also apply to RAID1 (which is all I've got on this machine: no
> RAID456)?
Yes it does apply to RAID1. Part of the patch was RAID5-specific but part of
it was to common code that would affect other levels. That part was not
meant to be a big change, but it turned out to be a little bigger than I
expected.
The following should fix it.
Thanks again for the report,
NeilBrown
From 321f820a905993f694f7ba4347492e9273831813 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Mon, 23 Apr 2012 09:46:28 +1000
Subject: [PATCH] md: don't call ->add_disk unless there is good reason.
Commit 7bfec5f35c68121e7b18
md/raid5: If there is a spare and a want_replacement device, start replacement.
cause md_check_recovery to call ->add_disk much more often.
Instead of only when the array is degraded, it is now called whenever
md_check_recovery finds anything useful to do, which includes
updating the metadata for clean<->dirty transition.
This causes unnecessary work, and causes info messages from ->add_disk
to be reported much too often.
So refine md_check_recovery to only do any actual recovery checking
(including ->add_disk) if MD_RECOVERY_NEEDED is set.
This fix is suitable for 3.3.y:
Cc: stable@vger.kernel.org
Reported-by: Jan Ceuleers <jan.ceuleers@computer.org>
Signed-off-by: NeilBrown <neilb@suse.de>
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 9524192..47f1fdb6 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -7813,14 +7813,14 @@ void md_check_recovery(struct mddev *mddev)
* any transients in the value of "sync_action".
*/
set_bit(MD_RECOVERY_RUNNING, &mddev->recovery);
- clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery);
/* Clear some bits that don't mean anything, but
* might be left set
*/
clear_bit(MD_RECOVERY_INTR, &mddev->recovery);
clear_bit(MD_RECOVERY_DONE, &mddev->recovery);
- if (test_bit(MD_RECOVERY_FROZEN, &mddev->recovery))
+ if (!test_and_clear_bit(MD_RECOVERY_NEEDED, &mddev->recovery) ||
+ test_bit(MD_RECOVERY_FROZEN, &mddev->recovery))
goto unlock;
/* no recovery is running.
* remove any failed drives, then
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
next prev parent reply other threads:[~2012-04-22 23:48 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-21 13:55 dmesg deluge: RAID1 conf printout Jan Ceuleers
2012-04-21 21:00 ` NeilBrown
2012-04-22 8:17 ` Jan Ceuleers
2012-04-22 17:21 ` Jan Ceuleers
2012-04-22 23:48 ` NeilBrown [this message]
2012-04-23 7:01 ` Jan Ceuleers
2012-04-27 1:30 ` NeilBrown
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=20120423094853.15683cd6@notabene.brown \
--to=neilb@suse.de \
--cc=jan.ceuleers@computer.org \
--cc=linux-raid@vger.kernel.org \
/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 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.