Hi.
On Friday 21 September 2007 12:45:57 Huang, Ying wrote:
quoted text > On Fri, 2007-09-21 at 12:25 +1000, Nigel Cunningham wrote:
> > Hi.
> >
> > On Friday 21 September 2007 12:18:57 Huang, Ying wrote:
> > > > That's not true. Kexec will itself be an implementation, otherwise
you'd
quoted text > > end
> > > > up with people screaming about no hibernation support. And it won't
result
quoted text > > in
> > > > the complete removal of the existing hibernation code from the kernel.
At
quoted text > > the
> > > > very least, it's going to want the kernel being hibernated to have an
> > > > interface by which it can find out which pages need to be saved. I
> > wouldn't
> > >
> > > This has been done by kexec/kdump guys. There is a makedumpfile utility
> > > and vmcoreinfo kernel mechanism to implement this. We can just reuse the
> > > work of kexec/kdump.
> >
> > You've already said that you are currently saving all pages. How are you
going
quoted text > > to avoid saving free pages if you don't get the information from the
kernel
quoted text > > being saved? This will require more than just code reuse.
>
> I have not tried "makedumpfile". The "makedumpfile" avoids saving free
> pages through checking the "mem_map" of the original kernel. I think
> there is nothing prevent it been used for kexec based hibernation image
> writing.
>
> This is an example of duplicated effort between kexec/kdump and original
> hibernation implementation. Both kexec/kdump and hibernation need to
> save memory image without saving the free pages. This can be done once
> instead of twice.
Ok.
quoted text > > > > be surprised if it also ends up with an interface in which the kernel
> > being
> > > > hibernated tells it what bdev/sectors in which to save the image as
well
quoted text > > > > (otherwise you're going to need a dedicated, otherwise untouched
partition
quoted text > > > > exclusively for the kexec'd kernel to use), or what network settings
to
quoted text > > use
> > > > if it wants to try to save the image to a network storage device. On
top
quoted text > > of
> > >
> > > These can be done in user space. The image writing will be done in user
> > > space for kexec base hibernation.
> >
> > That only complicates things more. Now you need to get the information on
> > where to save the image from the kernel being saved, then transfer it to
> > userspace after switching to the kexec kernel. That's more kernel code,
not
quoted text > > less.
>
> This is fairly simple in fact. For example, you can specify the
> bdev/sectors in kernel command line when do kexec load "kexec -l <...>
> --append='...'", then the image writing system can get it through
> "cat /proc/cmdline".
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).
Andrew, you're seeing that it really doesn't mean the removal of all
hibernation code from the kernel being suspended, aren't you? (And if the
kexec'd kernel is the same binary, then there's more code again).
Regards,
Nigel
--
See
http://www.tuxonice.net for Howtos, FAQs, mailing
lists, wiki and bugzilla info.
-
unsubscribe notice To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html
Please read the FAQ at
http://www.tux.org/lkml/
Messages in current thread:
Re: [RFC][PATCH 1/2 -mm] kexec based hibernation -v3: kexec ... , Nigel Cunningham , (Thu Sep 20, 10:58 pm)