From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1764911AbXGPL7i (ORCPT ); Mon, 16 Jul 2007 07:59:38 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1764326AbXGPL7D (ORCPT ); Mon, 16 Jul 2007 07:59:03 -0400 Received: from ogre.sisk.pl ([217.79.144.158]:42363 "EHLO ogre.sisk.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1764242AbXGPL7A (ORCPT ); Mon, 16 Jul 2007 07:59:00 -0400 From: "Rafael J. Wysocki" To: david@lang.hm Subject: Re: Hibernation considerations Date: Mon, 16 Jul 2007 14:06:27 +0200 User-Agent: KMail/1.9.5 Cc: LKML , Alan Stern , Andrew Morton , "Eric W. Biederman" , "Huang, Ying" , Jeremy Maitin-Shepard , Kyle Moffett , Nigel Cunningham , Pavel Machek , pm list , Al Boldi References: <200707151433.34625.rjw@sisk.pl> <200707160122.09840.rjw@sisk.pl> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200707161406.28539.rjw@sisk.pl> Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Monday, 16 July 2007 01:49, david@lang.hm wrote: > On Mon, 16 Jul 2007, Rafael J. Wysocki wrote: > > > On Monday, 16 July 2007 00:42, david@lang.hm wrote: > >> On Mon, 16 Jul 2007, Rafael J. Wysocki wrote: > >> > >>> On Sunday, 15 July 2007 22:13, david@lang.hm wrote: > >>>> On Sun, 15 Jul 2007, Rafael J. Wysocki wrote: > >>>> > >>>>> The ACPI specification requires us to invoke some global ACPI methods > >>>>> during the hibernation and during the restore. Moreover, the ordering of > >>>>> code related to these ACPI methods may not be arbitrary (eg. some of > >>>>> them have to be executed after devices are put into low power states etc.). > >>>> > >>>> for a pure hibernate mode, you will be powering off the box after saving > >>>> the suspend image. why are there any special ACPI modes involved? > >>> > >>> Because, for example, on my machine the status of power supply (present > >>> vs not present) is not updated correctly after the restore if ACPI callbacks > >>> aren't used during the hibernation. That's just experience and it's in line > >>> with the ACPI spec. > >> > >> so if a machine is actually powered off the /dev/suspend process won't > >> work? > > > > No, it sort of works as usual, but after the restore the platform is not in the > > correct state. > > this is not hibernate as I and many others are thinking of it. > > hibernate as we are thinking would work on basicly any hardware, including > things with no ACPI or power savings support. and the system could be in > hibernate mode for any time period. > > for that matter, after a system is put into hibernate mode the system > could be completely disassembled and any components replaced and the > system would work after a resume (assuming you still have access to the > suspend image) Well, this is not how ACPI defines the S4 sleep state. If the system is in S4, that corresponds to our hibernation, you are _not_ allowed to disassemble it. I've just done an experiment on my test desktop. I had enabled suspend support in the CMOS setup and afterwards I made Linux hibernate in the "platform" mode. Then, when the system was powred on, the BIOS showed me a nice "Resume from hibernation" screen that is not normally displayed during boot. This clearly means that some information has been preserved by the platform across the hibernate/restore cycle. We are supposed to handle that. Greetngs, Rafael -- "Premature optimization is the root of all evil." - Donald Knuth