From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: david@lang.hm
Cc: "Huang, Ying" <ying.huang@intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
Pavel Machek <pavel@ucw.cz>,
nigel@nigel.suspend2.net, Jeremy Maitin-Shepard <jbms@cmu.edu>,
linux-kernel@vger.kernel.org,
linux-pm@lists.linux-foundation.org
Subject: Re: [PATCH 0/2] Kexec jump: The first step to kexec base hibernation
Date: Thu, 12 Jul 2007 21:34:28 +0200 [thread overview]
Message-ID: <200707122134.29991.rjw@sisk.pl> (raw)
In-Reply-To: <Pine.LNX.4.64.0707121150460.25614@asgard.lang.hm>
On Thursday, 12 July 2007 20:57, david@lang.hm wrote:
> On Thu, 12 Jul 2007, Rafael J. Wysocki wrote:
>
> >>> I didn't understand the ACPI problem. Does this mean that CONFIG_ACPI must
> >>> be disabled in the to-be-hibernated kernel, or in the little transient
> >>> kexec kernel?
> >>
> >> Under current implementation of device state quiescent/save/restore, the
> >> CONFIG_ACPI must be turned off both in to-be-hibernated kernel and
> >> transient kexec kernel.
> >>
> >> But the hibernation people are going to separate the device suspend from
> >> device hibernate. The device hibernate will put device in quiescent
> >> state but not in low power state. When this is done, it is not necessary
> >> to disable CONFIG_ACPI at all. It is just a workaround for current
> >> implementation that disabling CONFIG_ACPI.
> >>
> >>> How close do you think all this is to being a viable thing?
> >>
> >> The kexec jump is the first step, maybe the simplest step. There are
> >> many other issues to be resolved, at least the following ones.
> >>
> >> 1. Separate device suspend from device hibernate.
> >
> > Step 0, I'd say. :-)
>
> is there more involved then just start ignoreing device hibernate and just
> useing the device suspend? (although if there is not a workable device
> suspend for a driver, that would answer my question :-)
There's more to it, though. If devices are suspended, the hibernation kernel
will have to resume them (using platform, like ACPI, callbacks in the process)
instead and that will get complicated.
It's better if devices are quiesced, or even shut down, before we call the
hibernation kernel.
> >> 2. Do not reserve memory for kexec kernel. That is, backup needed memory
> >> before kexec and restore them after kexec.
> >
> > I don't think this is very important initially.
>
> I agree, a stipped down hibernate kernel can be very small, not allocating
> this memory until it's needed is a step for the final polishing.
I'm not sure if I agree with that. In any case, having to use two different
kernels for hibernation would be a big drawback.
> >> 3. Support the in-place kexec? The relocatable kernel is not necessary
> >> if this can be implemented.
> >> 4. Image writing/reading. (Only user space application is needed).
> >
> > And a kernel interface for that application.
>
> I do't understand this statement, this application is just useing the
> standard kernel interfaces (block devices to read/write to disk, network
> devices to read/write to a server, etc). no new interfaces needed.
Yes, but it will have to know _what_ to save, no?
Plus we need to figure out how to avoid corrupting filesystems and swap in use
by the "old" kernel and its processes (hint: a separate "hibernation partition"
is a no-go).
> >> 5. A smooth resume process. Maybe it is not needed to kexec a new kernel
> >> for resume. For example, in the first stage of kernel boot, just first
> >> 16M (or a little more) RAM is used, if the resume image is found, the
> >> saved kernel image is resumed; if the resume image is not found, turn on
> >> the remaining RAM. This will depends on 3.
> >
> > I think that this is the most difficult part of the whole thing.
>
> don't try to get too fancy right now. stick with a simple 'boot hibernate
> kernel, it's userspace looks for an image to resume, and if it doesn't
> find one reboot to the normal system'
>
> I don't know how to do this with grub, but it would be a trivial shell
> script with lilo
I think it's most portable to use initrd for that, which already makes things
complicated. Then, we'll have to load the image and jump to the hibernated
kernel in such a way that it would be able to continue from where it stopped
before. I don't think that is trivial.
> >> 6. Reduce the boot-up time of kexec kernel. Maybe the kexec kernel can
> >> be hibernate/resume by the normal kernel too. This way, a real
> >> kexec/boot-up is only needed for the first time.
> >
> > I'm not sure what you mean.
>
> he's trying to get fancy again, the best way to speed up the boot of the
> kexec kernel is make it smaller and avoid probing for devices (hotplug
> should NOT be used for normal suspend situations)
Still, I believe that we should do our best to use only one kernel (meaning one
kernel image) here.
Greetings,
Rafael
--
"Premature optimization is the root of all evil." - Donald Knuth
next prev parent reply other threads:[~2007-07-12 19:27 UTC|newest]
Thread overview: 125+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-11 15:30 Huang, Ying
2007-07-11 11:13 ` Pavel Machek
2007-07-12 16:28 ` Huang, Ying
2007-07-12 8:54 ` Pavel Machek
2007-07-13 23:18 ` Huang, Ying
2007-07-12 0:22 ` Andrew Morton
2007-07-12 5:48 ` Jeremy Fitzhardinge
2007-07-12 6:43 ` david
2007-07-12 12:46 ` Rafael J. Wysocki
2007-07-12 13:51 ` Mark Lord
2007-07-12 14:49 ` Pavel Machek
2007-07-12 15:35 ` Rafael J. Wysocki
2007-07-12 16:03 ` Mark Lord
2007-07-12 16:35 ` Mark Lord
2007-07-12 20:05 ` Jeremy Maitin-Shepard
2007-07-13 2:38 ` Mark Lord
2007-07-12 16:09 ` [linux-pm] " Alan Stern
2007-07-12 18:49 ` david
2007-07-12 18:42 ` david
2007-07-12 19:20 ` Rafael J. Wysocki
2007-07-12 19:14 ` david
2007-07-12 19:45 ` Rafael J. Wysocki
2007-07-12 17:09 ` Huang, Ying
2007-07-12 12:47 ` Rafael J. Wysocki
2007-07-12 12:38 ` Rafael J. Wysocki
2007-07-12 14:43 ` Huang, Ying
2007-07-12 7:03 ` david
2007-07-12 17:18 ` Huang, Ying
2007-07-12 10:10 ` david
2007-07-12 13:01 ` Rafael J. Wysocki
2007-07-12 13:22 ` jimmy bahuleyan
2007-07-12 19:03 ` david
2007-07-12 13:55 ` Mark Lord
2007-07-12 19:05 ` david
2007-07-12 14:06 ` Pavel Machek
2007-07-12 12:53 ` Rafael J. Wysocki
2007-07-12 18:57 ` david
2007-07-12 19:34 ` Rafael J. Wysocki [this message]
2007-07-12 19:55 ` Jeremy Maitin-Shepard
2007-07-12 20:45 ` Rafael J. Wysocki
2007-07-13 3:12 ` david
2007-07-13 9:17 ` Rafael J. Wysocki
2007-07-13 9:25 ` david
2007-07-13 11:41 ` Rafael J. Wysocki
2007-07-14 7:51 ` david
2007-07-14 8:33 ` david
2007-07-14 9:24 ` Rafael J. Wysocki
2007-07-14 20:00 ` Rafael J. Wysocki
2007-07-14 20:34 ` david
2007-07-14 21:06 ` Rafael J. Wysocki
2007-07-14 21:13 ` david
2007-07-15 10:31 ` Rafael J. Wysocki
2007-07-15 19:23 ` david
2007-07-15 22:59 ` Rafael J. Wysocki
2007-07-15 23:22 ` david
2007-07-16 12:17 ` Rafael J. Wysocki
2007-07-16 14:42 ` Huang, Ying
2007-07-16 15:40 ` Rafael J. Wysocki
2007-07-17 4:18 ` david
2007-07-17 11:46 ` Rafael J. Wysocki
2007-07-14 21:34 ` david
2007-07-15 10:39 ` Rafael J. Wysocki
2007-07-15 19:33 ` david
2007-07-15 23:11 ` Rafael J. Wysocki
2007-07-15 23:33 ` david
2007-07-13 3:06 ` david
2007-07-13 5:42 ` Hibernating To Swap Considered Harmful Joseph Fannin
2007-07-13 5:57 ` david
2007-07-13 6:20 ` Joseph Fannin
2007-07-13 6:27 ` david
2007-07-13 7:15 ` Joseph Fannin
2007-07-13 14:35 ` Jeremy Maitin-Shepard
2007-07-17 0:12 ` Joseph Fannin
2007-07-17 5:44 ` Oliver Neukum
2007-07-17 6:28 ` Joseph Fannin
2007-07-17 6:42 ` david
2007-07-17 7:26 ` Joseph Fannin
2007-07-17 7:34 ` david
2007-07-17 11:54 ` Rafael J. Wysocki
2007-07-17 11:52 ` Rafael J. Wysocki
2007-07-17 7:10 ` Oliver Neukum
2007-07-13 9:30 ` Rafael J. Wysocki
2007-07-14 0:45 ` Joseph Fannin
2007-07-14 9:48 ` Rafael J. Wysocki
2007-07-16 5:37 ` Joseph Fannin
2007-07-13 9:29 ` [PATCH 0/2] Kexec jump: The first step to kexec base hibernation Rafael J. Wysocki
2007-07-13 9:38 ` david
2007-07-13 11:59 ` Rafael J. Wysocki
2007-07-13 14:37 ` [linux-pm] " Alan Stern
2007-07-13 15:31 ` Rafael J. Wysocki
2007-07-14 7:13 ` david
2007-07-13 15:12 ` Jeremy Maitin-Shepard
2007-07-13 15:45 ` Rafael J. Wysocki
2007-07-13 15:50 ` Alan Stern
2007-07-13 16:54 ` Eric W. Biederman
2007-07-13 18:15 ` Alan Stern
2007-07-13 21:08 ` Rafael J. Wysocki
2007-07-13 20:55 ` Rafael J. Wysocki
2007-07-13 16:48 ` Jeremy Maitin-Shepard
2007-07-13 21:23 ` Rafael J. Wysocki
2007-07-14 7:12 ` david
2007-07-13 17:32 ` Huang, Ying
2007-07-13 12:01 ` Rafael J. Wysocki
2007-07-12 16:32 ` Eric W. Biederman
2007-07-12 19:09 ` david
2007-07-12 19:49 ` Eric W. Biederman
2007-07-13 23:15 ` Huang, Ying
2007-07-13 16:43 ` Eric W. Biederman
2007-07-14 5:48 ` Huang, Ying
2007-07-14 9:59 ` Rafael J. Wysocki
2007-07-14 10:55 ` Huang, Ying
2007-07-14 19:16 ` Rafael J. Wysocki
2007-07-15 9:30 ` Huang, Ying
2007-07-15 10:49 ` Rafael J. Wysocki
2007-07-24 14:00 ` Huang, Ying
2007-07-24 15:27 ` Rafael J. Wysocki
2007-07-17 8:13 ` david
2007-07-17 11:59 ` Rafael J. Wysocki
2007-07-17 12:48 ` Huang, Ying
2007-07-17 14:22 ` Rafael J. Wysocki
2007-07-18 0:25 ` david
2007-07-13 5:08 [PATCH 0/2] Kexec jump: The first step to kexec base Al Boldi
2007-07-13 15:28 ` [PATCH 0/2] Kexec jump: The first step to kexec base hibernation Al Boldi
2007-07-13 15:50 ` Rafael J. Wysocki
2007-07-14 6:07 ` Al Boldi
2007-07-13 15:28 ` Al Boldi
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=200707122134.29991.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=akpm@linux-foundation.org \
--cc=david@lang.hm \
--cc=jbms@cmu.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=nigel@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
all inboxes | Powered by JetHome®