All of lore.kernel.org
 help / color / mirror / Atom feed
From: Neil Brown <neilb@suse.de>
To: Tomasz Chmielewski <mangoo@wpkg.org>
Cc: linux-raid@vger.kernel.org
Subject: Re: mdadm "hang", 100% CPU usage when trying to create RAID-1 array with external bitmap
Date: Thu, 15 Jul 2010 07:45:44 +0200	[thread overview]
Message-ID: <20100715074544.3172df47@notabene> (raw)
In-Reply-To: <4C3D9739.7030703@wpkg.org>

On Wed, 14 Jul 2010 12:53:45 +0200
Tomasz Chmielewski <mangoo@wpkg.org> wrote:

> I'm trying to create RAID-1 with external bitmap with this command:
> 
> mdadm --create /dev/md11 --level=1 --bitmap=/mnt/src/bitmap --raid-devices 2 /dev/storage/origin missing
> 
> 
> /dev/storage/origin is 1.2 TB; is placed on "stacked" block devices like this:
> 
> RAID-5 -> dm-crypt -> LVM-2 -> /dev/storage/origin
> 
> 
> /mnt/src/bitmap is technically the same stacked device, except the last LVM volume:
> 
> RAID-5 -> dm-crypt -> LVM-2 -> /dev/storage/src -> /mnt/src/bitmap
> 
> (although I tried to keep bitmap outside of this RAID-5 device, and it was still hanging).
> 
> 
> When started with "strace", mdadm hangs with 100% CPU usage after opening /mnt/src/bitmap:
> 
> (...)
> rename("/var/run/map.new", "/var/run/map") = 0
> flock(3, LOCK_UN)                       = 0
> close(3)                                = 0
> munmap(0x6ff40000, 4096)                = 0
> unlink("/var/run/map.lock")             = 0
> ioctl(4, 0x800c0910, 0x77f5f89c)        = 0
> fstat64(4, {st_mode=S_IFBLK|0600, st_rdev=makedev(9, 1), ...}) = 0
> fstat64(4, {st_mode=S_IFBLK|0600, st_rdev=makedev(9, 1), ...}) = 0
> ioctl(4, 0x800c0910, 0x77f5f7cc)        = 0
> ioctl(4, 0x40480923, 0x77f5f854)        = 0
> access("/mnt/src/bitmap", F_OK)         = -1 ENOENT (No such file or directory)
> open("/mnt/src/bitmap", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 3
> 
> 

Hmm... that's rather embarrassing.
This patch should fit it.  Or you can explicitly set a bitmap chunk size -
aim for several megabyte.

Thanks for the report,
NeilBrown

diff --git a/bitmap.c b/bitmap.c
index beef2dc..44a8677 100644
--- a/bitmap.c
+++ b/bitmap.c
@@ -373,7 +373,7 @@ int CreateBitmap(char *filename, int force, char uuid[16],
 		 */
 		chunksize = DEFAULT_BITMAP_CHUNK;
 		/* <<20 for 2^20 chunks, >>9 to convert bytes to sectors */
-		while (array_size > (chunksize << (20-9)))
+		while (array_size > ((unsigned long long)chunksize << (20-9)))
 			chunksize <<= 1;
 	}
 




> I see no disk activity when this happens.
> 
> 
> # mdadm -V
> mdadm - v3.1.2 - 10th March 2010
> 
> Kernel is 2.6.34.1 (tried also 2.6.28.7), 32 bit x86 system.
> 
> Or, I didn't wait long enough? So far, it takes about an hour to create this array...
> 
> Creating smaller arrays (i.e. 8 GB) in a similar configuration works fine.
> 
> 


  reply	other threads:[~2010-07-15  5:45 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-14 10:53 mdadm "hang", 100% CPU usage when trying to create RAID-1 array with external bitmap Tomasz Chmielewski
2010-07-15  5:45 ` Neil Brown [this message]
2010-07-15 10:35   ` Tomasz Chmielewski
2010-07-18 19:09   ` John Stoffel
2010-07-19 23:26     ` Neil Brown
2010-07-20 14:14       ` John Stoffel

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=20100715074544.3172df47@notabene \
    --to=neilb@suse.de \
    --cc=linux-raid@vger.kernel.org \
    --cc=mangoo@wpkg.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.