Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 8 Apr 2002 17:05:14 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 8 Apr 2002 17:05:13 -0400 Received: from [195.39.17.254] ([195.39.17.254]:61066 "EHLO Elf.ucw.cz") by vger.kernel.org with ESMTP id ; Mon, 8 Apr 2002 17:05:11 -0400 Date: Mon, 8 Apr 2002 22:53:24 +0200 From: Pavel Machek To: Ed Sweetman Cc: alan@redhat.com, kernel list Subject: Re: Make swsusp actually work Message-ID: <20020408205324.GA13648@elf.ucw.cz> In-Reply-To: <20020407233725.GA15559@elf.ucw.cz> <1018254348.571.129.camel@psuedomode> <20020408102508.GA2494@elf.ucw.cz> <1018275683.10462.134.camel@psuedomode> <20020408150005.GC29960@atrey.karlin.mff.cuni.cz> <1018279092.10463.155.camel@psuedomode> 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! > > > the documentation suggests that you do not need to specify resume= . Is > > > this only true if you have the sysvinit patch in use? Is swapon -a > > > > Then docs is wrong. > Then you need to change this from your previous "all in one" patch. Okay, here's updated docs. Any more comments? [Alan, either copy this over your Documentation/swsusp.txt, or just ignore the issue and I'll fixed in -ac5.] Pavel >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: 2002-04-08 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