]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] swsusp documentation updates
authorAndrew Morton <akpm@osdl.org>
Thu, 27 May 2004 00:36:25 +0000 (17:36 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 27 May 2004 00:36:25 +0000 (17:36 -0700)
From: Pavel Machek <pavel@ucw.cz>

Signed-off-by: Andrew Morton <akpm@osdl.org>
Documentation/power/swsusp.txt
Documentation/power/tricks.txt
Documentation/power/video.txt

index 168322ef8577403e31c9fdb527e2ec0f4152938a..8bc308d0341ea3c83d0522e01493dcc4f16c81fe 100644 (file)
@@ -123,14 +123,15 @@ server is not hotplug capable. What do you do? Suspend to disk,
 replace ethernet card, resume. If you are fast your users will not
 even see broken connections.
 
-Q: Maybe I'm missing something, but why doesn't the regular io paths
-work?
 
-A: (Basically) you want to replace all kernel data with kernel data saved
-on disk. How do you do that using normal i/o paths? If you'll read
-"new" data 4KB at a time, you'll crash... because you still need "old"
-data to do the reading, and "new" data may fit on same physical spot
-in memory.
+Q: Maybe I'm missing something, but why don't the regular I/O paths work?
+
+A: We do use the regular I/O paths. However we cannot restore the data
+to its original location as we load it. That would create an
+inconsistent kernel state which would certainly result in an oops.
+Instead, we load the image into unused memory and then atomically copy
+it back to it original location. This implies, of course, a maximum
+image size of half the amount of memory.
 
 There are two solutions to this:
 
@@ -141,6 +142,10 @@ read "new" data onto free spots, then cli and copy
 between 0-640KB. That way, I'd have to make sure that 0-640KB is free
 during suspending, but otherwise it would work...
 
+suspend2 shares this fundamental limitation, but does not include user
+data and disk caches into "used memory" by saving them in
+advance. That means that the limitation goes away in practice.
+
 Q: Does linux support ACPI S4?
 
 A: No.
@@ -161,7 +166,7 @@ while machine is suspended-to-disk, Linux will fail to notice that.
 
 Q: My machine doesn't work with ACPI. How can I use swsusp than ?
 
-A: Do reboot() syscall with right parameters. Warning: glibc gets in
+A: Do reboot() syscall with right parameters. Warning: glibc gets in
 its way, so check with strace:
 
 reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, 0xd000fce2)
@@ -181,3 +186,16 @@ int main()
             LINUX_REBOOT_CMD_SW_SUSPEND, 0);
     return 0;
 }
+
+Q: What is 'suspend2'?
+
+A: suspend2 is 'Software Suspend 2', a forked implementation of
+suspend-to-disk which is available as separate patches for 2.4 and 2.6
+kernels from swsusp.sourceforge.net. It includes support for SMP, 4GB
+highmem and preemption. It also has a extensible architecture that
+allows for arbitrary transformations on the image (compression,
+encryption) and arbitrary backends for writing the image (eg to swap
+or an NFS share[Work In Progress]). Questions regarding suspend2
+should be sent to the mailing list available through the suspend2
+website, and not to the Linux Kernel Mailing List. We are working
+toward merging suspend2 into the mainline kernel.
index 43283e9812f65cacaf0b65045bc8aeb03d6a6298..c6d58d3da133f2db8df7ae7802d2af25822b7493 100644 (file)
@@ -7,6 +7,8 @@ If you want to trick swsusp/S3 into working, you might want to try:
 * go with minimal config, turn off drivers like USB, AGP you don't
   really need
 
+* turn off APIC and preempt
+
 * use ext2. At least it has working fsck. [If something seemes to go
   wrong, force fsck when you have a chance]
 
index cd9e2075b2253c01f2cf8d48d033a6f97ce4027a..652657307de08ff902851090572ea90afaa80d21 100644 (file)
@@ -30,6 +30,10 @@ There are three types of systems where video works after S3 resume:
   patched X, and plain text console (no vesafb or radeonfb), see
   http://www.doesi.gmxhome.de/linux/tm800s3/s3.html. (Acer TM 800)
 
+* radeon systems, where X can soft-boot your video card. You'll need
+  patched X, and plain text console (no vesafb or radeonfb), see
+  http://www.doesi.gmxhome.de/linux/tm800s3/s3.html. (Acer TM 800)
+
 Now, if you pass acpi_sleep=something, and it does not work with your
 bios, you'll get hard crash during resume. Be carefull.