[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [dm-devel] Re: dm: bind new table before destroying old
- From: Mike Anderson <andmike linux vnet ibm com>
- To: device-mapper development <dm-devel redhat com>
- Cc: Kiyoshi Ueda <k-ueda ct jp nec com>, Mike Snitzer <snitzer redhat com>, Heinz Mauelshagen <mauelshagen redhat com>, Mikulas Patocka <mpatocka redhat com>, Zdenek Kabelac <zkabelac redhat com>, Jun'ichi Nomura <j-nomura ce jp nec com>
- Subject: Re: [dm-devel] Re: dm: bind new table before destroying old
- Date: Wed, 11 Nov 2009 23:00:15 -0800
Milan Broz <mbroz redhat com> wrote:
> On 11/11/2009 04:11 PM, Alasdair G Kergon wrote:
> > On Wed, Nov 11, 2009 at 03:56:05PM +0900, Kiyoshi Ueda wrote:
> >> I believe dm-mpath needs to flush such workqueues in postsuspend.
> >
> > Yes - should be an easy change.
>
> similar problem is probably in crypt target, I'll check it later.
>
> >> Also, we need something to block message ioctl to suspended device.
> >
> >> As for the message ioctl, I don't have any good idea, but...
> >> - Reject message ioctl to suspended device in dm-ioctl
> >
> > I think the crypt target expects to be able to do this to manipulate
> > the in-core encryption key.
>
> yes, crypt target must be able to process messages when in suspended state.
>
I hit a issue like Kiyoshi described of the target_message
(multipath_message) generating new work while dev_remove is trying
complete in parallel with calling fail_path / reinstate_path.
I added two accessor functions to dm-table.c (dm_table_md_suspended and
dm_table_md_freeing). I am calling both functions from multipath_message
to return early if we are in one of these states. Depending on the usage
model of the other targets message functions dm_table_md_freeing (or a new
function dm_table_md_deleting) could be called in target_message instead
of each targets message function.
The test runs using a mutex and the alternate option of using spin_lock
are currently passing I will post tomorrow the series for comments.
I also tested suspend / resume in parallel with calling fail_path /
reinstate_path.
-andmike
--
Michael Anderson
andmike linux vnet ibm com
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]