All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@redhat.com>
To: Takashi Sato <t-sato@yk.jp.nec.com>
Cc: Christoph Hellwig <hch@infradead.org>,
	Alasdair G Kergon <agk@redhat.com>,
	linux-ext4@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-fsdevel@vger.kernel.org, viro@ZenIV.linux.org.uk,
	dm-devel@redhat.com, xfs@oss.sgi.com,
	linux-kernel@vger.kernel.org, mtk.manpages@googlemail.com,
	axboe@kernel.dk
Subject: Re: [dm-devel] Re: [PATCH 3/3] Add timeout feature
Date: Thu, 03 Jul 2008 09:45:48 -0500	[thread overview]
Message-ID: <486CE61C.50706@redhat.com> (raw)
In-Reply-To: <9942A69CB65D4A41B39F36AF8EEF6F22@nsl.ad.nec.co.jp>

Takashi Sato wrote:
> Hi Christoph and Alasdair,
> 
>> On Tue, Jul 01, 2008 at 04:10:26AM -0400, Christoph Hellwig wrote:
>>> I still disagree with this whole patch.
>> Same here - if you want a timeout, what stops you from implementing it in a
>> userspace process?  If your concern is that the process might die without
>> thawing the filesystem, take a look at the userspace LVM/multipath code for
>> ideas - lock into memory, disable OOM killer, run from ramdisk etc.
>> In practice, those techniques seem to be good enough.
> 
> If the freezer accesses the frozen filesystem and causes a deadlock,
> the above ideas can't solve it.  The timeout is useful to solve such a deadlock.
> If you don't need the timeout, you can disable it by specifying "0" as the
> timeout period.
> 
>> Similarly if a device-mapper device is involved, how should the following
>> sequence behave - A, B or C?
>>
>> 1. dmsetup suspend (freezes)
>> 2. FIFREEZE
>> 3. FITHAW
>> 4. dmsetup resume (thaws)
> [...]
>> C:
>>  1 succeeds, freezes
>>  2 fails, remains frozen
>>  3 fails (because device-mapper owns the freeze/thaw), remains frozen
>>  4 succeeds, thaws
> 
> I think C is appropriate and the following change makes it possible.
> How do you think?
> 
> 1. Add the new bit flag(BD_FREEZE_DM) in block_device.bd_state.
>    It means that the volume is frozen by the device-mapper.

Will we add a new bit/flag for every possible subysstem that may call
freeze/thaw?  This seems odd to me.

They are different paths to the same underlying mechanism; it should not
matter if it is an existing freeze from DM or via FIFREEZE or via the
xfs ioctl, or any other mechanism should it?  I don't think this generic
interface should use any flag named *_DM, personally.

It seems that nested freeze requests must be handled in a generic way
regardless of what initiates any of the requests?

Refcounting freezes as Alasdair suggests seems to make sense to me, i.e.
freeze, freeze, thaw, thaw leads to:

>> > > 1 (freeze) succeeds, freezes (frozen++)
>> > > 2 (freeze) succeeds, remains frozen (frozen++)
>> > > 3 (thaw) succeeds, remains frozen (frozen--)
>> > > 4 (thaw) succeeds, thaws (frozen--)

that way each caller of freeze is guaranteed that the fs is frozen at
least until they call thaw?

Thanks,
-Eric

  parent reply	other threads:[~2008-07-03 14:45 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-30 12:24 [PATCH 3/3] Add timeout feature Takashi Sato
2008-06-30 12:24 ` Takashi Sato
2008-07-01  8:10 ` Christoph Hellwig
2008-07-01 10:52   ` Alasdair G Kergon
2008-07-01 10:52     ` [dm-devel] " Alasdair G Kergon
2008-07-03 12:11     ` Takashi Sato
2008-07-03 12:11       ` [dm-devel] " Takashi Sato
2008-07-03 12:11       ` Takashi Sato
2008-07-03 12:47       ` Alasdair G Kergon
2008-07-03 12:47         ` [dm-devel] " Alasdair G Kergon
2008-07-03 22:11         ` Dave Chinner
2008-07-03 22:11         ` [dm-devel] " Dave Chinner
2008-07-03 22:11           ` Dave Chinner
2008-07-04 12:08           ` Takashi Sato
2008-07-04 12:08             ` Takashi Sato
2008-07-03 14:45       ` Eric Sandeen [this message]
2008-07-07 11:07   ` Pavel Machek
2008-07-08 23:10     ` Dave Chinner
2008-07-08 23:10       ` Dave Chinner
2008-07-08 23:20       ` Pavel Machek
2008-07-08 23:20       ` Pavel Machek
2008-07-08 23:20       ` Pavel Machek
2008-07-08 23:20         ` Pavel Machek
2008-07-09  0:52         ` Dave Chinner
2008-07-09  1:09           ` Theodore Tso
2008-07-09  1:09           ` Theodore Tso
2008-07-09  1:09           ` Theodore Tso
2008-07-09  1:09             ` Theodore Tso
2008-07-09  4:21             ` Brad Boyer
2008-07-09  4:21               ` Brad Boyer
2008-07-09  4:21             ` Brad Boyer
2008-07-09  4:21             ` Brad Boyer
2008-07-09  6:13             ` Miklos Szeredi
2008-07-09  6:16               ` Christoph Hellwig
2008-07-09  6:22                 ` Miklos Szeredi
2008-07-09  6:22                   ` Miklos Szeredi
2008-07-09  6:22                   ` Miklos Szeredi
2008-07-09  6:41                   ` Arjan van de Ven
2008-07-09  6:41                     ` Arjan van de Ven
2008-07-09  6:41                     ` Arjan van de Ven
2008-07-09  6:48                     ` Miklos Szeredi
2008-07-09  6:48                       ` Miklos Szeredi
2008-07-09  6:55                       ` Arjan van de Ven
2008-07-09  6:55                         ` Arjan van de Ven
2008-07-09  6:55                         ` Arjan van de Ven
2008-07-09  7:08                         ` Miklos Szeredi
2008-07-09  7:08                           ` Miklos Szeredi
2008-07-09 20:48                           ` Pavel Machek
2008-07-09  7:13                         ` Dave Chinner
2008-07-09 11:09                           ` Theodore Tso
2008-07-09 11:09                           ` Theodore Tso
2008-07-09 11:09                             ` Theodore Tso
2008-07-09 11:49                             ` Dave Chinner
2008-07-09 11:49                               ` Dave Chinner
2008-07-09 12:24                               ` Theodore Tso
2008-07-09 12:24                               ` Theodore Tso
2008-07-09 12:24                                 ` Theodore Tso
2008-07-09 12:59                                 ` Olaf Frączyk
2008-07-09 13:57                                   ` Arjan van de Ven
2008-07-09 13:57                                     ` Arjan van de Ven
2008-07-09 13:55                               ` Arjan van de Ven
2008-07-09 13:58                               ` jim owens
2008-07-09 14:13                                 ` jim owens
2008-07-13 12:06                                 ` Pavel Machek
2008-07-13 17:15                                   ` jim owens
2008-07-14  6:36                                     ` Pavel Machek
2008-07-14 13:17                                       ` jim owens
2008-07-14 13:12                                 ` Takashi Sato
2008-07-14 13:12                                   ` Takashi Sato
2008-07-14 14:04                                   ` jim owens
2008-07-09 11:49                             ` Dave Chinner
2008-07-09 11:49                             ` Dave Chinner
2008-07-09 13:53                           ` Arjan van de Ven
2008-07-09  6:59                     ` Dave Chinner
2008-07-09  7:13                       ` Miklos Szeredi
2008-07-09  7:33                         ` Dave Chinner
2008-07-09  7:33                           ` Dave Chinner
2008-07-09  8:11                           ` Miklos Szeredi
2008-07-09  8:11                             ` Miklos Szeredi
2008-07-09 11:15                             ` Dave Chinner
2008-07-09 11:15                               ` Dave Chinner
2008-07-09 20:44           ` Pavel Machek
2008-07-09 20:44             ` Pavel Machek
2008-07-09 20:44           ` Pavel Machek
2008-07-09 20:44           ` Pavel Machek

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=486CE61C.50706@redhat.com \
    --to=sandeen@redhat.com \
    --cc=agk@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=axboe@kernel.dk \
    --cc=dm-devel@redhat.com \
    --cc=hch@infradead.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mtk.manpages@googlemail.com \
    --cc=t-sato@yk.jp.nec.com \
    --cc=viro@ZenIV.linux.org.uk \
    --cc=xfs@oss.sgi.com \
    /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.