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

Alan Stern
2007-09-21T19:45:06Z

On Fri, 21 Sep 2007, Rafael J. Wysocki wrote:

> > > 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.
> >
> > Suppose that instead of using ACPI S4 state at all, you instead just
> > power off. Yes, you'll lose wakeup event functionality, and flashy
> > LEDs, but doesn't this take care of the problem?
>
> Nope.
>
> > The firmware shouldn't see the hibernate as anything other than a shutdown
> > and reboot.
>
> Actually, this assumption is apparently wrong.

One gets the impression that the hibernation image includes a memory
area used by the firmware. That could explain why devices need to be
in a low-power state when the image is created -- so that when the
image is restored, the firmware doesn't get confused about the device
states.

It would also explain why the firmware sees
resume-from-power-off-hibernation as different from a regular reboot:
because its data area gets overwritten as part of the resume.

In reality it's probably more complicated than this, with weird
interactions between the firmware and the various ACPI methods.
Nevertheless, the main idea seems valid.

Alan Stern