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.
next prev parent 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