Re: Re: [RFC][PATCH 1/2 -mm] kexec based hibernation -v3: kexec jump

Rafael J. Wysocki
2007-09-21T14:31:18Z

On Friday, 21 September 2007 15:14, huang ying wrote:
> On 9/21/07, Rafael J. Wysocki <rjw@sisk.pl> wrote:
> > On Friday, 21 September 2007 05:33, Eric W. Biederman wrote:
> > > Nigel Cunningham <nigel@nigel.suspend2.net> writes:
[--snip--]
> > >
> > > No one has yet attacked the hard problem of coming up with separate
> > > hibernate methods for drivers.
> >
> > Well, I've been playing a bit with that for some time, but it's not easy by any
> > means.
> >
> > In short, I'm seeing some problems related to the handling of ACPI that seem to
> > shatter the entire idea of having separate hibernate methods, at least as far
> > as ACPI systems are concerned.
>
> So sadly to hear this. Can you details it a little? Or a link?

Well, the problem is that apparently some systems (eg. my HP nx6325) expect us
to execute the _PTS ACPI global control method before creating the image _and_
to execute acpi_enter_sleep_state(ACPI_STATE_S4) in order to finally put the
system into the sleep state. In particular, on nx6325, if we don't do that,
then after the restore the status of the AC power will not be reported
correctly (and if you replace the battery while in the sleep state, the
battery status will not be updated correctly after the restore). Similar
issues have been reported for other machines.

Now, the ACPI specification requires us to put devices into low power states
before executing _PTS and that's exactly what we're doing before a suspend to
RAM. Thus, it seems that in general we need to do the same for hibernation on
ACPI systems.

Greetings,
Rafael