All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: xfs-masters@oss.sgi.com
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
	Elias Oltmanns <eo@nebensachen.de>,
	Henrique de Moraes Holschuh <hmh@hmh.eng.br>,
	Kyle Moffett <mrmacman_g4@mac.com>,
	Matthew Garrett <mjg59@srcf.ucam.org>,
	David Chinner <dgc@sgi.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Jens Axboe <jens.axboe@oracle.com>
Subject: Re: [xfs-masters] Re: freeze vs freezer
Date: Tue, 1 Jul 2008 16:38:35 +1000	[thread overview]
Message-ID: <20080701063835.GQ29319@disturbed> (raw)
In-Reply-To: <200807010038.43362.rjw@sisk.pl>

On Tue, Jul 01, 2008 at 12:38:41AM +0200, Rafael J. Wysocki wrote:
> On Tuesday, 1 of July 2008, Dave Chinner wrote:
> > On Mon, Jun 30, 2008 at 11:00:43PM +0200, Rafael J. Wysocki wrote:
> > > On Monday, 30 of June 2008, Dave Chinner wrote:
> > > > On Sun, Jun 29, 2008 at 11:37:31PM -0700, Jeremy Fitzhardinge wrote:
> > > > > Dave Chinner wrote:
> > > > >> On Mon, Jun 30, 2008 at 01:22:47AM +0200, Rafael J. Wysocki wrote:
> > > > >>> Well, it seems we can handle this on the block layer level, by temporarily
> > > > >>> replacing the elevator with something that will selectively prevent fs I/O
> > > > >>> from reaching the layers below it.
> > > > >>
> > > > >> Why? What part of freeze_bdev() doesn't work for you?
> > > > >
> > > > > Well, my original problem - which is still an issue - is that a process  
> > > > > writing to a frozen XFS filesystem is stuck in D state, and therefore  
> > > > > cannot be frozen as part of suspend.
> > > 
> > > I thought we were talking about the post-freezer situation.
> > > 
> > > > Silly me - how could I forget the three headed monkey getting in
> > > > the way of our happy trip to beer island?
> > > > 
> > > > Seriously, though, how is stopping I/O in the elevator is going to
> > > > change that?
> > > 
> > > We can do that after creating the image and before we let devices run again.
> > > This way we won't need to worry about the freezer.
> > 
> > You're suggesting that you let processes trying to do I/O continue
> > until *after* the memory image is taken?
> 
> I'm not going to let the data get to the disk.

Yes, but you still haven't answered the original question - What are
you going to do with sync I/O that leaves a process in D state
because you've prevented the I/O from being completed?

> > > > What do you do with a sync I/O (read or write)? The 
> > > > process is going to have to go to sleep somewhere in D state waiting
> > > > for that I/O to complete.  If you're going to intercept such
> > > > processes somewhere else to do something magic, then why not put
> > > > that magic in vfs_check_frozen()?
> > > 
> > > This might work too, but it would be nice to do something independent of the
> > > freezer, so that we can drop the freezer when we want and not when we are
> > > forced to.
> > 
> > vfs_check_frozen() is completely independent of the process freezer.
> 
> Well, can you please tell me how exactly that works, then?

Try looking at the code. When we freeze a filesystem sb->s_frozen
changes state depending on the level of freeze currently obtained
by the filesystem. And:

#define vfs_check_frozen(sb, level) \
        wait_event((sb)->s_wait_unfrozen, ((sb)->s_frozen < (level)))

Pretty bloody simple, really.

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

  reply	other threads:[~2008-07-01  6:39 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-22  3:54 freeze vs freezer Jeremy Fitzhardinge
2007-11-23 23:47 ` Rafael J. Wysocki
2007-11-26 18:44   ` Jeremy Fitzhardinge
2007-11-26 21:20     ` Rafael J. Wysocki
2007-11-26 21:17   ` David Chinner
2007-11-26 21:53     ` Rafael J. Wysocki
2007-11-27  5:38       ` Matthew Garrett
2007-11-27 17:40         ` Rafael J. Wysocki
2007-11-27 20:33           ` Kyle Moffett
2007-11-27 23:01             ` Rafael J. Wysocki
2007-11-27 22:49               ` Jeremy Fitzhardinge
2007-11-27 23:14                 ` Kyle Moffett
2007-11-27 23:32                   ` Jeremy Fitzhardinge
2008-01-02 16:02             ` Pavel Machek
2008-01-02 21:30               ` Nigel Cunningham
2008-01-02 22:04                 ` Rafael J. Wysocki
2008-01-03  9:19                   ` Nigel Cunningham
2008-01-03  9:47                     ` Oliver Neukum
2008-01-03  9:52                       ` Nigel Cunningham
2008-01-03 11:15                         ` Oliver Neukum
2008-01-03 22:06                           ` Nigel Cunningham
2008-01-04 20:54                             ` Oliver Neukum
2008-01-05  1:38                               ` Kyle Moffett
2008-01-05 21:18                               ` Pavel Machek
2008-01-05 23:01                                 ` Nigel Cunningham
2008-01-03 22:31                     ` Rafael J. Wysocki
2008-06-23  7:16             ` Pavel Machek
2008-06-23 14:00               ` Henrique de Moraes Holschuh
2008-06-24  8:08                 ` Elias Oltmanns
2008-06-26 15:09                   ` Pavel Machek
2008-06-29 22:12                     ` [xfs-masters] " Dave Chinner
2008-06-29 23:22                       ` Rafael J. Wysocki
2008-06-30  6:11                         ` Christoph Hellwig
2008-06-30 20:34                           ` Rafael J. Wysocki
2008-07-03 19:43                             ` Eric Sandeen
2008-06-30  6:29                         ` Dave Chinner
2008-06-30  6:37                           ` Jeremy Fitzhardinge
2008-06-30 12:33                             ` Dave Chinner
2008-06-30 21:00                               ` Rafael J. Wysocki
2008-06-30 22:21                                 ` Dave Chinner
2008-06-30 22:38                                   ` Rafael J. Wysocki
2008-07-01  6:38                                     ` Dave Chinner [this message]
2008-07-01 14:35                                       ` Rafael J. Wysocki
2008-07-01 15:05                                         ` Elias Oltmanns
2008-07-01 15:17                                           ` Christoph Hellwig
2008-07-01 21:15                                           ` Dave Chinner
2008-07-01 21:46                                             ` Elias Oltmanns
2008-07-01 21:12                                         ` Dave Chinner
2008-07-01 21:21                                           ` Rafael J. Wysocki
2008-07-01  8:59                             ` 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=20080701063835.GQ29319@disturbed \
    --to=david@fromorbit.com \
    --cc=dgc@sgi.com \
    --cc=eo@nebensachen.de \
    --cc=hmh@hmh.eng.br \
    --cc=jens.axboe@oracle.com \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=mrmacman_g4@mac.com \
    --cc=xfs-masters@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.