public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Nigel Cunningham <nigel@nigel.suspend2.net>
To: Joseph Fannin <jfannin@gmail.com>
Cc: Pavel Machek <pavel@ucw.cz>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	nigel@suspend2.net, "Huang, Ying" <ying.huang@intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Jeremy Maitin-Shepard <jbms@cmu.edu>,
	linux-kernel@vger.kernel.org,
	linux-pm@lists.linux-foundation.org,
	Kexec Mailing List <kexec@lists.infradead.org>
Subject: Re: [RFC][PATCH 1/2 -mm] kexec based hibernation -v3: kexec jump
Date: Thu, 27 Sep 2007 06:52:57 +1000	[thread overview]
Message-ID: <200709270652.58205.nigel@nigel.suspend2.net> (raw)
In-Reply-To: <20070926203036.GF31759@nineveh.local>

Hi.

On Thursday 27 September 2007 06:30:36 Joseph Fannin wrote:
> On Fri, Sep 21, 2007 at 11:45:12AM +0200, Pavel Machek wrote:
> > Hi!
> > > >
> > > > Sounds doable, as long as you can cope with long command lines (which
> > > > shouldn't be a biggie). (If you've got a swapfile or parts of a swap
> > > > partition already in use, it can be quite fragmented).
> > >
> > > Hmm.  This is an interesting problem.  Sharing a swap file or a swap
> > > partition with the actual swap of user space pages does seem to be
> > > a limitation of this approach.
> > >
> > > Although the fact that it is simple to write to a separate file may
> > > be a reasonable compensation.
> >
> > I'm not sure how you'd write it to a separate file. Notice that kjump
> > kernel may not mount journalling filesystems, not even
> > read-only. (Ext3 replays journal in that case). You could pass block
> > numbers from the original kernel...
> 
>     The ext3 thing is a bug, the case for which I don't think has been
> adequately explained to the ext[34] folks.  There should be at least a
> no_replay mount flag available, or something.  It has ramifications
> for more than just hibernation.
> 
>     And yeah, I'm gonna bring up the swap files thing again.  If you
> can hibernate to a swap file, you can hibernate to a dedicated
> hibernation file, and vice versa.
> 
>     If you can't hibernate to a swap file, then swap files are
> effectively unsupported for any system you might want to hibernate.
> <handwave> I wonder what embedded folks would think about that
> </handwave>.
> 
>     But, in my ignorance, I'm not sure even fixing the ext3 bug will
> guarantee you consistent metadata so that you can handle a
> swap/hibernate file.  You can do a sync(), but how do you make that
> not race against running processes without the freezer, or blkdev
> snapshots?
> 
>     I guess uswsusp and the-patch-previously-known-as-suspend2 handle
> this somehow, though.
> 
>    (It's that same ignorance that has me waiting for someone with
> established credit with kernel people to make that argument for the
> ext3 bug, so I can hang my own reasons for thinking that it's bad off
> of theirs).

I haven't looked at swsusp support, but TuxOnIce handles all storage (swap 
partitions, swap files and ordinary files) by first allocating swap (if we're 
using swap), then bmapping the storage we're going to use. After that, we can 
freeze filesystems and processes with impunity. The allocated storage is then 
viewed as just a collection of bdevs, each with an ordered chain of extents 
defining which blocks we're going to read/write - a series of tapes if you 
like. In the image header, we store dev_ts and the block chains, together 
with the configuration information. As long as the same bdevs are configured 
at boot time prior to the echo > /sys/power/resume, we're in business. 
Filesystems don't need to be mounted because we don't use filesystem code 
anyway. (LVM etc does though in so far as it's needed to make the dev_t match 
the device again).

This matches with what you said above about hibernating to swap files and 
dedicated hibernation files - TuxOnIce uses exactly the same code to do the 
i/o to both; the variation is in the code to recognise the image header and 
allocate/free/bmap storage.

<not a filesystem expert> Personally, I don't think ext[34] is broken. If 
there's data being left in the journal that will need replaying, then 
mounting without replaying the journal sounds wrong. Perhaps you should 
instead be arguing that nothing should be left in the journal after a 
filesystem freeze. But, of course, current code isn't doing a filesystem 
freeze (just a process freeze) and the kexec guys want to take even that 
away. </not a filesystem expert>

