Re: [linux-pm] [PATCH -mm 2/2] kexec jump -v11: save/restoredevice state

From: Huang, Ying
Date: Wed Jun 11 2008 - 05:44:11 EST


On Wed, 2008-06-11 at 04:21 -0400, Len Brown wrote:
> On Wed, 11 Jun 2008, Huang, Ying wrote:
> > On Tue, 2008-06-10 at 14:01 -0400, Len Brown wrote:
> > >
> > > On Tue, 10 Jun 2008, Huang, Ying wrote:
> > >
> > > > This patch implements devices state save/restore before after kexec.
> > > >
> > > >
> > > > This patch together with features in kexec_jump patch can be used for
> > > > following:
> > > >
> > > > - A simple hibernation implementation without ACPI support. You can
> > > > kexec a hibernating kernel, save the memory image of original system
> > > > and shutdown the system. When resuming, you restore the memory image
> > > > of original system via ordinary kexec load then jump back.
> > >
> > > What part of ACPI's role in hibernation are you trying to avoid
> > > 1. enabling wake devices
> > > 2. removing power from the system
> > > 3. something else?
> >
> > ACPI S5 is used instead of S4 for this simple hibernation
> > implementation. That is, before creating the hibernation image, the ACPI
> > _PTS is not executed, devices are not put into low power state and wake
> > devices are not enabled. After creating the hibernation image, the image
> > is saved to disk and system is shutdown (go to S5). When resuming from
> > hibernated image, ACPI _BFS and _WAK are not executed too.
>
> Doesn't that resume the devices and their drivers into an unknown state?

device_suspend(PMSG_FREEZE) and device_power_down(PMSG_FREEZE) are
called before hibernation; device_power_up(PMSG_RESTORE) and
device_resume(PMSG_RESTORE) are called after restore. The new
hibernation/restore device driver callbacks introduced by Rafael is
used. So I think the device/driver state will be saved/restored
properly.

It is planed to support ACPI S4 in the future. But I think a hibernation
scheme without ACPI may be useful in some situation too.

Best Regards,
Huang Ying

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/