[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#329319: yaird: swsusp not all that hard



Package: yaird
Version: 0.0.11-12
Followup-For: Bug #329319

It's not all that hard to prevent log replay: just don't mount the file
systems!  Resume should happen *after* the modules required to access the
swap partition are installed (ide, piix, etc), but *before* the root
partition is mounted.  Mounting read-only is bad, too, because that causes
journal replay.  Just load the modules and transfer to the resume code,
which will take care of the rest.

The more interesting question is: how do I tell which partition I need
to resume from?  yaird needs to know this so that it can make sure the
right modules are loaded (otherwise resume will complain "device not found").
swsusp uses "resume=/dev/hda#" and suspend2 uses "resume2=swap:/dev/hda#"
on the command-line, but it would really be preferable to use a mount option
in /etc/fstab instead.  After all, yaird is good at figuring out things
like that; grub/lilo are not.

For standard swsusp, 
   cat /sys/block/hda/hda5/dev > /sys/power/resume
(for example) at initramfs-time will both initialize the 'resume=' option
(avoiding the need for a command-line argument) and also perform the
resume if appropriate.  I don't know if suspend2 has a similar mechanism.

So it should be pretty straight-forward for yaird to:
 1) look in /etc/fstab for a swap partition with the 'resume' option.
 2) add a target just before filesystem mount (MKSWAP or some such)
    which loads the modules needed to access that partition
 3) if there isn't a "noresume" or "noresume2" option on the command-line,
    performs the swsusp or suspend2-appropriate resume action.
    (or both, since only one or the other will actually work).

Everything else should be handled by the resume.
 --scott

-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.15-rc5
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages yaird depends on:
ii  cpio                         2.6-9       GNU cpio -- a program to manage ar
ii  dash                         0.5.3-1     The Debian Almquist Shell
ii  libc6                        2.3.5-8.1   GNU C Library: Shared libraries an
ii  libhtml-template-perl        2.7-1       HTML::Template : A module for usin
ii  libparse-recdescent-perl     1.94.free-1 Generates recursive-descent parser
ii  perl                         5.8.7-8     Larry Wall's Practical Extraction 

yaird recommends no packages.

-- no debconf information



Reply to: