Linux RAID subsystem development
 help / color / mirror / Atom feed
From: Neil Brown <neilb@cse.unsw.edu.au>
To: Mario 'BitKoenig' Holbe <Mario.Holbe@RZ.TU-Ilmenau.DE>
Cc: linux-raid@vger.kernel.org
Subject: Re: [PATCH] md - 8 of 8 - Support reshaping raid1 arrays - adding or removing drives.
Date: Sat, 29 May 2004 08:47:10 +1000	[thread overview]
Message-ID: <16567.49518.235636.692548@cse.unsw.edu.au> (raw)
In-Reply-To: message from Mario 'BitKoenig' Holbe on Friday May 28

On Friday May 28, Mario.Holbe@RZ.TU-Ilmenau.DE wrote:
> NeilBrown <neilb@cse.unsw.edu.au> wrote:
> > This requires allocating a new pool of "r1bio" structures which a different
> > number of bios, suspending IO, and swapping the new pool in place of the old.
> > (and a few other related changes).
> 
> Hmmm, I'm not really familiar with the md-code, but doesn't
> do memory allocation at runtime re-introduce the 2.2. swap-
> on-raid-problems?

No.

> Afair, they were due to swap out -> md driver allocates
> something -> no ram -> swap out -> md driver allocates ...
> 

This was not the problem.
When the md driver allocated memory in the write-out path it always
does it with a flag that say "don't trigger any write-out to while
trying to satisfy this request".  It also manages memory in  such a
way (using mempools) that if a memory request fails, it can just wait
for some pending requests to complete and it is certain to get some
memory soon.

Further, the "allocation a new pool" mentioned above is not in the
write-out path for raid1 so it has no bearing on these issues.

It allocates a new pool quite separately for the normally running of
raid1.  If all the needed allocations succeed, it blocks further
requests, swaps the new pool in place of the old and makes other
changes to reshape the array, and the allows further requests to
proceed.

The problem in 2.2 was only during resync.  Because of how buffers
were managed, swap could write out to a block that we in the process
of being re-synced, and the resync process would overwrite the new
swap data.  The buffer management is now completely different and this
is not a problem.

I hope this makes it a tiny bit clearer.

NeilBrown


  reply	other threads:[~2004-05-28 22:47 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-05-28  6:45 [PATCH] md - 0 of 8 - Introduction NeilBrown
2004-05-28  6:45 ` [PATCH] md - 1 of 8 - Rationalise device selection in md/multipath NeilBrown
2004-05-28  6:45 ` [PATCH] md - 2 of 8 - Make sure md_check_recovery will remove a faulty device when ->nr_pending hits 0 NeilBrown
2004-05-28  6:45 ` [PATCH] md - 8 of 8 - Support reshaping raid1 arrays - adding or removing drives NeilBrown
2004-05-28  7:31   ` Andrew Morton
2004-05-28  8:41     ` Neil Brown
2004-05-28 13:32   ` Mario 'BitKoenig' Holbe
2004-05-28 22:47     ` Neil Brown [this message]
2004-05-28  6:45 ` [PATCH] md - 4 of 8 - Make sure the size of a raid5/6 array is a multiple of the chunk size NeilBrown
2004-05-28  6:45 ` [PATCH] md - 7 of 8 - Allow md arrays to be resized if devices are large enough NeilBrown
2004-05-28  6:45 ` [PATCH] md - 3 of 8 - Allow an md personality to refuse a hot-remove request NeilBrown
2004-05-28 18:35   ` 3ware 7506-8 and Tyan Thunder 2500, S1867, anyone? buggz
2004-05-28  6:45 ` [PATCH] md - 6 of 8 - Abort the resync of raid1 there is only one device NeilBrown
2004-05-28  6:45 ` [PATCH] md - 5 of 8 - Handle hot-add for arrays with non-persistent superblocks 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=16567.49518.235636.692548@cse.unsw.edu.au \
    --to=neilb@cse.unsw.edu.au \
    --cc=Mario.Holbe@RZ.TU-Ilmenau.DE \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox