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

Rafael J. Wysocki
2007-09-21T20:15:25Z

On Friday, 21 September 2007 21:45, Alan Stern wrote:
> 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.

I guess so, but I'm not sure.

The ACPI NVS area is explicitly marked as reserved and we don't save it.
On x86_64 we don't save any memory areas marked as reserved and yet the above
happens.

Greetings,
Rafael