Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Sun, 7 Apr 2002 07:52:06 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Sun, 7 Apr 2002 07:52:04 -0400 Received: from [195.39.17.254] ([195.39.17.254]:7050 "EHLO Elf.ucw.cz") by vger.kernel.org with ESMTP id ; Sun, 7 Apr 2002 07:52:03 -0400 Date: Sun, 7 Apr 2002 13:50:41 +0200 From: Pavel Machek To: CaT Cc: Alan Cox , linux-kernel@vger.kernel.org Subject: [swsusp fixes] Re: Linux 2.4.19pre5-ac3 Message-ID: <20020407115041.GA32260@elf.ucw.cz> In-Reply-To: <20020406010402.GX550@zip.com.au> <200204060109.g36199g10373@devserv.devel.redhat.com> <20020406011206.GY550@zip.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.3.28i X-Warning: Reading this can be dangerous to your mental health. Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hi! > > > Would love to but unless I mis-grepped it is not in the patch... Wanted > > > to find out if it plays nice with ext3 now. :) > > > > Its there ok > > Including Documentation/swsusp.txt? Cos I can't see it in the patch. > Just references to it. Here it is, please apply. Included is trivial fix to make it survive boot. I'm still investigating why it crashes on suspend. Pavel --- linux-ac.clean/Documentation/swsusp.txt Tue Jan 29 12:16:13 2002 +++ linux-swsusp.24/Documentation/swsusp.txt Sun Apr 7 11:42:03 2002 @@ -0,0 +1,168 @@ +From kernel/suspend.c: + + * BIG FAT WARNING ********************************************************* + * + * If you have unsupported (*) devices using DMA... + * ...say goodbye to your data. + * + * If you touch anything on disk between suspend and resume... + * ...kiss your data goodbye. + * + * If your disk driver does not support suspend... (IDE does) + * ...you'd better find out how to get along + * without your data. + * + * (*) pm interface support is needed to make it safe. + +You need to append resume=/dev/your_swap_partition to kernel command +line. Then you suspend by echo 4 > /proc/acpi/sleep. + +[Notice. Rest docs is pretty outdated (see date!) It should be safe to +use swsusp on ext3/reiserfs these days.] + + +Article about goals and implementation of Software Suspend for Linux +Author: G?bor Kuti +Last revised: Jan 23rd, 2000 + +Idea and goals to achieve + +Nowadays it is common in several laptops that they have a suspend button. It +saves the state of the machine to a filesystem or to a partition and switches +to standby mode. Later resuming the machine the saved state is loaded back to +ram and the machine can continue its work. It has two real benefits. First we +save ourselves the time machine goes down and later boots up, energy costs +real high when running from batteries. The other gain is that we don't have to +interrupt our programs so processes that are calculating something for a long +time shouldn't need to be written interruptible. + +On desk machines the power saving function isn't as important as it is in +laptops but we really may benefit from the second one. Nowadays the number of +desk machines supporting suspend function in their APM is going up but there +are (and there will still be for a long time) machines that don't even support +APM of any kind. On the other hand it is reported that using APM's suspend +some irqs (e.g. ATA disk irq) is lost and it is annoying for the user until +the Linux kernel resets the device. + +So I started thinking about implementing Software Suspend which doesn't need +any APM support and - since it uses pretty near only high-level routines - is +supposed to be architecture independent code. + +Using the code + +The code is experimental right now - testers, extra eyes are welcome. To +compile this support into the kernel, you need CONFIG_EXPERIMENTAL, +and then CONFIG_SOFTWARE_SUSPEND in menu General Setup to be enabled. It +cannot be used as a module and I don't think it will ever be needed. + +You have two ways to use this code. The first one is if you've compiled in +sysrq support then you may press Sysrq-D to request suspend. The other way +is with a patched SysVinit (my patch is against 2.76 and available at my +home page). You might call 'swsusp' or 'shutdown -z