mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-03-01 12:22:01 +07:00
[PATCH] swsusp: update documentation
This updates documentation a bit (mostly removing obsolete stuff), and marks swsusp as no longer experimental in config. Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
48c8b11342
commit
d7ae79c72d
@ -1,22 +1,20 @@
|
|||||||
From kernel/suspend.c:
|
Some warnings, first.
|
||||||
|
|
||||||
* BIG FAT WARNING *********************************************************
|
* 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...
|
* If you touch anything on disk between suspend and resume...
|
||||||
* ...kiss your data goodbye.
|
* ...kiss your data goodbye.
|
||||||
*
|
*
|
||||||
* If your disk driver does not support suspend... (IDE does)
|
* If you do resume from initrd after your filesystems are mounted...
|
||||||
* ...you'd better find out how to get along
|
* ...bye bye root partition.
|
||||||
* without your data.
|
* [this is actually same case as above]
|
||||||
*
|
*
|
||||||
* If you change kernel command line between suspend and resume...
|
* If you have unsupported (*) devices using DMA, you may have some
|
||||||
* ...prepare for nasty fsck or worse.
|
* problems. If your disk driver does not support suspend... (IDE does),
|
||||||
*
|
* it may cause some problems, too. If you change kernel command line
|
||||||
* If you change your hardware while system is suspended...
|
* between suspend and resume, it may do something wrong. If you change
|
||||||
* ...well, it was not good idea.
|
* your hardware while system is suspended... well, it was not good idea;
|
||||||
|
* but it will probably only crash.
|
||||||
*
|
*
|
||||||
* (*) suspend/resume support is needed to make it safe.
|
* (*) suspend/resume support is needed to make it safe.
|
||||||
|
|
||||||
@ -30,6 +28,13 @@ echo shutdown > /sys/power/disk; echo disk > /sys/power/state
|
|||||||
echo platform > /sys/power/disk; echo disk > /sys/power/state
|
echo platform > /sys/power/disk; echo disk > /sys/power/state
|
||||||
|
|
||||||
|
|
||||||
|
Encrypted suspend image:
|
||||||
|
------------------------
|
||||||
|
If you want to store your suspend image encrypted with a temporary
|
||||||
|
key to prevent data gathering after resume you must compile
|
||||||
|
crypto and the aes algorithm into the kernel - modules won't work
|
||||||
|
as they cannot be loaded at resume time.
|
||||||
|
|
||||||
|
|
||||||
Article about goals and implementation of Software Suspend for Linux
|
Article about goals and implementation of Software Suspend for Linux
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
@ -85,11 +90,6 @@ resume.
|
|||||||
You have your server on UPS. Power died, and UPS is indicating 30
|
You have your server on UPS. Power died, and UPS is indicating 30
|
||||||
seconds to failure. What do you do? Suspend to disk.
|
seconds to failure. What do you do? Suspend to disk.
|
||||||
|
|
||||||
Ethernet card in your server died. You want to replace it. Your
|
|
||||||
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 don't the regular I/O paths work?
|
Q: Maybe I'm missing something, but why don't the regular I/O paths work?
|
||||||
|
|
||||||
@ -117,31 +117,6 @@ Q: Does linux support ACPI S4?
|
|||||||
|
|
||||||
A: Yes. That's what echo platform > /sys/power/disk does.
|
A: Yes. That's what echo platform > /sys/power/disk does.
|
||||||
|
|
||||||
Q: My machine doesn't work with ACPI. How can I use swsusp than ?
|
|
||||||
|
|
||||||
A: Do a reboot() syscall with right parameters. Warning: glibc gets in
|
|
||||||
its way, so check with strace:
|
|
||||||
|
|
||||||
reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, 0xd000fce2)
|
|
||||||
|
|
||||||
(Thanks to Peter Osterlund:)
|
|
||||||
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <syscall.h>
|
|
||||||
|
|
||||||
#define LINUX_REBOOT_MAGIC1 0xfee1dead
|
|
||||||
#define LINUX_REBOOT_MAGIC2 672274793
|
|
||||||
#define LINUX_REBOOT_CMD_SW_SUSPEND 0xD000FCE2
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
syscall(SYS_reboot, LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,
|
|
||||||
LINUX_REBOOT_CMD_SW_SUSPEND, 0);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
Also /sys/ interface should be still present.
|
|
||||||
|
|
||||||
Q: What is 'suspend2'?
|
Q: What is 'suspend2'?
|
||||||
|
|
||||||
A: suspend2 is 'Software Suspend 2', a forked implementation of
|
A: suspend2 is 'Software Suspend 2', a forked implementation of
|
||||||
@ -312,9 +287,45 @@ system is shut down or suspended. Additionally use the encrypted
|
|||||||
suspend image to prevent sensitive data from being stolen after
|
suspend image to prevent sensitive data from being stolen after
|
||||||
resume.
|
resume.
|
||||||
|
|
||||||
Q: Why we cannot suspend to a swap file?
|
Q: Why can't we suspend to a swap file?
|
||||||
|
|
||||||
A: Because accessing swap file needs the filesystem mounted, and
|
A: Because accessing swap file needs the filesystem mounted, and
|
||||||
filesystem might do something wrong (like replaying the journal)
|
filesystem might do something wrong (like replaying the journal)
|
||||||
during mount. [Probably could be solved by modifying every filesystem
|
during mount.
|
||||||
to support some kind of "really read-only!" option. Patches welcome.]
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
Q: Is there a maximum system RAM size that is supported by swsusp?
|
||||||
|
|
||||||
|
A: It should work okay with highmem.
|
||||||
|
|
||||||
|
Q: Does swsusp (to disk) use only one swap partition or can it use
|
||||||
|
multiple swap partitions (aggregate them into one logical space)?
|
||||||
|
|
||||||
|
A: Only one swap partition, sorry.
|
||||||
|
|
||||||
|
Q: If my application(s) causes lots of memory & swap space to be used
|
||||||
|
(over half of the total system RAM), is it correct that it is likely
|
||||||
|
to be useless to try to suspend to disk while that app is running?
|
||||||
|
|
||||||
|
A: No, it should work okay, as long as your app does not mlock()
|
||||||
|
it. Just prepare big enough swap partition.
|
||||||
|
|
||||||
|
Q: What information is usefull for debugging suspend-to-disk problems?
|
||||||
|
|
||||||
|
A: Well, last messages on the screen are always useful. If something
|
||||||
|
is broken, it is usually some kernel driver, therefore trying with as
|
||||||
|
little as possible modules loaded helps a lot. I also prefer people to
|
||||||
|
suspend from console, preferably without X running. Booting with
|
||||||
|
init=/bin/bash, then swapon and starting suspend sequence manually
|
||||||
|
usually does the trick. Then it is good idea to try with latest
|
||||||
|
vanilla kernel.
|
||||||
|
|
||||||
|
|
||||||
|
@ -120,6 +120,7 @@ IBM ThinkPad T42p (2373-GTG) s3_bios (2)
|
|||||||
IBM TP X20 ??? (*)
|
IBM TP X20 ??? (*)
|
||||||
IBM TP X30 s3_bios (2)
|
IBM TP X30 s3_bios (2)
|
||||||
IBM TP X31 / Type 2672-XXH none (1), use radeontool (http://fdd.com/software/radeon/) to turn off backlight.
|
IBM TP X31 / Type 2672-XXH none (1), use radeontool (http://fdd.com/software/radeon/) to turn off backlight.
|
||||||
|
IBM TP X32 none (1), but backlight is on and video is trashed after long suspend
|
||||||
IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4)
|
IBM Thinkpad X40 Type 2371-7JG s3_bios,s3_mode (4)
|
||||||
Medion MD4220 ??? (*)
|
Medion MD4220 ??? (*)
|
||||||
Samsung P35 vbetool needed (6)
|
Samsung P35 vbetool needed (6)
|
||||||
|
@ -28,7 +28,7 @@ config PM_DEBUG
|
|||||||
|
|
||||||
config SOFTWARE_SUSPEND
|
config SOFTWARE_SUSPEND
|
||||||
bool "Software Suspend"
|
bool "Software Suspend"
|
||||||
depends on EXPERIMENTAL && PM && SWAP && ((X86 && SMP) || ((FVR || PPC32 || X86) && !SMP))
|
depends on PM && SWAP && (X86 || ((FVR || PPC32) && !SMP))
|
||||||
---help---
|
---help---
|
||||||
Enable the possibility of suspending the machine.
|
Enable the possibility of suspending the machine.
|
||||||
It doesn't need APM.
|
It doesn't need APM.
|
||||||
|
Loading…
Reference in New Issue
Block a user