Re: Hibernation considerations

david
2007-07-17T04:45:23Z

On Mon, 16 Jul 2007, Alan Stern wrote:

> On Sun, 15 Jul 2007 david@lang.hm wrote:
>
>> then we need a third mode of operation.
>>
>> mode 1: Suspend-to-ram
>>
>> the system is paused and put into a low-power mode but data remains in
>> memory and the system stays awake enough to keep the memory refreshed.
>>
>> mode 2: new
>>
>> the system is paused, data is stored to permanent media, and the system
>> is put into a ultra-low power mode.
>>
>> mode 3: hibernate
>>
>> the system is paused, data is stored to permanent media, and the system
>> is powered off
>>
>> with mode 3 there are no requirements or limitations about what can be
>> done with the hardware before a resume (the resume could even take place
>> on a different piece of identical hardware)
>>
>> mode 2 could be what you are talking about doing, although I don't see any
>> advantage of creating it in additon to mode 3, it doesn't use any less
>> power and it locks the system so that it can't be used for anything else
>> in the meantime. I guess if it was significantly faster to do then mode 3
>> there may be _some_ reason to consider it, but I don't see the speed
>> difference.
>
> Part of the problem here is that ACPI already has its own terminology,
> and you're trying to invent a new one instead of using the existing
> one.
>
> I agree, it would be good to have a non-ACPI-specific hibernation mode,
> something which would look to ACPI like a normal shutdown. But I'm not
> so sure this is possible.

why would it not be possible?

> You have to understand that the ACPI spec is weird and complex. The
> mere fact that you have written a system image to disk changes the way
> ACPI regards the shutdown procedure. Even though you may treat all the
> devices and the rest of the hardware exactly the same, it's a different
> operation as far as ACPI is concerned, with different requirements.
>
> Yes, it's bizarre. Why do you think so many people have complained so
> vehemently about ACPI for all these years?

so let's act as if ACPI doesn't exist and make a suspend-to-disk that
works without it and looks to ACPI like a complete power off/on cycle (but
looks to the user like a suspend/resume cycle)

this should avoid all the headaches about ACPI completely becouse you just
don't make any ACPI calls at all.

this will also work on any type of system, and it will work in the
presence of dead batteries, failed components, booting other OS's, moveing
the image to different hardware, etc.

I can't think of anything much more frustrating then thinking that I
suspended a system and then discovering that becouse the battery went dead
(a complete power loss) that the system wouldn't boot up properly. to me
this would be a fairly common condition (when I'm mobile I use the machine
until I am out of battery, then stop and it may be a long time (days)
before I can charge the thing up again) this would not be a reliable
suspend as far as I'm concerned.

for suspend-to-ram you have to worry about ACPI states and what you are
doing with them, for suspend-to-disk you can ignore them and completely
power the system off instead.

David Lang