| What: /sys/power/ |
| Date: August 2006 |
| Contact: Rafael J. Wysocki <rjw@sisk.pl> |
| Description: |
| The /sys/power directory will contain files that will |
| provide a unified interface to the power management |
| subsystem. |
| |
| What: /sys/power/state |
| Date: August 2006 |
| Contact: Rafael J. Wysocki <rjw@sisk.pl> |
| Description: |
| The /sys/power/state file controls the system power state. |
| Reading from this file returns what states are supported, |
| which is hard-coded to 'standby' (Power-On Suspend), 'mem' |
| (Suspend-to-RAM), and 'disk' (Suspend-to-Disk). |
| |
| Writing to this file one of these strings causes the system to |
| transition into that state. Please see the file |
| Documentation/power/states.txt for a description of each of |
| these states. |
| |
| What: /sys/power/disk |
| Date: September 2006 |
| Contact: Rafael J. Wysocki <rjw@sisk.pl> |
| Description: |
| The /sys/power/disk file controls the operating mode of the |
| suspend-to-disk mechanism. Reading from this file returns |
| the name of the method by which the system will be put to |
| sleep on the next suspend. There are four methods supported: |
| 'firmware' - means that the memory image will be saved to disk |
| by some firmware, in which case we also assume that the |
| firmware will handle the system suspend. |
| 'platform' - the memory image will be saved by the kernel and |
| the system will be put to sleep by the platform driver (e.g. |
| ACPI or other PM registers). |
| 'shutdown' - the memory image will be saved by the kernel and |
| the system will be powered off. |
| 'reboot' - the memory image will be saved by the kernel and |
| the system will be rebooted. |
| |
| Additionally, /sys/power/disk can be used to turn on one of the |
| two testing modes of the suspend-to-disk mechanism: 'testproc' |
| or 'test'. If the suspend-to-disk mechanism is in the |
| 'testproc' mode, writing 'disk' to /sys/power/state will cause |
| the kernel to disable nonboot CPUs and freeze tasks, wait for 5 |
| seconds, unfreeze tasks and enable nonboot CPUs. If it is in |
| the 'test' mode, writing 'disk' to /sys/power/state will cause |
| the kernel to disable nonboot CPUs and freeze tasks, shrink |
| memory, suspend devices, wait for 5 seconds, resume devices, |
| unfreeze tasks and enable nonboot CPUs. Then, we are able to |
| look in the log messages and work out, for example, which code |
| is being slow and which device drivers are misbehaving. |
| |
| The suspend-to-disk method may be chosen by writing to this |
| file one of the accepted strings: |
| |
| 'firmware' |
| 'platform' |
| 'shutdown' |
| 'reboot' |
| 'testproc' |
| 'test' |
| |
| It will only change to 'firmware' or 'platform' if the system |
| supports that. |
| |
| What: /sys/power/image_size |
| Date: August 2006 |
| Contact: Rafael J. Wysocki <rjw@sisk.pl> |
| Description: |
| The /sys/power/image_size file controls the size of the image |
| created by the suspend-to-disk mechanism. It can be written a |
| string representing a non-negative integer that will be used |
| as an upper limit of the image size, in bytes. The kernel's |
| suspend-to-disk code will do its best to ensure the image size |
| will not exceed this number. However, if it turns out to be |
| impossible, the kernel will try to suspend anyway using the |
| smallest image possible. In particular, if "0" is written to |
| this file, the suspend image will be as small as possible. |
| |
| Reading from this file will display the current image size |
| limit, which is set to 500 MB by default. |
| |
| What: /sys/power/pm_trace |
| Date: August 2006 |
| Contact: Rafael J. Wysocki <rjw@sisk.pl> |
| Description: |
| The /sys/power/pm_trace file controls the code which saves the |
| last PM event point in the RTC across reboots, so that you can |
| debug a machine that just hangs during suspend (or more |
| commonly, during resume). Namely, the RTC is only used to save |
| the last PM event point if this file contains '1'. Initially |
| it contains '0' which may be changed to '1' by writing a |
| string representing a nonzero integer into it. |
| |
| To use this debugging feature you should attempt to suspend |
| the machine, then reboot it and run |
| |
| dmesg -s 1000000 | grep 'hash matches' |
| |
| CAUTION: Using it will cause your machine's real-time (CMOS) |
| clock to be set to a random invalid time after a resume. |