All of lore.kernel.org
 help / color / mirror / Atom feed
From: Neil Brown <neilb@suse.de>
To: John Stoffel <john@stoffel.org>
Cc: Tomasz Chmielewski <mangoo@wpkg.org>, linux-raid@vger.kernel.org
Subject: Re: mdadm "hang", 100% CPU usage when trying to create RAID-1 array with external bitmap
Date: Tue, 20 Jul 2010 01:26:23 +0200	[thread overview]
Message-ID: <20100720012623.0341401e@notabene> (raw)
In-Reply-To: <19523.20850.346094.160876@stoffel.org>

On Sun, 18 Jul 2010 15:09:38 -0400
"John Stoffel" <john@stoffel.org> wrote:

> >>>>> "Neil" == Neil Brown <neilb@suse.de> writes:
> 
> Neil> On Wed, 14 Jul 2010 12:53:45 +0200
> Neil> 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
> >> 
> >> 
> 
> Neil> Hmm... that's rather embarrassing.
> Neil> This patch should fit it.  Or you can explicitly set a bitmap chunk size -
> Neil> aim for several megabyte.
> 
> Neil> diff --git a/bitmap.c b/bitmap.c
> Neil> index beef2dc..44a8677 100644
> Neil> --- a/bitmap.c
> Neil> +++ b/bitmap.c
> Neil> @@ -373,7 +373,7 @@ int CreateBitmap(char *filename, int force, char uuid[16],
> Neil>  		 */
> Neil>  		chunksize = DEFAULT_BITMAP_CHUNK;
> Neil>  		/* <<20 for 2^20 chunks, >>9 to convert bytes to sectors */
> Neil> -		while (array_size > (chunksize << (20-9)))
> Neil> +		while (array_size > ((unsigned long long)chunksize << (20-9)))
> Neil>  			chunksize <<= 1;
> Neil>  	}
>  
> How about also replacing the magic numbers 20 and 9 with usefully
> named constants as well?   I realize the comment tells you what's
> going on here, but I just boggle a bit when I see 20-9 in the source.
> :-)

If you sent that suggestion as a patch it would be much more likely to be
applied (it might anyway, but still...)
:-)

NeilBrown

  reply	other threads:[~2010-07-19 23:26 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
2010-07-15 10:35   ` Tomasz Chmielewski
2010-07-18 19:09   ` John Stoffel
2010-07-19 23:26     ` Neil Brown [this message]
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=20100720012623.0341401e@notabene \
    --to=neilb@suse.de \
    --cc=john@stoffel.org \
    --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.