In short, I agree. AFAICS, you need both the process freezer and filesystem 
freezing to make this thing fly properly.

Nigel
-- 
See http://www.tuxonice.net for Howtos, FAQs, mailing
lists, wiki and bugzilla info.

  reply	other threads:[~2007-09-26 20:53 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-09-20  5:34 [RFC][PATCH 1/2 -mm] kexec based hibernation -v3: kexec jump Huang, Ying
2007-09-20 10:09 ` Pavel Machek
2007-09-21  0:24   ` Nigel Cunningham
2007-09-21  1:06     ` Andrew Morton
2007-09-21  1:19       ` Nigel Cunningham
2007-09-21  1:41         ` Andrew Morton
2007-09-21  1:57           ` Nigel Cunningham
2007-09-21  2:18             ` Huang, Ying
2007-09-21  2:25               ` Nigel Cunningham
2007-09-21  2:45                 ` Huang, Ying
2007-09-21  2:58                   ` Nigel Cunningham
2007-09-21  4:46                     ` Eric W. Biederman
2007-09-21  9:45                       ` Pavel Machek
2007-09-26 20:30                         ` Joseph Fannin
2007-09-26 20:52                           ` Nigel Cunningham [this message]
2007-09-27  6:33                           ` Huang, Ying
2007-09-27  6:35                             ` Nigel Cunningham
2007-09-22 22:02                   ` Alon Bar-Lev
2007-09-21  3:33             ` Eric W. Biederman
2007-09-21 12:09               ` [linux-pm] " Rafael J. Wysocki
2007-09-21 13:14                 ` huang ying
2007-09-21 14:31                   ` Rafael J. Wysocki
2007-09-21 15:02                     ` huang ying
2007-09-21 15:50                       ` Rafael J. Wysocki
2007-09-21 18:11                     ` Jeremy Maitin-Shepard
2007-09-21 19:00                       ` Rafael J. Wysocki
2007-09-21 19:45                         ` Alan Stern
2007-09-21 20:15                           ` Rafael J. Wysocki
2007-09-21 20:26                             ` Jeremy Maitin-Shepard
2007-09-21 20:53                               ` Rafael J. Wysocki
2007-09-21 21:08                                 ` Jeremy Maitin-Shepard
2007-09-21 21:25                                   ` Rafael J. Wysocki
2007-09-21 21:16                                     ` Jeremy Maitin-Shepard
2007-09-21 23:19                                       ` Kyle Moffett
2007-09-21 23:47                                         ` Nigel Cunningham
2007-09-22 10:40                                           ` Rafael J. Wysocki
2007-10-11 20:54                                             ` Pavel Machek
2007-10-24 20:38                                               ` Rafael J. Wysocki
2007-09-22 10:34                                         ` Rafael J. Wysocki
2007-09-22 18:00                                           ` Kyle Moffett
2007-09-22 21:51                                             ` Rafael J. Wysocki
2007-09-26 20:52                                               ` Joseph Fannin
2007-09-21  4:16             ` Andrew Morton
2007-09-21 11:56           ` Rafael J. Wysocki
2007-09-21 11:58             ` Nigel Cunningham
2007-09-21 12:18               ` Rafael J. Wysocki
2007-09-21 12:15                 ` Nigel Cunningham
2007-09-21 13:25             ` huang ying
2007-09-24 17:37       ` Thomas Meyer
2007-09-21  9:49     ` Pavel Machek
2007-09-21 12:10       ` [linux-pm] " Rafael J. Wysocki
2007-09-21  2:55 ` Eric W. Biederman
2007-09-21  7:27   ` Huang, Ying
2007-09-21  4:01 ` Eric W. Biederman
2007-09-21  8:42   ` Huang, Ying

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=200709270652.58205.nigel@nigel.suspend2.net \
    --to=nigel@nigel.suspend2.net \
    --cc=akpm@linux-foundation.org \
    --cc=ebiederm@xmission.com \
    --cc=jbms@cmu.edu \
    --cc=jfannin@gmail.com \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=nigel@suspend2.net \
    --cc=pavel@ucw.cz \
    --cc=ying.huang@intel.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