From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Pavel Machek <pavel@ucw.cz>
Cc: Andrew Morton <akpm@osdl.org>, LKML <linux-kernel@vger.kernel.org>
Subject: [PATCH -mm 6/6] swsusp: Document support for swap files
Date: Wed, 20 Sep 2006 22:01:08 +0200 [thread overview]
Message-ID: <200609202201.08918.rjw@sisk.pl> (raw)
In-Reply-To: <200609202120.58082.rjw@sisk.pl>
Document the "resume_offset=" command line parameter as well as the way in
which swap files are supported by swsusp.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
Documentation/kernel-parameters.txt | 6 +++
Documentation/power/swsusp-and-swap-files.txt | 46 ++++++++++++++++++++++++++
Documentation/power/swsusp.txt | 20 +++--------
3 files changed, 58 insertions(+), 14 deletions(-)
Index: linux-2.6.18-rc7-mm1/Documentation/kernel-parameters.txt
===================================================================
--- linux-2.6.18-rc7-mm1.orig/Documentation/kernel-parameters.txt
+++ linux-2.6.18-rc7-mm1/Documentation/kernel-parameters.txt
@@ -1370,6 +1370,12 @@ and is between 256 and 4096 characters.
resume= [SWSUSP]
Specify the partition device for software suspend
+ resume_offset= [SWSUSP]
+ Specify the offset from the beginning of the partition
+ given by "resume=" at which the swap header is located,
+ in <PAGE_SIZE> units (needed only for swap files).
+ See Documentation/power/swsusp-and-swap-files.txt
+
rhash_entries= [KNL,NET]
Set number of hash buckets for route cache
Index: linux-2.6.18-rc7-mm1/Documentation/power/swsusp-and-swap-files.txt
===================================================================
--- /dev/null
+++ linux-2.6.18-rc7-mm1/Documentation/power/swsusp-and-swap-files.txt
@@ -0,0 +1,46 @@
+Using swap files with software suspend (swsusp)
+ (C) 2006 Rafael J. Wysocki <rjw@sisk.pl>
+
+The Linux kernel handles swap files almost in the same way as it handles swap
+partitions and there are only two differences between these two types of swap
+areas:
+(1) swap files need not be contiguous,
+(2) the header of a swap file is not in the first block of the partition that
+holds it. From the swsusp's point of view (1) is not a problem, because it is
+already taken care of by the swap-handling code, but (2) has to be taken into
+consideration.
+
+In principle the location of a swap file's header may be determined with the
+help of appropriate filesystem driver. Unfortunately, however, it requires the
+filesystem holding the swap file to be mounted, and if this filesystem is
+journaled, it cannot be mounted during resume from disk. For this reason to
+identify a swap file swsusp uses the name of the partition that holds the file
+and the offset from the beginning of the partition at which the swap file's
+header is located. For convenience, this offset is expressed in <PAGE_SIZE>
+units.
+
+In order to use a swap file with swsusp, you need to:
+
+1) Create the swap file and make it active, eg.
+
+# dd if=/dev/zero of=<swap_file_path> bs=1024 count=<swap_file_size_in_k>
+# mkswap <swap_file_path>
+# swapon <swap_file_path>
+
+Then, the kernel will place the following line in the dmesg:
+
+Adding <swap_file_size_in_k - 1>k swap on <swap_file_path>. Priority:-2 extents:<nr_extents> across:<span_in_k>k offset:<swap_file_offset>
+
+where <nr_extents>, <span_in_k>, <swap_file_offset> are numbers that describe
+the swap file configuration. The last one, <swap_file_offset>, is needed by
+swsusp.
+
+2) Add the following parameters to the kernel command line:
+
+resume=<swap_file_partition> resume_offset=<swap_file_offset>
+
+where <swap_file_partition> is the partition on which the swap file is located.
+
+Now, swsusp will use the swap file in the same way in which it would use a swap
+partition. [Of course this means that the resume from a swap file cannot be
+initiated from whithin an initrd of initramfs image.]
Index: linux-2.6.18-rc7-mm1/Documentation/power/swsusp.txt
===================================================================
--- linux-2.6.18-rc7-mm1.orig/Documentation/power/swsusp.txt
+++ linux-2.6.18-rc7-mm1/Documentation/power/swsusp.txt
@@ -297,20 +297,12 @@ system is shut down or suspended. Additi
suspend image to prevent sensitive data from being stolen after
resume.
-Q: Why can't we suspend to a swap file?
+Q: Can I suspend to a swap file?
-A: Because accessing swap file needs the filesystem mounted, and
-filesystem might do something wrong (like replaying the journal)
-during mount.
-
-There are few ways to get that fixed:
-
-1) Probably could be solved by modifying every filesystem to support
-some kind of "really read-only!" option. Patches welcome.
-
-2) suspend2 gets around that by storing absolute positions in on-disk
-image (and blocksize), with resume parameter pointing directly to
-suspend header.
+A: Generally, yes, you can. However, it requires you to use the "resume=" and
+"resume_offset=" kernel command line parameters, so the resume from a swap file
+cannot be initiated from an initrd or initramfs image. See
+swsusp-and-swap-files.txt for details.
Q: Is there a maximum system RAM size that is supported by swsusp?
next prev parent reply other threads:[~2006-09-20 21:20 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-20 19:20 [PATCH -mm 0/6] swsusp: Add support for swap files Rafael J. Wysocki
2006-09-20 19:31 ` [PATCH -mm 1/6] swsusp: Use device and offset to intentify swap areas Rafael J. Wysocki
2006-09-21 21:27 ` Pavel Machek
2006-09-20 19:34 ` [PATCH -mm 2/6] swsusp: Rearrange swap-handling code Rafael J. Wysocki
2006-09-21 21:28 ` Pavel Machek
2006-09-20 19:41 ` [PATCH -mm 3/6] swsusp: Use block device offsets to identify swap locations Rafael J. Wysocki
2006-09-21 21:30 ` Pavel Machek
2006-09-21 22:21 ` Rafael J. Wysocki
2006-09-20 19:46 ` [PATCH -mm 4/6] swsusp: Add resume_offset command line parameter Rafael J. Wysocki
2006-09-21 21:31 ` Pavel Machek
2006-09-21 22:18 ` Rafael J. Wysocki
2006-09-22 13:34 ` Pavel Machek
2006-09-20 19:54 ` [PATCH -mm 5/6] mm: Print first block offset for swap areas Rafael J. Wysocki
2006-09-21 21:32 ` Pavel Machek
2006-09-21 22:10 ` Dave Jones
2006-09-21 22:46 ` Rafael J. Wysocki
2006-09-21 23:58 ` Jason Lunz
2006-09-22 10:57 ` Rafael J. Wysocki
2006-09-22 14:13 ` Jason Lunz
2006-09-22 14:18 ` Pavel Machek
2006-09-22 14:35 ` Jason Lunz
2006-09-22 14:37 ` Pavel Machek
2006-09-22 14:32 ` Rafael J. Wysocki
2006-09-22 14:33 ` Pavel Machek
2006-09-20 20:01 ` Rafael J. Wysocki [this message]
2006-09-21 21:33 ` [PATCH -mm 6/6] swsusp: Document support for swap files Pavel Machek
2006-09-22 1:01 ` [PATCH -mm 0/6] swsusp: Add " Nigel Cunningham
2006-09-22 5:23 ` Pavel Machek
2006-09-22 11:28 ` Rafael J. Wysocki
2006-09-22 22:18 ` Nigel Cunningham
2006-09-23 22:18 ` Rafael J. Wysocki
2006-09-23 22:49 ` Nigel Cunningham
2006-09-23 22:59 ` Pavel Machek
2006-09-23 23:24 ` Nigel Cunningham
-- strict thread matches above, loose matches on Subject: below --
2006-09-23 9:57 [PATCH -mm] " Rafael J. Wysocki
2006-09-23 10:13 ` [PATCH -mm 6/6] swsusp: Document " Rafael J. Wysocki
2006-09-26 21:56 ` Rafael J. Wysocki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200609202201.08918.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@ucw.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.