From: Eric Sandeen <sandeen@redhat.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: linux-fsdevel <linux-fsdevel@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH, RFC] check for frozen filesystems in the mmap path
Date: Wed, 22 Apr 2009 00:01:50 -0500 [thread overview]
Message-ID: <49EEA4BE.6000207@redhat.com> (raw)
In-Reply-To: <20090422132451.62A4.A69D9226@jp.fujitsu.com>
KOSAKI Motohiro wrote:
>>> 2. this logic kill multi thread application.
>>>
>>> this logic mean mmap_sem grabbing until unfreeze.
>>> it mean othrer thread in the same process can't page-fault although
>>> it don't touch frozen-sb.
>>> it seems strange.
>> Hm, I hadn't thought about this ... On the one hand, ->page_mkwrite can
>> already sleep, though a userspace freeze/unfreeze could potentially take
>> much much longer. freeze/unfreeze *should* happen very quickly, but
>> nothing enforces that.
>>
>> Do you have any suggestions?
>
> One more comment.
>
> I read ioctl_fsfreeze() and freeze_bdev(), it call __fsync_super().
> Oh, I don't think __fsync_suepr is very quick.
Well, what I mean is that the filesystem is not intended to be frozen
for long periods of time. But it's not enforced by any method.
> So, page-fault have one unique characteristics.
> if page-fault return 0 without pte change, page-fault is occur again soon.
> then, if you need long time waiting, I think you can use following technique.
>
> unlock mmap_sem
> wait long-time
> lock mmap_sem
> goto out;
>
>
> it cause page-fault counter increment twice unintesionally.
> but no problem. fs-freeze is not freqently event.
>
> Am I missing anything?
Hm, I'll have to think about that. This is not my best area. :) So do
you mean that if a wait needs to happen for the frozen fs, we can
unlock, do that wait for unfreeze, relock, return early, and come back
again when it is not frozen?
One other thing that I think I just discovered is that nothing is
actually stopping mmap IO even on a frozen filesystem, as long as no
metadata updates are required for the IO... I'm seeing this on xfs
anyway (ext4 tries to update mtime, so that gets stopped on the frozen fs).
Thanks,
-Eric
next prev parent reply other threads:[~2009-04-22 5:01 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-16 23:45 [PATCH, RFC] check for frozen filesystems in the mmap path Eric Sandeen
2009-04-20 14:55 ` Rik van Riel
2009-04-21 5:11 ` KOSAKI Motohiro
2009-04-21 15:15 ` Eric Sandeen
2009-04-22 1:35 ` KOSAKI Motohiro
2009-04-22 4:49 ` KOSAKI Motohiro
2009-04-22 5:01 ` Eric Sandeen [this message]
2009-04-22 5:29 ` KOSAKI Motohiro
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=49EEA4BE.6000207@redhat.com \
--to=sandeen@redhat.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=riel@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).